JavaJutsu: Piedra Papel Tijera
JavaJutsu: funciones estáticas
El programa para jugar a piedra papel tijera:
/**
* @(#)PiedraPapelTijera.java
*
*
* @author
* @version 1.00 2012/1/30
*/
import java.util.Random;
import java.io.*;
public class PiedraPapelTijera {
/**
* log
* Muestra por consola un string
* lo hacemos para simplificar la llamada a System.out.println
* en el resto de funciones
* @param String msg
*/
public static void log(String msg) {
System.out.println(msg);
}
/**
* solicitarUsuario
* Solicita al usuario y número y lo convierte a entero
* @return int
*/
public static int solicitarUsuario() {
Console consola = System.console();
int resultado = 0;
String linea = "";
log("Dame algo:\n 1.Piedra\n 2.Papel\n 3.Tijera");
linea = consola.readLine();
resultado = Integer.parseInt(linea);
return resultado;
}
/**
* maquinaDecideSigno
* Genera un número aleatorio entre 1 y 3
* muestra el nombre del signo escogido
* @return int
*/
public static int maquinaDecideSigno() {
Random random = new Random();
int signo = 0;
// Creamos un array de nombres de signos
// para poder mostrar qué signo saca la máquina
String nombreSignos[] = {"","Piedra","Papel","Tijera"};
signo = random.nextInt(3) + 1;
log("La máquina saca "+ signo+ " es decir: " + nombreSignos[signo]);
return signo;
}
/**
* decidirGanardor
* Decide quién gana:
* 0: empate
* 1: humano
* 2: máquina
* @param int humano
* @param int maquina
* @return int
*/
public static int decidirGanardor(int humano, int maquina) {
int resultado = 0;
switch (humano)
{
case 1: log("Tú has elegido Piedra");
switch (maquina)
{
case 1: resultado = 0;
break;
case 2: resultado = 2;
break;
case 3: resultado = 1;
break;
}
break;
case 2: log("Tú has elegido Papel");
switch (maquina)
{
case 1: resultado = 1;
break;
case 2: resultado = 0;
break;
case 3: resultado = 2;
break;
}
break;
case 3: log("Tú has elegido Tijera");
switch (maquina)
{
case 1: resultado = 2;
break;
case 2: resultado = 1;
break;
case 3: resultado = 0;
break;
}
break;
}
return resultado;
}
public static void main(String args[])
{
String lectura = "";
int jugadah, jugadam, resultado;
int jugador, maquina;
// Inicializo todos a la vez
// qué pro que soy
jugador = maquina = jugadam = jugadah = resultado = 0;
do {
jugadah = solicitarUsuario();
jugadam = maquinaDecideSigno();
resultado = decidirGanardor(jugadah, jugadam);
if (resultado == 1 ) {
log("Ganas la ronda");
jugador++;
} else if (resultado == 2) {
log("Pierdes la ronda");
maquina++;
}
log("Tú: " + jugador + " Com:" + maquina+"\n\n");
} while (jugador<3 && maquina<3);
if (jugador > maquina) {
log("Excelent work");
}
else {
log("n0000000b");
}
log("Winners don't use drugs");
}
}