Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Ayuda una variable (http://www.forosdelweb.com/f45/ayuda-variable-564753/)

nerublanco 10/03/2008 19:21

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); 
       
      }
}


andresdino 11/03/2008 10:04

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

victor666 11/03/2008 17:03

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

GreenEyed 12/03/2008 06:49

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.

nerublanco 12/03/2008 21:17

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); 
       
      }
}


HackmanC 13/03/2008 00:53

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,

nerublanco 18/03/2008 20:06

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.


La zona horaria es GMT -6. Ahora son las 08:54.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.