Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/12/2009, 08:39
dasten
 
Fecha de Ingreso: marzo-2008
Mensajes: 30
Antigüedad: 17 años
Puntos: 0
Respuesta: Ayuda con tablas de verdad y comprar String (contrario de String="")

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..