Juego Piedra,Papel y Tijera usando JOptionPane
Hola gente soy un estudiante de desarrollo de software y quisiera compartir con uds. algunos programas que he hecho. En este caso el juego piedra,papel y tijera; usando JOptionPane.
El programa es 100% funcional.
El programa, consta de 4 clases: Jugar, Presentacion, Intruccion, Principal(Contiene el metodo main).
Acá les dejo el código de cada una...
Clase: Principal
import javax.swing.*;
public class Principal {
public static void main (String args[])
{
int opt; // toma la opcion de seguir o no...
String inicial;
String menu;
int cont1 = 0;
int cont2 = 0;
int cont3 = 0;
String bestPlayer;
Intruccion objIntruccion = new Intruccion();
Presentacion objPresentacion = new Presentacion();
Jugar objJugar = new Jugar();
String string1 = "Claro, que SI!";
String string2 = "Claro, que NO!";
Object[] options = {string1,string2};
inicial = ("\t\tWWW.KUBUNTU-ES.ORG / WIKI\n"+
"\t\tJAVA\n"+"\n\n\t\t\t\tProyecto # 1\n\n"+
"\t\t\t\tJuego de Piedra, Papel y Tijera\n\n\n"+"Click en \"Aceptar\" para mostrar el menú.");
JOptionPane.showMessageDialog(null, inicial,"Proyecto # 1",JOptionPane.PLAIN_MESSAGE);
menu = ("\t\t\tMenu\t\t\t\n\n\n"+
"1. Presentación\n"+("2. Jugar\n"+"3. Instrucciones\n\n\n"+
"Por favor, tome una opción..."));
int keepgoing = 0;
do{
opt = Integer.parseInt(JOptionPane.showInputDialog(null, menu,"Proyecto # 1",JOptionPane.PLAIN_MESSAGE));
switch(opt)
{
case 1:
objPresentacion.showPresentacion();
break;
case 2:
if(objJugar.username1.equals("") && objJugar.username2.equals(""))
{
objJugar.getNames();
}
do{
objJugar.getOpt();
objJugar.desicion();
cont1 = objJugar.cont1;
cont2 = objJugar.cont2;
cont3 = objJugar.cont3;
keepgoing = JOptionPane.showOptionDialog(null, "¿Deseas seguir jugando...?","Proyecto # 1",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,options,string1);
}while (keepgoing == 0);
break;
case 3:
objIntruccion.showPresentacion();
break;
default:
JOptionPane.showMessageDialog(null, "Escogió una opción invalida, por favor ingrese una opción valida.", "Proyecto # 1", JOptionPane.PLAIN_MESSAGE);
break;
}
}while(keepgoing == 0);
bestPlayer = ("El jugador: "+objJugar.username1+", ha ganado "+cont1+" veces.\n"+
"El jugador: "+objJugar.username2+", ha ganado "+cont2+" veces.\n\n");
if(cont1 == cont2 && cont1 == cont3)
{
bestPlayer = ("El jugador: "+objJugar.username1+", ha ganado "+cont1+" veces.\n"+
"El jugador: "+objJugar.username2+", ha ganado "+cont2+" veces.\n"+
"La cantidad de empates ha sido de: "+cont3+" veces.\n\n"+
" EMPATE ");
}
else
{
if(cont1 > cont2)
{
bestPlayer = ("El jugador: "+objJugar.username1+", ha ganado "+cont1+" veces.\n"+
"El jugador: "+objJugar.username2+", ha ganado "+cont2+" veces.\n"+
"La cantidad de empates ha sido de: "+cont3+" veces.\n\n"+
" GANADOR "+objJugar.username1+" ");
}
else
if(cont1 < cont2)
{
bestPlayer = ("El jugador: "+objJugar.username1+", ha ganado "+cont1+" veces.\n"+
"El jugador: "+objJugar.username2+", ha ganado "+cont2+" veces.\n\n"+
"La cantidad de empates ha sido de: "+cont3+" veces.\n\n"+
" GANADOR "+objJugar.username2+" ");
}
}
JOptionPane.showMessageDialog(null, bestPlayer,"Proyecto # 1",JOptionPane.PLAIN_MESSAGE);
}//fin de metodo
}//fin de clase
Clase: Presentacion
import javax.swing.JOptionPane;
public class Presentacion {
String presentacion;
public void showPresentacion()
{
presentacion = (" WWW.KUBUNTU-ES.ORG / WIKI \n"+
" JAVA \n"+
" Programa No. 1 \n\n\n"+
"Integrante: mandrake0219 \n");
JOptionPane.showMessageDialog(null, presentacion,"Proyecto # 1 - Presentación",JOptionPane.PLAIN_MESSAGE);
}
}
Clase: Jugar
import javax.swing.JOptionPane;
import javax.swing.*;
public class Jugar {
String username1 = "";
String username2 = "";
String usernames;
String opt1;
String opt2;
int verif1;
int verif2;
int cont1 = 0; //contador de ganadas jugador 1
int cont2 = 0; // contador de ganadas jugador 2
int cont3 = 0; // contador de empates.
JPasswordField pwdopt1 = new JPasswordField(2);
JPasswordField pwdopt2 = new JPasswordField(2);
public void getNames()
{
username1 = JOptionPane.showInputDialog(null, "Ingrese el nombre del jugador # 1","Proyecto # 1 - Juego",JOptionPane.PLAIN_MESSAGE);
username2 = JOptionPane.showInputDialog(null, "Ingrese el nombre del jugador # 2","Proyecto # 1 - Juego",JOptionPane.PLAIN_MESSAGE);
usernames = "Los jugadores son: "+username1+" y "+username2+".\nMucha Suerte.";
JOptionPane.showMessageDialog(null, usernames,"Proyecto # 1 - Juego",JOptionPane.PLAIN_MESSAGE);
}
public void getOpt()
{
do{
verif1 = JOptionPane.showConfirmDialog(null, pwdopt1,username1+" Ingrese su opción a jugar.",JOptionPane.OK_CANCEL_OPTION);
verif2 = JOptionPane.showConfirmDialog(null, pwdopt2,username2+" Ingrese su opción a jugar.",JOptionPane.OK_CANCEL_OPTION);
if(verif1 > 0 || verif2 > 0 )
{JOptionPane.showMessageDialog(null,"No ha introducido ninguna opción o ha hecho click en \"Cancelar\"");
}
else
opt1 = new String(pwdopt1.getPassword());
opt2 = new String(pwdopt2.getPassword());
}while(verif1 > 0 || verif2 > 0 || opt1.length() == 0 || opt2.length() == 0);
}
public void desicion()
{
if((opt1.equals("R") || opt1.equals("r") || opt1.equals("piedra") || opt1.equals("PIEDRA")) && (opt2.equals("T") || opt2.equals("t") || opt2.equals("tijera") || opt2.equals("TIJERA")))
{
JOptionPane.showMessageDialog(null, username1+" ha ganado","Proyecto # 1 - Juego",JOptionPane.PLAIN_MESSAGE);
cont1 = cont1 + 1;
}
else
{
if((opt1.equals("R") || opt1.equals("r") || opt1.equals("piedra") || opt1.equals("PIEDRA")) && (opt2.equals("P") || opt2.equals("p") || opt2.equals("papel") || opt2.equals("PAPEL")))
{
JOptionPane.showMessageDialog(null, username2+" ha ganado","Proyecto # 1 - Juego",JOptionPane.PLAIN_MESSAGE);
cont2 = cont2 + 1;
}
else
{
if((opt1.equals("T") || opt1.equals("t") || opt1.equals("tijera") || opt1.equals("TIJERA")) && (opt2.equals("R") || opt2.equals("r") || opt2.equals("piedra") || opt2.equals("PIEDRA")))
{
JOptionPane.showMessageDialog(null, username2+" ha ganado","Proyecto # 1 - Juego",JOptionPane.PLAIN_MESSAGE);
cont2 = cont2 + 1;
}
else
{
if((opt1.equals("T") || opt1.equals("t") || opt1.equals("tijera") || opt1.equals("TIJERA")) && (opt2.equals("P") || opt2.equals("p") || opt2.equals("papel") || opt2.equals("PAPEL")))
{
JOptionPane.showMessageDialog(null, username1+" ha ganado","Proyecto # 1 - Juego",JOptionPane.PLAIN_MESSAGE);
cont1 = cont1 + 1;
}
else
{
if((opt1.equals("P") || opt1.equals("p") || opt1.equals("papel") || opt1.equals("PAPEL")) && (opt2.equals("T") || opt2.equals("t") || opt2.equals("tijera") || opt2.equals("TIJERA")))
{
JOptionPane.showMessageDialog(null, username2+" ha ganado","Proyecto # 1 - Juego",JOptionPane.PLAIN_MESSAGE);
cont2 = cont2 + 1;
}
else
{
if((opt1.equals("P") || opt1.equals("p") || opt1.equals("papel") || opt1.equals("PAPEL")) && (opt2.equals("R") || opt2.equals("r") || opt2.equals("piedra") || opt2.equals("PIEDRA")))
{
JOptionPane.showMessageDialog(null, username1+" ha ganado","Proyecto # 1 - Juego",JOptionPane.PLAIN_MESSAGE);
cont1 = cont1 +1;
}
else
if(opt1.equals(opt2))
{
JOptionPane.showMessageDialog(null, "Han Empatado","Proyecto # 1 - Juego",JOptionPane.PLAIN_MESSAGE);
cont3 = cont3 + 1;
}
}
}
}
}
}
}//fin del metodo
}//cierra clase
Clase: Intruccion
import javax.swing.JOptionPane;
public class Intruccion {
String intrucciones;
public void showPresentacion()
{
intrucciones = ("\n INSTRUCCIONES \n\n\n"
+"Al escoger la opcion numero 2 (Jugar), se le(s) pedirá los nombres"
+"\nde los jugadores." +
"\n\n Opciones:"+
"\nIngrese R para Piedra"+
"\nIngrese P para Papel"+
"\nIngrese T para Tijera"+
"\n\n ¿Como se gana?"+
"\nLa Piedra le gana a la Tijera"+
"\nLa Tijera le gana al Papel"+
"\nEl Papel le gana a la Piedra."+
"\n\nLa ultima opción escogida se mantiene, aunque se cambie los nombres de los jugadores"+
"\nSe puede ingresar: R, piedra, PIEDRA o r; en caso de querer escoger ROCA"+
"\nSe puede ingresar: P, papel, PAPEL, o p; en caso de querer escoger PAPEL"+
"\nSe puede ingresar: T, tijera, TIJERA o t; en caso de querer escoger TIJERA"+
"\n\n\n SUERTE!!!");
JOptionPane.showMessageDialog(null, intrucciones,"Proyecto # 1 - Instruccines",JOptionPane.PLAIN_MESSAGE);
}
}
Aportado por : mandrake0219
Fecha aporte: 28/10/2009