Yo tengo un problema parecido lo tengo estructurado asi pero no se como hacer la parte de los datos de la segunda partida.
Se supone que si haces una segunda partida los datos deberían salir así.
Quieres jugar otra vez (S/N)? n
Resultados del juego:
Partidas jugadas: 2
Intentos realizados: 13
Intentos por partida: 6,5
Mejor partida: 6
import java.util.*;
public class Adivina {
public static Scanner entrada = new Scanner(System.in);
public static void main(String[] args) {
introduccion();
jugarPartida();
nuevaPartida();
}
public static void introduccion() {
System.out.println("El programa genera un número aleatorio del 1 al 100");
System.out.println("El usuario o usuaria debe adivinarlo");
System.out.println("El programa le dará pistas cada vez que falle.");
System.out.println();
}
public static void jugarPartida() {
// Obtenemos el valor aleatorio entre el 1 y el 100
int numero=(int)(Math.random()*100);
System.out.println("Indica un numero entre el 0 y el 100");
int entrada=-1;
int contador=0;
int partida=0;
// bucle hasta que el usuario adivine el numero
do {
// Obtenemos un nuevo valor
entrada=obtenerValor();
if(entrada>numero) {
System.out.println("El numero es menor");
}else if(entrada<numero) {
System.out.println("El numero es mayor");
}
contador++;
} while(entrada!=numero);
System.out.println();
System.out.println("Partidas jugadas " + partida);
System.out.println("Adivina un numero del 1 al 100");
System.out.println("Adivina el número: " + numero);
System.out.println("Has avariguado el numero en " + contador + " intentos.");
System.out.println();
}
public static int obtenerValor() {
int valor=0;
// Iniciamos un bucle infinito
while(true){
try {
System.out.print("Indica el numero: ");
valor=entrada.nextInt();
// revisamos que el valor introducido este comprendido entre el 0 y el 100
if(valor<0 || valor>100) {
System.out.println("El numero tiene que estar entre el 0 y el 100");
}else{
// salimos del bucle
break;
}
}catch(InputMismatchException e) {
// Controlamos que siempre introduzca un valor numerico
System.out.println("El valor tiene que ser numerico...");
entrada.nextLine();
}
}
return valor;
}
// crear el bucle while para que pida una otra partida y reconozca si S o SI
public static void nuevaPartida() {
int partida = 1;
String respuesta1 = "S";
String respuesta2 = "Si";
String respuesta3 = "SI";
System.out.println(" Quieres jugar otra partida S / N ");
String respuesta = entrada.next();
// Convertimos la palabra a minusculas
if (respuesta.equals(respuesta1) || respuesta.equals(respuesta2) || respuesta.equals(respuesta3) == true) {
jugarPartida();
nuevaPartida();
partida++;
}else{
System.out.println("fin de la partida");
}
}