Piensa un número del 1 al 100
Un amigo piensa un número del 1 al 100. Tú dices uno. Él contesta "más alto" o "más bajo". Sigues hasta acertar.
Hoy programas ese juego. No hay nada nuevo que aprender: usas lo que ya sabes.
Variables, if, while y métodos. Cada pieza hace una cosa, y juntas forman un juego.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Número secreto | El número que hay que adivinar. Lo elige el programa. | int secret |
| Intento | Cada número que escribe el jugador. | int guess |
| Pista | Lo que contesta el programa: más alto, más bajo o acertaste. | hint(secret, guess) |
| Random | Una clase que saca números al azar. | new Random() |
| Dividir el problema | Partir un programa grande en piezas pequeñas que se prueban por separado. | hint, play, rating |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
El plan: cuatro piezas
Un programa grande se hace por partes. Para este juego necesitas cuatro:
- Elegir el número secreto.
- Leer el intento del jugador.
- Dar la pista.
- Contar los intentos y decir la nota.
Cada pieza será una variable o un método.
Ordena las piezas del juego
Inténtalo
Ordena las piezas del juego
3 preguntasTus respuestas se corrigen aquí y no se guardan. Una cuenta guarda tus resultados.
Pruébalo: la pista
public class Main {
static String hint(int secret, int guess) {
if (guess < secret) {
return "Más alto";
} else if (guess > secret) {
return "Más bajo";
}
return "¡Acertaste!";
}
public static void main(String[] args) {
int secret = 42;
System.out.println(hint(secret, 30));
System.out.println(hint(secret, 50));
System.out.println(hint(secret, 42));
// Prueba otros números.
}
}
Ejemplo resuelto: la pista con el secreto 42
| Intento | ¿Menor, mayor o igual que 42? | Pista |
|---|---|---|
| 30 | Menor | Más alto |
| 50 | Mayor | Más bajo |
| 42 | Igual | ¡Acertaste! |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
El bucle del juego
El juego repite lo mismo hasta acertar. Eso es un while.
Antes del bucle pones dos variables: attempts, que cuenta los intentos, y won, que dice si ya acertó.
En cada vuelta lees un número, sumas un intento, das la pista y miras si acertó.
Pruébalo: una partida con intentos de mentira
import java.util.Scanner;
public class Main {
static String hint(int secret, int guess) {
if (guess < secret) return "Más alto";
if (guess > secret) return "Más bajo";
return "¡Acertaste!";
}
public static void main(String[] args) {
int secret = 42;
// Estos números hacen de teclado: son los intentos del jugador.
Scanner in = new Scanner("50 25 37 42");
int attempts = 0;
boolean won = false;
while (!won && in.hasNextInt()) {
int guess = in.nextInt();
attempts++;
System.out.println(guess + ": " + hint(secret, guess));
won = guess == secret;
}
System.out.println("Intentos: " + attempts);
}
}