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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  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 12,025 veces)
overxfl0w13

Desconectado Desconectado

Mensajes: 163



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

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: 646


Divide y vencerás


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

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 pm »

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 tijera....en c++
Programación C/C++
flony 6 14,145 Último mensaje 9 Agosto 2010, 05:24 am
por Beakman
[Resuelto] Piedra, papel, tijeras y algo más... en javascript
Desarrollo Web
HelThunk 8 5,228 Último mensaje 16 Abril 2016, 14:42 pm
por MinusFour
Piedra papel o tijeras
Programación C/C++
JaviCasti 1 4,656 Último mensaje 11 Enero 2017, 19:29 pm
por AlbertoBSD
Roca, papel y tijeras-Problema [C]
Programación C/C++
Darklexis312 1 2,838 Último mensaje 9 Abril 2018, 12:24 pm
por MAFUS
Error en código para Piedra, Papel, o Tijeras (C++)
Programación C/C++
xtremeair2 3 2,583 Último mensaje 24 Enero 2023, 23:53 pm
por xtremeair2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines