elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Cifrar documentos-carpetas con GnuPG en Linux y Windows


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  Piedra Papel Tijeras [JAVA]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Piedra Papel Tijeras [JAVA]  (Leído 5,765 veces)
overxfl0w13

Desconectado Desconectado

Mensajes: 163



Ver Perfil WWW
Piedra Papel Tijeras [JAVA]
« en: 8 Noviembre 2012, 16:03 »

No consigo hacer funcionar el programa, siempre me devuelve lo mismo
"El jugador no ha introducido una opcion valida" y "Ganador PC", cuando es mentira.

El código es el siguiente:

Código
  1. import java.util.*;
  2. public class juegoInfantil
  3. {
  4.    public final int Piedra = 0,Papel = 1,Tijeras = 2;
  5.    public String eleccionJugador1,eleccionJugador2;
  6.    public int ganadorJuego; // 0 si gana Pc 1 si gana jugador 2 empate
  7.  
  8.    public juegoInfantil(String eleccionJugador1)
  9.    {
  10.        this.eleccionJugador1 = eleccionJugador1;
  11.        this.eleccionJugador1 = this.eleccionJugador1.toUpperCase();
  12.    }
  13.  
  14.    public void setEleccionJugador2()
  15.    {
  16.        Random numeroRandom = new Random();
  17.        int eleccionPc = numeroRandom.nextInt(3);
  18.        switch(eleccionPc)
  19.        {
  20.            case 0: this.eleccionJugador2 = "Piedra";
  21.            break;
  22.            case 1: this.eleccionJugador2 = "Papel";
  23.            break;
  24.            case 2: this.eleccionJugador2 = "Tijeras";
  25.            break;
  26.        }
  27.        this.eleccionJugador2 = this.eleccionJugador2.toUpperCase();
  28.        System.out.println("La eleccion del jugador 2 es: " + this.eleccionJugador2 + " y la del jugador 1: " + this.eleccionJugador1);
  29.    }
  30.  
  31.    public void inicioJuego()
  32.    {
  33.        if(this.eleccionJugador1 == "PIEDRA")
  34.        {
  35.            if(this.eleccionJugador2 == "PAPEL") this.ganadorJuego = 0;
  36.            else if(this.eleccionJugador2 == "TIJERAS") this.ganadorJuego = 1;
  37.            else this.ganadorJuego = 2;
  38.        }
  39.        else if(this.eleccionJugador1 == "PAPEL")
  40.        {
  41.            if(this.eleccionJugador2 == "PAPEL") this.ganadorJuego = 2;
  42.            else if(this.eleccionJugador2 == "TIJERAS") this.ganadorJuego = 0;
  43.            else this.ganadorJuego = 1;
  44.        }
  45.        else if(this.eleccionJugador1 == "TIJERAS")
  46.        {
  47.            if(this.eleccionJugador2 == "TIJERAS") this.ganadorJuego = 2;
  48.            else if(this.eleccionJugador2 == "PIEDRA") this.ganadorJuego = 0;
  49.            else this.ganadorJuego = 1;
  50.        }
  51.        else if(this.eleccionJugador1 != "TIJERAS" && this.eleccionJugador1 != "PAPEL" && this.eleccionJugador1 != "PIEDRA")
  52.        {
  53.            System.out.print("El jugador no ha introducido una opcion valida");
  54.            return;
  55.        }  
  56.    }
  57.  
  58.    public String getGanador()
  59.    {
  60.        if(this.ganadorJuego == 0) return "Ganador Pc";
  61.        else if(this.ganadorJuego == 1) return "Ganador Jugador";
  62.        else if(this.ganadorJuego == 2) return "Empate o Tablas";
  63.        return "Error";
  64.    }
  65.  
  66.    public static void main(String args[])
  67.    {
  68.        Scanner entradaTeclado = new Scanner(System.in);
  69.        System.out.println("Introduce tu opcion: ");
  70.        String entradaJugador = entradaTeclado.next();
  71.        entradaJugador = entradaJugador.toUpperCase();
  72.        juegoInfantil piedraPapelTijera = new juegoInfantil(entradaJugador);
  73.        piedraPapelTijera.setEleccionJugador2();
  74.        piedraPapelTijera.inicioJuego();
  75.        System.out.printf("%n%s",piedraPapelTijera.getGanador());
  76.    }
  77. }
  78.  

No sé que pasará pero me trae de cabeza xD


En línea

[/url]
Valkyr


Desconectado Desconectado

Mensajes: 650


Divide y vencerás


Ver Perfil
Re: Piedra Papel Tijeras [JAVA]
« Respuesta #1 en: 8 Noviembre 2012, 22:12 »

La comparación de cadenas en Java se realiza con el método equals el cual tienen todas las clases puesto que se hereda de Object.

Código
  1. "PIEDRA".equalsIgnoreCase(this.eleccionJugador1)
  2.  

Con ese método compararías la entrada de forma insensible a mayúsculas y minúsculas. Cabe destacar que realizo la llamada al método sobre el objeto "PIEDRA" (que es un String) para que en caso de que eleccionJugador1 sea null, no de una excepción.

Saludos.


En línea

overxfl0w13

Desconectado Desconectado

Mensajes: 163



Ver Perfil WWW
Re: Piedra Papel Tijeras [JAVA]
« Respuesta #2 en: 9 Noviembre 2012, 15:33 »

La comparación de cadenas en Java se realiza con el método equals el cual tienen todas las clases puesto que se hereda de Object.

Código
  1. "PIEDRA".equalsIgnoreCase(this.eleccionJugador1)
  2.  

Con ese método compararías la entrada de forma insensible a mayúsculas y minúsculas. Cabe destacar que realizo la llamada al método sobre el objeto "PIEDRA" (que es un String) para que en caso de que eleccionJugador1 sea null, no de una excepción.

Saludos.

Muchas gracias al final me dí cuenta del fallo, la costumbre de C++.

Un saludo :)
En línea

[/url]
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Piedra, Papel o Tijeras a lo Geek
Foro Libre
Angeldj27 7 2,137 Último mensaje 5 Abril 2010, 21:01
por Azielito
piedra papel tijera....en c++
Programación C/C++
flony 6 9,382 Último mensaje 9 Agosto 2010, 05:24
por Beakman
[BATCH-GAME] Piedra papel o tijera xD
Scripting
Eleкtro 2 1,557 Último mensaje 8 Agosto 2012, 12:00
por Puntoinfinito
[Resuelto] Piedra, papel, tijeras y algo más... en javascript
Desarrollo Web
HelThunk 8 1,302 Último mensaje 16 Abril 2016, 14:42
por MinusFour
Piedra papel o tijeras
Programación C/C++
JaviCasti 1 320 Último mensaje 11 Enero 2017, 19:29
por AlbertoBSD
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines