Tengo que crear un juego de dados, si cae en 2,3,6,12, se supone que el juego se detiene y me dice en cuál de los números cayó la suma de mis dos dados y cuántas "tiradas" o intentos. me llevó a llegar allí. No he podido averiguar por qué mi programa no funciona, si borro las condiciones en el ciclo while y dejo solo una, por ejemplo: while(dice != 2); el programa se ejecutará, pero obviamente solo coincidirá si aterriza en 2. ¡Por favor, ayúdenme!
function play() { var dice = -1; var rolls = 1; var numb1 = 2; var numb2 = 3; var numb3 = 6; var numb4 = 12; while (dice != numb1 || dice != numb2 || dice != numb3 || dice != numb4) { dice = Math.floor(Math.random() * 11) + 2; rolls++; } document.getElementById('results').innerHTML = 'Your dice landed on: ' + dice; document.getElementById('rolls').innerHTML = 'Rolls: ' + rolls; }Cambia tu || a && en tu while
function play() { var dice = -1; var rolls = 1; var numb1 = 2; var numb2 = 3; var numb3 = 6; var numb4 = 12; while (dice != numb1 && dice != numb2 && dice != numb3 && dice != numb4) { dice = Math.floor(Math.random() * 11) + 2; rolls++; } document.getElementById('results').innerHTML = 'Your dice landed on: ' + dice; document.getElementById('rolls').innerHTML = 'Rolls: ' + rolls; } play() <div id="results"></div> <div id="rolls"></div> puede mejorar la condición while usando includes
function play() { var dice = -1; var rolls = 1; var numb1 = 2; var numb2 = 3; var numb3 = 6; var numb4 = 12; while (![numb1, numb2, numb3, numb4].includes(dice)) { dice = Math.floor(Math.random() * 11) + 2; rolls++; } document.getElementById('results').innerHTML = 'Your dice landed on: ' + dice; document.getElementById('rolls').innerHTML = 'Rolls: ' + rolls; } play() <div id="results"></div> <div id="rolls"></div>Su código no funciona, porque los dice tendrían que ser cada uno de estos números al mismo tiempo para funcionar, lo cual es imposible.
Intenta hacer esto:
while (![2, 3, 6, 12].includes(dice)) { Además, su función aleatoria no puede obtener 1 , tal vez intente:
Math.floor(Math.random() * 12) + 1