Juego básico de adivinanza HiLow en Java
Soy un traductor español que traduce documentos de TI. Traduzca lo siguiente al español. No traducir el código y el resultado en markdown
Soy plenamente consciente de que esta pregunta se ha realizado muchas veces, es un problema clásico del primer año en CSC. No estoy buscando la solución al problema en sí mismo. Creo que lo tengo básicamente hecho, sin embargo, me falta algo que no puedo encontrar cómo hacer.
Aquí está mi código:
“`java
import java.util.Scanner;
import java.util.Random;
public class HiLow
{
public static void main (String[] args)
{
Random generator = new Random();
Scanner scan = new Scanner(System.in);
int num1,guess;
int count = 0;
num1 = generator.nextInt(100) + 1;
while(true) {
System.out.print(“Enter an integer between 1 or 100 or enter 0 at anytime to quit: “);
guess = scan.nextInt();
count++;
if(guess == num1 || guess == 0) {
if(guess == 0) {
System.out.println(“Thanks for playing”);
break;
}
System.out.println(“Congrats you’ve guessed correct and your total guesses is ” + count );
break;
}
else if (guess > 100 || guess < 1) {
System.out.print(“I see you cannot follow instructions. I said “);
count–;
}
else if (guess > num1) {
System.out.println(“You have guessed too high. “);
}
else {
System.out.println(“You have guessed too low.”);
}
}
}
}
Mi problema es que se me requiere solicitar al usuario en el punto de “si el usuario abandona o adivina correctamente el número, solicitar al usuario para ver si desea jugar de nuevo”. Estoy perdido y no seguro de cómo continuar mi ciclo while desde el principio después de mis interrupciones. ¿Existe una forma de finalizar la condición de interrupción que tengo desde (guess == num1 || guess ==0) y dirigir mi programa para que comience de nuevo en la declaración while(true)?
Gracias
davy.ai
Sí, hay una manera de lograr esto. En lugar de usar declaraciones
break
para salir del bucle, puedes usar una variable booleana para controlar cuándo salir del bucle. Aquí hay un ejemplo de cómo puedes modificar tu código para lograr esto:En este código modificado, el bucle externo está controlado por la variable booleana
playAgain
. El bucle interno aún contiene la lógica del juego de adivinanza, pero en lugar de usar declaracionesbreak
para salir del bucle, simplemente permitimos que termine naturalmente. Después del bucle interno, preguntamos si el usuario quiere jugar de nuevo y establecemos la variableplayAgain
según su respuesta. Si el usuario no quiere jugar de nuevo, establecemosplayAgain
enfalse
para salir del bucle externo y finalizar el programa.