Buenop, al final le eché horas y me calente mucho la cabeza y lo saque de otra manera... :D
Una lastima que el examen lo tuviese esta mañana (soy de España) y me acoste a las 3:30 de la mañana con esto.. u.u
Bueno, aqui os dejo el codigo como lo entegue al profesor, y parece que funciona muy bien... o por lo menos da buenos resultados.. ^^
Código:
public static void main (String[] args){
//Declaraciones de las variables
int numero1=0, numero2=0, rondas, signo=0, nivel, error=1, respuesta=0, resultado=0, repeticiones=0, puntuacionJ1=0, puntuacionJ2=0, porcientoJ1=0, porcientoJ2=0;
String nombre="", nombre2="", a1=""/*rondas*/, b1/*respuesta*/, dificultad="", multijugador="";
long tiempoInicio;
float totalTiempoJ1=0, totalTiempoJ2=0;
//Entrada. Esta hecha con un bucle "do" para poder solicitar nuevamente los datos en caso de error o dejar el cuadro en blanco.
do
{
switch (error)
{
case 1:
JOptionPane.showMessageDialog(null,"Bienvenido a Entrenador Cerebral.");
multijugador=JOptionPane.showInputDialog("Desea Activar el Modo Multijugador (para Dos jugadores)? si/no");
a1=JOptionPane.showInputDialog("¿Cuántas rondas desea jugar?");
dificultad=JOptionPane.showInputDialog("Selecciona la Dificultad:\n Introduce '1' si quieres jugar en modo facil.\n Introduce '2' si quieres jugar en modo medio.\n Introduce '3' si quieres jugar en modo dificil");
break;
case 2:
multijugador=JOptionPane.showInputDialog("No ha introducido bien los datos o ha dejado un campo en blanco.\n Desea Activar el Modo Multijugador (para Dos jugadores)? si/no");
a1=JOptionPane.showInputDialog("¿Cuántas rondas desea jugar?");
dificultad=JOptionPane.showInputDialog("Selecciona la Dificultad:\n Introduce '1' si quieres jugar en modo facil.\n Introduce '2' si quieres jugar en modo medio.\n Introduce '3' si quieres jugar en modo dificil");
break;
}
error++;
}
while ((multijugador.equals("")) || (a1.equals("")) || (dificultad.equals("")));
rondas=Integer.parseInt(a1);
nivel=Integer.parseInt(dificultad);
// PROCESO En este apartado empieza el proceso diferenciando en un bucle "if" si el usuario ha seleccionado el modo multijugador o no.
// Aqui empueza el modo multijugador para dos personas.
if (multijugador.equals("si"))
{
nombre=JOptionPane.showInputDialog("Dame el nombre de jugador 1");
nombre2=JOptionPane.showInputDialog("Dame el nombre de jugador 2");
//Empieza la ronda para Jugador 1
JOptionPane.showMessageDialog(null,"Adelante Jugador 1 Pulse Aceptar.");
//Empieza a contar el tiempo cronometrado
tiempoInicio = System.currentTimeMillis();
do
{
//opciones de juego segun la dificultad del nivel
switch (nivel)
{
case 1:
//Generacion de Numeros Aleatorios modo facil
numero1=(int)(Math.random()*10);
numero2=(int)(Math.random()*10);
signo=(int)(Math.random()*4);
break;
case 2:
//Generacion de Numeros Aleatorios modo medio
numero1=(int)(Math.random()*20);
numero2=(int)(Math.random()*20);
signo=(int)(Math.random()*4);
break;
case 3:
//Generacion de Numeros Aleatorios modo dificil
numero1=(int)(Math.random()*50);
numero2=(int)(Math.random()*50);
signo=(int)(Math.random()*4);
break;
}
//sonido caracteristico de las preguntas
java.awt.Toolkit.getDefaultToolkit().beep();
//Formulacion de las preguntas y lectura de las respuesas
switch(signo)
{
case 0:
b1=JOptionPane.showInputDialog("Resultado de: "+numero1+"+"+numero2+"= ?");
respuesta=Integer.parseInt(b1);
resultado=numero1+numero2;
break;
case 1:
b1=JOptionPane.showInputDialog("Resultado de: "+numero1+"-"+numero2+"= ?");
respuesta=Integer.parseInt(b1);
resultado=numero1-numero2;
break;
case 2:
b1=JOptionPane.showInputDialog("Resultado de: "+numero1+"x"+numero2+"= ?");
respuesta=Integer.parseInt(b1);
resultado=numero1*numero2;
break;
case 3:
numero2=(numero2+1);
b1=JOptionPane.showInputDialog("Resultado de: "+numero1+"/"+numero2+"= ?");
respuesta=Integer.parseInt(b1);
resultado=numero1/numero2;
break;
}
repeticiones++;
if (respuesta==resultado)
{
puntuacionJ1++;
}
}
while (rondas!=repeticiones);
//Resultados para la prueba del Jugador 1
totalTiempoJ1 = (System.currentTimeMillis() - tiempoInicio)/1000f;
porcientoJ1=((puntuacionJ1*100)/rondas);
JOptionPane.showMessageDialog(null,"Bueno "+nombre+" tu puntuacion ha sido del "+porcientoJ1+"%");
JOptionPane.showMessageDialog(null,"Tu tiempo ha sido de: " + totalTiempoJ1 + " segundos");
//Empieza la ronda para Jugador 2
repeticiones = 0;
JOptionPane.showMessageDialog(null,"Adelante Jugador 2 Pulse Aceptar.");
tiempoInicio = System.currentTimeMillis();
do
{
//opciones de juego segun la dificultad del nivel
switch (nivel)
{
case 1:
//Generacion de Numeros Aleatorios modo facil
numero1=(int)(Math.random()*10);
numero2=(int)(Math.random()*10);
signo=(int)(Math.random()*4);
break;
case 2:
//Generacion de Numeros Aleatorios modo medio
numero1=(int)(Math.random()*20);
numero2=(int)(Math.random()*20);
signo=(int)(Math.random()*4);
break;
case 3:
//Generacion de Numeros Aleatorios modo dificil
numero1=(int)(Math.random()*50);
numero2=(int)(Math.random()*50);
signo=(int)(Math.random()*4);
break;
}
//sonido caracteristico de las preguntas
java.awt.Toolkit.getDefaultToolkit().beep();
//Formulacion de las preguntas y lectura de las respuesas
switch(signo)
{
case 0:
b1=JOptionPane.showInputDialog("Resultado de: "+numero1+"+"+numero2+"= ?");
respuesta=Integer.parseInt(b1);
resultado=numero1+numero2;
break;
case 1:
b1=JOptionPane.showInputDialog("Resultado de: "+numero1+"-"+numero2+"= ?");
respuesta=Integer.parseInt(b1);
resultado=numero1-numero2;
break;
case 2:
b1=JOptionPane.showInputDialog("Resultado de: "+numero1+"x"+numero2+"= ?");
respuesta=Integer.parseInt(b1);
resultado=numero1*numero2;
break;
case 3:
numero2=(numero2+1);
b1=JOptionPane.showInputDialog("Resultado de: "+numero1+"/"+numero2+"= ?");
respuesta=Integer.parseInt(b1);
resultado=numero1/numero2;
break;
}
repeticiones++;
if (respuesta==resultado)
{
puntuacionJ2++;
}
}
while (rondas!=repeticiones);
//Resultados para la prueba del Jugador 1
totalTiempoJ2 = (System.currentTimeMillis() - tiempoInicio)/1000f;
porcientoJ2=((puntuacionJ2*100)/rondas);
JOptionPane.showMessageDialog(null,"Bueno "+nombre2+" tu puntuacion ha sido del "+porcientoJ2+"%");
JOptionPane.showMessageDialog(null,"Tu tiempo ha sido de: " + totalTiempoJ2 + " segundos");
//Resultados y Ganadores del modo Multijugador
[...] (no cabe en el post)
Buenop, si alguien lo necesita, ahi se lo dejo..
Un saludo y Gracias!
PD: empece con java hace escaso un mes, es mi primer año de estudios, y no me entero de mucho, espero que me veais bastante por aqui..