Así que estoy desarrollando un programa de dados en JavaScript donde, cuando se ejecuta, si el dado actual está en 1, debería ir a 2. Si el dado actualmente es 2, debería ir a 3 y así sucesivamente. Al final del proceso, cuando el dado está en 6, debe retroceder e ir a 1.
Sin embargo, cuando está en 6 y agrega 1, muestra 7 que no está y muestra un error.
Aquí está mi código
var rand = ""; var dice = document.getElementById("dice"); rand = Math.floor(Math.random()*6)+1; //console.log(rand); // var y = 1; var Totaler = (y+rand); console.log(Totaler); var My_Array = [1,2,3,4,5,6]; var link = "https://www.paulneve.com/pp/dice1.png"; var letters = link.slice(-5,33); dice.src = "https://www.paulneve.com/pp/dice"+My_Array[Totaler]+".png"; <!-- Image1:"https://www.paulneve.com/pp/dice1.png"--> <!-- Image2:"https://www.paulneve.com/pp/dice2.png"--> <!-- Image3:"https://www.paulneve.com/pp/dice3.png"--> <!-- Image4:"https://www.paulneve.com/pp/dice4.png"--> <!-- Image5:"https://www.paulneve.com/pp/dice5.png"--> <!-- Image6:"https://www.paulneve.com/pp/dice6.png"--> <div>You've rolled</div> <img id="dice" src="https://www.paulneve.com/pp/dice1.png" />El problema es que estás sumando 1 a tu número aleatorio dos veces. También simplifiqué el código eliminando la matriz de búsqueda, ya que es un poco redundante.
var rand = Math.floor(Math.random()*6)+1; var dice = document.getElementById("dice"); dice.src = "https://www.paulneve.com/pp/dice"+rand+".png"; <!-- Image1:"https://www.paulneve.com/pp/dice1.png"--> <!-- Image2:"https://www.paulneve.com/pp/dice2.png"--> <!-- Image3:"https://www.paulneve.com/pp/dice3.png"--> <!-- Image4:"https://www.paulneve.com/pp/dice4.png"--> <!-- Image5:"https://www.paulneve.com/pp/dice5.png"--> <!-- Image6:"https://www.paulneve.com/pp/dice6.png"--> <div>You've rolled</div> <img id="dice" src="https://www.paulneve.com/pp/dice1.png" />Las matrices comienzan en 0. Entonces, para obtener el sexto dado de su matriz, necesita My_Array [5]. Para obtener el primer dado necesitas My_Array[0]. Debe cambiar su código para seleccionar solo de 0 a 5:
rand = Math.floor(Math.random()*6);También deje de agregar y+rand y cambie a:
var Totaler = rand;De esa manera, cuando seleccione My_Array[Totaler], le dará 6 si Totaler = 5. Sin embargo, realmente no necesita My_Array, solo puede usar rand+1.