Autor Tema: Ayuda JAVA. juego preguntas y respuestas.  (Leído 17745 veces)

Choripan

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 20
    • Ver Perfil
Ayuda JAVA. juego preguntas y respuestas.
« en: 19 de Mayo 2014, 05:55 »
Hola amigos, he estado haciendo un peque#o juego para seguir practicando y aprendiendo con mi programacion en java.
El juego es una simple trivia, de preguntas y respuestas, en donde el programa muestra una pregunta y el usuario ingresa una respuesta.

Si la respuesta es correcta, el usuario gana un punto y se muestra una nueva pregunta.
Si no es correcta, el usuario no gana puntos, y se muestra una nueva pregunta.

Mi problema es el siguiente, Tengo una etiqueta que cambia la pregunta al momento de pulsar un boton de "ok" que esta en el JFrame, esto luego de introducir la respuesta, el punto es que no encuentro manera de hacer el sistema de puntos, o sea, de verificar si la respuesta es correcta o no. Les muestro el codigo : (una parte de el)

Código: [Seleccionar]
package eldonkey;

/**
 *
 * @author Marcos
 */
public class Pregunta1 extends javax.swing.JFrame {
String pregunta;
String puntaje;
    /**
     * Creates new form Pregunta1
     */
    public Pregunta1() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                         
    private void initComponents() {

        LabelJuga = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        PuntLabel1 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        RespuText = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        PuntLabel = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Donkey de Oro");

        LabelJuga.setText(".");

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel1.setText("Jugador:");

        jLabel2.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel2.setText("Pregunta");

        PuntLabel1.setText("0");

        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel3.setText("5 + 2 =");

        RespuText.setText(" ");

        jButton1.setText("OK");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jLabel4.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel4.setText("Respuesta:");

        jLabel5.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel5.setText("Puntaje");

        PuntLabel.setText("0");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(LabelJuga, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel2)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(PuntLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
            .addGroup(layout.createSequentialGroup()
                .addGap(30, 30, 30)
                .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(RespuText, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jButton1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 69, Short.MAX_VALUE)
                .addComponent(PuntLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(29, 29, 29))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(LabelJuga, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(PuntLabel1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(26, 26, 26)
                .addComponent(jLabel5)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(RespuText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4)
                    .addComponent(jButton1)
                    .addComponent(PuntLabel))
                .addContainerGap(22, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                       

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String a,resultado;
    double suma;
    a = PuntLabel1.getText();
   
    suma = Double.parseDouble(a) + 1;
    PuntLabel1.setText(Double.toString(suma));
   
    if (a.length()>=0){   
            resultado = Pregunta(pregunta, puntaje);
            jLabel3.setText(resultado);
        }
    RespuText.setText("");
   
    // TODO add your handling code here:
    }                                       

    /**
     * @param args the command line arguments
     */
    public String Pregunta(String pregunta, String puntaje){
    String a,b1,respuesta;
 
    double a1;
    b1 = "5 + 2";
    a = PuntLabel1.getText();
    a1 = Double.parseDouble(a);
   
    if (a1 ==0){
    b1 = "5 + 2 =";
       
    }
   
    if (a1==1) {
    b1 = "5 + 5 =";
       
   
    }
    if (a1==2) {
    b1 = "Tercera letra del abecedario";
    }
    if (a1==3) {
    b1 = "hola amigo";
    }
   respuesta = b1;
   return respuesta;
   

}

    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Pregunta1().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    public static javax.swing.JLabel LabelJuga;
    private javax.swing.JLabel PuntLabel;
    private javax.swing.JLabel PuntLabel1;
    private javax.swing.JTextField RespuText;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    // End of variables declaration                   
}

ese es el codigo, pero ahora quiero ahi mismo agregar un metodo que me permita segun la pregunta, ver si la respuesta es correcta y me agregue 1 punto por ejemplo:
Código: [Seleccionar]
public string Puntaje(String puntaje) {
String g1;
double g2;
g1 = PuntLabel1.getText();
g2 = Double.parseDouble(g1);

if (g2 == 0) { //Para que vea si es mi primera pregunta.
 b1 = RespuText.getText();
if (b1 == 7) {//el resultado de esa respuesta
String h1;
Double h2,h3;
h1 = PuntLabel.getText();
h2 = Double.parseDouble(h1);
h3 = h2 + 1;
PuntLabel.setText(h3);
}
else {
//Algun mensaje que diga, respuesta incorrecta. y continue el juego, no lo escribo
//por que no vale la pena escribir esto aca.}
}
}


Algo asi con cada Pregunta y respuesta! pero intente y el codigo quedaba bien, lo compilaba pero nunca me sumaba los puntos y mostraba si el resultado era correcto o no :( Ayuda!

Choripan

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 20
    • Ver Perfil
Re:Ayuda JAVA. juego preguntas y respuestas.
« Respuesta #1 en: 19 de Mayo 2014, 16:49 »
Tengo el siguiente codigo y tampoco me funciona, la pregunta si se cambia, pero la puntuacion no! :( como hago!?

Código: [Seleccionar]
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String a,resultado,b,puntaje1,c,d;
    double suma;
    a = PuntLabel1.getText();
    b = PuntLabel.getText();
    c = RespuText.getText();
    puntaje1 = "0";

   
    suma = Double.parseDouble(a) + 1;
    PuntLabel1.setText(Double.toString(suma));
   
    if (a.length()>=0){   
            resultado = Pregunta(pregunta,puntaje);
            jLabel3.setText(resultado);
        }
    if (a.length()==0) {
            if(c.length()==7) {
                    puntaje1 = b + 1;
            }
            d = puntaje1;
            PuntLabel.setText(d);
        }
    RespuText.setText("");
   
    // TODO add your handling code here:
    }       

Choripan

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 20
    • Ver Perfil
Re:Ayuda JAVA. juego preguntas y respuestas.
« Respuesta #2 en: 19 de Mayo 2014, 18:20 »
Ahora se me ocurrio hacer esto:

Código: [Seleccionar]
public class Pregunta1 extends javax.swing.JFrame {
String pregunta;
String puntaje;
String puntaje2;
String pregunta1;
    /**
     * Creates new form Pregunta1
     */
    public Pregunta1() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                         
    private void initComponents() {

        LabelJuga = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        PuntLabel1 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        RespuText = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        PuntLabel = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Donkey de Oro");

        LabelJuga.setText(".");

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel1.setText("Jugador:");

        jLabel2.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel2.setText("Pregunta");

        PuntLabel1.setText("0");

        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel3.setText("5 + 2 =");

        RespuText.setText(" ");

        jButton1.setText("OK");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jLabel4.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel4.setText("Respuesta:");

        jLabel5.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel5.setText("Puntaje");

        PuntLabel.setText("0");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(LabelJuga, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(jLabel2)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(PuntLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGap(0, 0, Short.MAX_VALUE))))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(30, 30, 30)
                        .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(RespuText, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jButton1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 69, Short.MAX_VALUE)
                        .addComponent(PuntLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(LabelJuga, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(PuntLabel1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(26, 26, 26)
                .addComponent(jLabel5)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(RespuText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4)
                    .addComponent(jButton1)
                    .addComponent(PuntLabel))
                .addContainerGap(22, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                       

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String a,resultado,b,c,d;
    double suma;
    a = PuntLabel1.getText();
    c = RespuText.getText();
       
   
    suma = Double.parseDouble(a) + 1;
    PuntLabel1.setText(Double.toString(suma));
   
    if (a.length()>=0){   
            resultado = Pregunta(pregunta,puntaje);
            jLabel3.setText(resultado);
        }
    if (a.length()>=0) {
            b = Respuesta(puntaje,puntaje2,pregunta,pregunta1);
            PuntLabel.setText(b);
        }
    RespuText.setText("");
   
    // TODO add your handling code here:
    }                                       

    /**
     * @param args the command line arguments
     */
    public String Pregunta(String pregunta, String puntaje){
    String a,b1,respuesta;
 
    double a1;
    b1 = "5 + 2";
    a = PuntLabel1.getText();
    a1 = Double.parseDouble(a);
   
    if (a1 ==0){
    b1 = "5 + 2 =";
    pregunta = "7";
       
    }
   
    if (a1==1) {
    b1 = "5 + 5 =";
    pregunta = "10";
       
   
    }
    if (a1==2) {
    b1 = "Tercera letra del abecedario";
    }
    if (a1==3) {
    b1 = "hola amigo";
    }
   respuesta = b1;
   return respuesta;
   

}
public String Respuesta (String puntaje, String puntaje2,String pregunta,String pregunta1) {
    String hh,hl;
    int hg;
    double hf = 0;
    hl = RespuText.getText();
    hg = Integer.parseInt(hl);
   
    if (pregunta.equals(hl)) {
    hf = Double.parseDouble(PuntLabel.getText()) + 1;
    }   
hh = Double.toString(hf);
return hh;
}


    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Pregunta1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Pregunta1().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    public static javax.swing.JLabel LabelJuga;
    public static javax.swing.JLabel PuntLabel;
    private javax.swing.JLabel PuntLabel1;
    private javax.swing.JTextField RespuText;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    // End of variables declaration                   
}


Y al introducir "7" como primera respuesta y pulsar el boton, obtengo el siguiente error:

Código: [Seleccionar]
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: " 7"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:481)
at java.lang.Integer.parseInt(Integer.java:527)
at eldonkey.Pregunta1.Respuesta(Pregunta1.java:202)
at eldonkey.Pregunta1.jButton1ActionPerformed(Pregunta1.java:155)
at eldonkey.Pregunta1.access$000(Pregunta1.java:13)
at eldonkey.Pregunta1$1.actionPerformed(Pregunta1.java:66)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:702)
at java.awt.EventQueue$4.run(EventQueue.java:700)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2644
    • Ver Perfil
Re:Ayuda JAVA. juego preguntas y respuestas.
« Respuesta #3 en: 19 de Mayo 2014, 22:20 »
Voy a mirarlo pero el código no es precisamente corto así que creo que me va a llevar un buen rato descifrarlo


Choripan

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 20
    • Ver Perfil
Re:Ayuda JAVA. juego preguntas y respuestas.
« Respuesta #4 en: 20 de Mayo 2014, 02:43 »
Gracias, si quieres, esta es la parte en donde esta el codigo para las preguntas y respuestas.

Código: [Seleccionar]
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String a,resultado,b,c,d;
    double suma;
    a = PuntLabel1.getText();
    c = RespuText.getText();
       
   
    suma = Double.parseDouble(a) + 1;
    PuntLabel1.setText(Double.toString(suma));
   
    if (a.length()>=0){   
            resultado = Pregunta(pregunta,puntaje);
            jLabel3.setText(resultado);
        }
    if (a.length()>=0) {
            b = Respuesta(puntaje,puntaje2,pregunta,pregunta1);
            PuntLabel.setText(b);
        }
    RespuText.setText("");
   
    // TODO add your handling code here:
    }                                       

    /**
     * @param args the command line arguments
     */
    public String Pregunta(String pregunta, String puntaje){
    String a,b1,respuesta;
 
    double a1;
    b1 = "5 + 2";
    a = PuntLabel1.getText();
    a1 = Double.parseDouble(a);
   
    if (a1 ==0){
    b1 = "5 + 2 =";
    pregunta = "7";
       
    }
   
    if (a1==1) {
    b1 = "5 + 5 =";
    pregunta = "10";
       
   
    }
    if (a1==2) {
    b1 = "Tercera letra del abecedario";
    }
    if (a1==3) {
    b1 = "hola amigo";
    }
   respuesta = b1;
   return respuesta;
   

}
public String Respuesta (String puntaje, String puntaje2,String pregunta,String pregunta1) {
    String hh,hl;
    int hg;
    double hf = 0;
    hl = RespuText.getText();
    hg = Integer.parseInt(hl);
   
    if (pregunta.equals(hl)) {
    hf = Double.parseDouble(PuntLabel.getText()) + 1;
    }   
hh = Double.toString(hf);
return hh;
}

espero y te sirva. Aun no doy con la solucion :(

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2644
    • Ver Perfil
Re:Ayuda JAVA. juego preguntas y respuestas.
« Respuesta #5 en: 20 de Mayo 2014, 13:06 »
He intentado revisarlo y he llegado hasta:

RespuText es un JTextField

jButton1 es un JButton que hay que pulsar para que se capture la respuesta

PuntLabel1 es un JLabel que inicialmente contiene 0, luego 1  y luego 2... (usando casting desde el String obtenido con getText hasta un double)

jLabel3 es un JLabel donde se muestra la pregunta (inicialmente  5 +2 = )

...

Pero el código lo veo bastante ilegible, parece bastante complicado de depurar. Te dejo una idea de cómo podría organizarse por si te pudiera servir:

Una clase Pregunta que representa a una pregunta:

Código: [Seleccionar]
public class Pregunta {
    private String enunciado;
    private int respuesta;

    public Pregunta(String enunciado, int respuesta) {
        this.enunciado = enunciado;
        this.respuesta = respuesta;
    }

    public String getEnunciado() { return enunciado; }   
    public int getRespuesta () { return respuesta; }
}

Una clase Jugador que representa a un jugador:

Código: [Seleccionar]
public class Jugador {
 private String nombre;
 private int puntuacion;

    public Jugador(String nombre)     {
puntuacion = 0;
this.nombre = nombre;
   }

    public void addPunto() {
        puntuacion = puntuacion + 1;
        System.out.println ("Jugador " + nombre + " puntuó, ahora la puntuación es " + puntuacion);
    }
}

Una clase Juego que representa el juego (contiene el método main):

Código: [Seleccionar]
import java.util.Scanner;

public class Juego
{

    public Juego()
    {
    }

    public static void main (String[] Args) {
        System.out.println ("Comienza el juego");
        Jugador jugador1 = new Jugador ("Carlos");
        Pregunta[] pregunta = new Pregunta[4];
        pregunta[1] = new Pregunta ("5+2", 7);
        pregunta[2] = new Pregunta ("5+5", 10);
        pregunta[3] = new Pregunta ("7+2", 9);
        for (int i=1; i< pregunta.length; i++) {
            System.out.print ("Responda a " + pregunta[i].getEnunciado() + ": ");

            Scanner sc = new Scanner(System.in);
            String respuesta1;
            respuesta1 = sc.nextLine();

            if (Integer.parseInt(respuesta1)==pregunta[i].getRespuesta()) {
                System.out.println ("Ha acertado");
                jugador1.addPunto();
            }
            else {System.out.println ("Ha fallado. Inténtelo con otra pregunta"); }
        }
    }
}

El programa se construye haciendo interaccionar a las clases entre sí.


 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".