Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda una variable

Estas en el tema de Ayuda una variable en el foro de Java en Foros del Web. Hola, estoy haciendo un programa de piedra, papel, tijera. El programa corre bien, pero necesito utilizar numeros en vez de string para la entrada de ...
  #1 (permalink)  
Antiguo 10/03/2008, 19:21
 
Fecha de Ingreso: marzo-2008
Mensajes: 13
Antigüedad: 16 años, 2 meses
Puntos: 0
Ayuda una variable

Hola,

estoy haciendo un programa de piedra, papel, tijera. El programa corre bien, pero necesito utilizar numeros en vez de string para la entrada de datos del jugador. Probablemente hay algo que no se como hacer, por fsvor me ayudan.

gracias


Código:
/*  calling libraries*/

     import javax.swing.JOptionPane;
     import java.util.Random;

/*  Declaring the class */

     public class RockPaperScissors1

     {

/*  Defining The method */

     public static void main(String[ ] args)
     {

/*  Declaring variables*/

        double selection;
        double R = 1;
        double P = 2;
        double S = 3;
        Random pc = new Random();
        int pcint = pc.nextInt(3)+1;

/*  Aqui necesito la opcion de que la entrada sea a traves de numeros y no string */

        selection = JOptionPane.showMessageDialog(null, "Welcome to the Rock, 
        Paper, Scissors"
        + "\nEnter 1 for ROCK" + "\nEnter 2 for PAPER" + "\nEnter 3 for SCISSORS");

/*  Comparing the two inputs and getting a result */

        if(selection == pcint)
          JOptionPane.showMessageDialog(null, " It's a Tie! ");      

       if(selection == 1 && pcint == 2)
         JOptionPane.showMessageDialog(null, " PC wins! ");      
  
       if(selection == 2 && pcint ==1)
         JOptionPane.showMessageDialog(null, " You Win! ");      

       if(selection == 1 && pcint == 3)
         JOptionPane.showMessageDialog(null, " PC Wins! ");      

       if(selection == 3 && pcint == 1)
         JOptionPane.showMessageDialog(null, " You Win! ");      

       if(selection == 2 && pcint == 3)
         JOptionPane.showMessageDialog(null, " PC Wins! ");      

       if(selection == 3 && pcint == 2)
         JOptionPane.showMessageDialog(null, " You Win! ");      

/* Program finishes here */

       System.exit(0);   
        
       }
}
  #2 (permalink)  
Antiguo 11/03/2008, 10:04
 
Fecha de Ingreso: septiembre-2006
Mensajes: 6
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Ayuda una variable

dale por el lado de la conversion por CAST

una variable int ejemplo:


int var;

selection = JOptionPane.showMessageDialog(null, "Welcome to the Rock,
Paper, Scissors"
+ "\nEnter 1 for ROCK" + "\nEnter 2 for PAPER" + "\nEnter 3 for SCISSORS");

var = (int) selection;



Con esto puedes convertir ese dato a entero
  #3 (permalink)  
Antiguo 11/03/2008, 17:03
Avatar de victor666  
Fecha de Ingreso: junio-2007
Mensajes: 39
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Ayuda una variable

saludos

La verdad no estoy muy seguro de que con el cast funcione, para esto exite la funcion Integer.parseInt(); ya que no es posible convertir un Objeto String a un tipo de dato primitivo..
  #4 (permalink)  
Antiguo 12/03/2008, 06:49
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Ayuda una variable

¿Has pensado en utilizar un ComboBox o unos Radio buttons para dejarle introducir su seleccion? Así no tendria que escribir nada.
Otra opcion es usar una Enumeration para las diferentes opciones, si la version de Java que estas usando es > 5.

S!

PD: Por cierto, para pasar un String a un int, un cast no funciona. Seguro.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #5 (permalink)  
Antiguo 12/03/2008, 21:17
 
Fecha de Ingreso: marzo-2008
Mensajes: 13
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda una variable

Gracias por sus respuestas.

La idea del programa es que cuando el jugador entre la opcion 1, 2, o 3 esta sea como una variable (si puedo decir eso) y no como un string. Todavia no se como usar botones o esas cosas avanzadas; razon por la cual tengo que hacerlo con numeros.

Intente poner el int var;, pero me sale un error:

rockpaperscissors1.java:40:cannot find the symbol
symbol method showMessageDialog(java.lang.String)
location: class javax.swing.JOptionPane
selection = JOptionPane.showMessageDialog("Welcome to the Rock, Paper, Scissors"

1 error

No estoy seguro si esto se refiere al hecho de que estoy mezclando variables o algo asi, pero no encuentro la forma de hacer la entrada unicamente con numeros sin utilizar el String.

Cualquier ayuda se las agradezco mucho

Código:
*  calling libraries*/

     import javax.swing.JOptionPane;
     import java.util.Random;

/*  Declaring the class */

     public class RockPaperScissors1

     {

/*  Defining The method */

     public static void main(String[ ] args)
     {

/*  Declaring variables*/

        int var;
        double selection;
        double R = 1;
        double P = 2;
        double S = 3;
        Random pc = new Random();
        int pcint = pc.nextInt(3)+1;

/*  Asking for input from the player and converting the entry into an Integer */

        selection = JOptionPane.showMessageDialog("Welcome to the Rock, Paper,
        Scissors"
        + "\nEnter 1 for ROCK" + "\nEnter 2 for PAPER" + "\nEnter 3 for SCISSORS");
        var = (int) selection;

/*  Comparing the two inputs and getting a result */

        if(selection == pcint)
          JOptionPane.showMessageDialog(null, " It's a Tie! ");      

       if(selection == 1 && pcint == 2)
         JOptionPane.showMessageDialog(null, " PC wins! ");      
  
       if(selection == 2 && pcint ==1)
         JOptionPane.showMessageDialog(null, " You Win! ");      

       if(selection == 1 && pcint == 3)
         JOptionPane.showMessageDialog(null, " PC Wins! ");      

       if(selection == 3 && pcint == 1)
         JOptionPane.showMessageDialog(null, " You Win! ");      

       if(selection == 2 && pcint == 3)
         JOptionPane.showMessageDialog(null, " PC Wins! ");      

       if(selection == 3 && pcint == 2)
         JOptionPane.showMessageDialog(null, " You Win! ");      

/* Program finishes here */

       System.exit(0);   
        
       }
}
  #6 (permalink)  
Antiguo 13/03/2008, 00:53
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Re: Ayuda una variable

Creo que yo cambiaría esto :

Código:
        int var;
        double selection;
        double R = 1;
        double P = 2;
        double S = 3;
Por esto :

Código:
        int selection;
        int R = 1;
        int P = 2;
        int S = 3;
Y esto :

Código:
/*  Asking for input from the player and converting the entry into an Integer */

        selection = JOptionPane.showMessageDialog("Welcome to the Rock, Paper,
        Scissors"
        + "\nEnter 1 for ROCK" + "\nEnter 2 for PAPER" + "\nEnter 3 for SCISSORS");
        var = (int) selection;
Por esto :

Código:
        String s = "";
        Integer i = 0;
        while (i < 1 || i > 3) {
            try {
                s = JOptionPane.showInputDialog (null,
                                                 "Welcome to the Rock, Paper, Scissors" +
                                                 "\nEnter 1 for ROCK" +
                                                 "\nEnter 2 for PAPER" +
                                                 "\nEnter 3 for SCISSORS");
                if (s == null) System.exit(1);
                i = Integer.parseInt(s);
            } catch (NumberFormatException ex) {
                // showMessage (Hey.. ingrese un numero.)
            } catch (java.awt.HeadlessException ex) {
                // end with (Oops)
            }
        }
        selection = i;
Creo que si no quieres usar el modo gráfico por completo, con los botones,
sería mejor que no utilices showMessageDialog ni showInputDialog,
sino

System.out.println() y
{ Console console = System.console();
String inputline = console.readLine(...) }

Aunque puedo estar equivocado...
Saludos,

Última edición por HackmanC; 13/03/2008 a las 00:58
  #7 (permalink)  
Antiguo 18/03/2008, 20:06
 
Fecha de Ingreso: marzo-2008
Mensajes: 13
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda una variable

Hola,

mis disculpas por no contestar antes pero me salio un viaje de repente y todo este proceso se paro ahi.

Excelentes puntos, los puse en practica y todo salio perfecto. Gracias.

Lo de la parte grafica, todavia no tengo conocimiento de eso, entonces no sabria como hacerlo.

De todas maneras gracias y hasta la proxima.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:31.