Estoy en mi segunda semana de Javascript y la tarea que nos han dado es crear un juego de adivinanzas.
Los pasos que nos han dado son:
Prepare una lista de sus frutas favoritas y guárdela en una estructura de datos adecuada y haga que la computadora seleccione una fruta al azar como la palabra secreta.
Basándose en la fruta seleccionada, déle una pista al uso como el ejemplo a continuación. puede usar prompt, alert o console.log para mostrar la pista
por ejemplo si la fruta secreta es "banana"
Pista: tiene 6 caracteres. Comienza con b y termina con a. Adivina la fruta. en lugar de escribir la sugerencia manualmente para cada fruta. intente usar una cadena de plantilla y calcule mediante programación la letra inicial, la letra final y la cantidad de caracteres.
Permita que el usuario adivine la fruta repetidamente hasta que adivine correctamente. realizar un seguimiento del número de conjeturas.
Felicite al usuario y muestre el número de intentos que ha realizado.
He estado sentado en esto por un tiempo y he intentado cambiar mi código. Sé que estoy cerca, pero me encantaría algunos consejos o sugerencias.
Esto es lo que tengo hasta ahora:
var fruits = ["kiwi", "banana", "apple", "strawberry", "watermelon", "orange"]; var ranNum = Math.floor(Math.random() * fruits.length); var secretFruit = fruits[ranNum]; var userPrompt = prompt("Guess the fruit"); var guess = 1; while (userPrompt !== secretFruit) { prompt( "hint: it's " + secretFruit.length + " characters long. Starts with " + secretFruit[0] + " and ends with " + secretFruit.slice(-1) + ". guess the fruit." ); guess++; } if (userPrompt == secretFruit) { alert( "Congratulations you guessed the fruit, and it took you " + guess + " guesses" ); }
Cualquier ayuda sería genial, gracias.
Dos cosas están mal: su bucle while y su mensaje de sugerencia.
En primer lugar, su ciclo while seguirá preguntando continuamente sin verificar si la respuesta fue correcta, porque ha dejado la instrucción if
fuera del ciclo.
Además, la declaración if
debe estar antes de la declaración de sugerencia; de lo contrario, la persona siempre tendrá que volver a intentarlo, incluso si obtuvo la respuesta correcta.
En segundo lugar, su mensaje de sugerencia nunca se graba realmente. Esto significa que, a pesar de obtener la respuesta correcta, el código nunca la registra.
Además, sugiero agregar una declaración de break
para que el juego termine.
Esta es una versión de trabajo de su código:
var fruits = ["kiwi", "banana", "apple", "strawberry", "watermelon", "orange"]; var ranNum = Math.floor(Math.random() * fruits.length); var secretFruit = fruits[ranNum]; var userPrompt = prompt("Guess the fruit"); var guess = 1; while (userPrompt !== secretFruit) { if (userPrompt == secretFruit) { alert( "Congratulations you guessed the fruit, and it took you " + guess + " guesses" );break; //break statement here stops infinite loop when correct } userPrompt = prompt( "hint: it's " + secretFruit.length + " characters long. Starts with " + secretFruit[0] + " and ends with " + secretFruit.slice(-1) + ". guess the fruit." ); guess++; }