Java - Problemas con resultados finales (java)

 
Vista:

Problemas con resultados finales (java)

Publicado por Edatron (7 intervenciones) el 03/12/2021 09:53:51
Hola! Tengo un problema en este código, soy incapaz de que me diga cual ha sido la ""Mejor partida" en las estadísticas finales. Seguro que es algo muy básico que no logro ver.. adjunto código y muchas gracias de antemano!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import java.util.*;
public class Adivina2 {
 
 //numero maximo de juego 
    public static final int MAX = 1000000;
    public static int intentosTotales = 0;
    public static int partidas = 0;
 
    public static void main(String[] args) {
 
        Scanner leerTeclado = new Scanner(System.in);
 
        jugarPartida(leerTeclado);
        mostrarEstadisticas(partidas, intentosTotales);
    }
    //fin main 
 
    public static void jugarPartida(Scanner leerTeclado) {
 
        int num = (int) ((Math.random() * 100)+1);
        int nJugador;
        int intentos = 0;
        partidas++;
 
        System.out.println("Adivina un número del 1 al 100");
        do {
 
            System.out.print("Adivina el número: ");
 
            nJugador = leerTeclado.nextInt();
            if (nJugador < num) {
 
                System.out.println("El número es mayor");
            }
            else if (nJugador > num) {
 
                System.out.println("El número es menor");
            }
 
            intentos++;
 
        }
 
        while (nJugador != num);{
        System.out.println("Has adivinado en " + intentos + " intentos.");
        intentosTotales += intentos;
        repetir(leerTeclado);
        }
 
    }
 
 
    public static void repetir(Scanner leerTeclado) {
 
        String sn;
        String s = "s";
        System.out.print("¿Quieres jugar otra vez (S/N)? ");
        sn = leerTeclado.next();
        String respuesta = sn.toLowerCase();
        System.out.println();
        if (respuesta.startsWith(s)) {
        jugarPartida(leerTeclado);
        }
 
    }
    public static void mostrarEstadisticas(int Partidas, int Intentos) {
 
        System.out.println("Resultados del juego:");
        System.out.println("Partidas jugadas: " + Partidas);
        System.out.println("Intentos realizados: " + Intentos);
        System.out.println("Intentos por partida: " + Intentos / Partidas);
        System.out.println("Mejor partida: ");
    }
    //fin estadisticas
}
//fin Adivina progama
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problemas con resultados finales (java)

Publicado por Fabian (15 intervenciones) el 03/12/2021 12:43:55
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import java.util.*;
public class Adivina2 {
 
 //numero maximo de juego
    public static final int MAX = 1000000;
    public static int intentosTotales = 0;
    public static int partidas = 0;
 
    public static int numero_de_partida = 0; //almacena en nuero de partida
    public static int[] mejorPartida = new int[100]; //array que almacena numero de intentos
 
    public static void main(String[] args) {
 
        Scanner leerTeclado = new Scanner(System.in);
 
        jugarPartida(leerTeclado);
        mostrarEstadisticas(partidas, intentosTotales);
    }
    //fin main
 
    public static void jugarPartida(Scanner leerTeclado) {
 
        int num = (int) ((Math.random() * 100)+1);
        int nJugador;
        int intentos = 0;
        partidas++;
 
        System.out.println("Adivina un número del 1 al 100");
        do {
 
            System.out.print("Adivina el número: ");
 
            nJugador = leerTeclado.nextInt();
            if (nJugador < num) {
 
                System.out.println("El número es mayor");
            }
            else if (nJugador > num) {
 
                System.out.println("El número es menor");
            }
 
            intentos++;
 
        }
 
        while (nJugador != num);{
        System.out.println("Has adivinado en " + intentos + " intentos.");
        intentosTotales += intentos;
 
        //guardo en el array el numero de partida con sus intentos
          mejorPartida[numero_de_partida]=intentos;
          numero_de_partida=numero_de_partida+1;
 
 
        repetir(leerTeclado);
        }
 
    }
 
   //creo una funcion que calcula la mejor partida
 
    public static int mejorPartida() {
       int menor1;
       int pos;
       menor1= mejorPartida[0];
       pos=0;
        for(int f=1;f< mejorPartida.length;f++) {
         if ( mejorPartida[f]<menor1) {
             menor1= mejorPartida[f];
             pos=f;
         }
       }
    pos=pos+1;
    return pos;
    }
 
 ////
 
    public static void repetir(Scanner leerTeclado) {
 
        String sn;
        String s = "s";
        System.out.print("¿Quieres jugar otra vez (S/N)? ");
        sn = leerTeclado.next();
        String respuesta = sn.toLowerCase();
        System.out.println();
        if (respuesta.startsWith(s)) {
        jugarPartida(leerTeclado);
        }
 
    }
    public static void mostrarEstadisticas(int Partidas, int Intentos) {
 
        System.out.println("Resultados del juego:");
        System.out.println("Partidas jugadas: " + Partidas);
        System.out.println("Intentos realizados: " + Intentos);
        System.out.println("Intentos por partida: " + Intentos / Partidas);
        System.out.println("Mejor partida: " + mejorPartida()); //muestra la mejor partida
    }
    //fin estadisticas
}
//fin Adivina progama
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas con resultados finales (java)

Publicado por Edatron (7 intervenciones) el 03/12/2021 15:24:36
Ya lo había intentado mediante un array pero hay algo que no es correcto, no acaba de darme bien la mejor partida.. muchas gracias de todos modos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas con resultados finales (java)

Publicado por Fabian (15 intervenciones) el 04/12/2021 15:36:47
en la funcion: mejorPartida quita linea pos=pos+1
quedaria así:

public static int mejorPartida() {
int menor1;
int pos;
menor1= mejorPartida[0];
pos=0;
for(int f=1;f< mejorPartida.length;f++) {
if ( mejorPartida[f]<menor1) {
menor1= mejorPartida[f];
pos=f;
}
}

return pos;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar