Interfaz del Ahorcado:
public interface ClienteAhorcadoint{
public void enviarMensaje();
public String crearMensajeRespuesta();
public int getEstadoJuego();
public char getLetra();
public int getNroIntentos();
public String getPalabraEnProgreso();
public void setEstadoJuego(int estadoJuego);
public void setLetra(char letra);
public void leerMensaje(String mensaje);
public void imprimirMensajeEnPantalla();
public String getPalabraActualGuionBajo();
public String mostrarEstado();
public void imprimirEntrada();
public void imprimirSalida();
}
Implementación de la Interfaz del Ahorcado:
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.util.StringTokenizer;
public class ClienteAhorc implements ClienteAhorcadoint {
private static final int INACTIVO = 0;
private static final int JUGANDO = 1;
private static final int GANO = 2;
private static final int PERDIO = 3;
private static final int SolicJuegoNuevo = 4;
private static final int JuegoTerminado = 5;
private static final int puerto = 10028;
private static BufferedReader in = null;
private static DataOutputStream out = null;
private static Socket conexion;
private static int edoJuego = INACTIVO;
private static int intentRest = 6;
private static char letra = '*';
private static String palabraEnProgreso = "*";
private static Integer numMensaje = 0;
public static void main(String[] args) {
try {
ClienteAhorc Ahcd = new ClienteAhorc();
conexion = new Socket("192.168.15.132", 10028);
BufferedReader entradaUsuario = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Iniciando Conexion con servidor...");
in = new BufferedReader(new InputStreamReader(conexion.getInputStream()));
out = new DataOutputStream(conexion.getOutputStream());
System.out.println("Conexion realizada...");
boolean jugando = true;
while (jugando == true) {
if (edoJuego == INACTIVO) {
Ahcd. setEstadoJuego(SolicJuegoNuevo);
Ahcd.enviarMensaje();
} else {
Ahcd.leerMensaje(in.readLine());
if (edoJuego == JUGANDO) {
Ahcd.imprimirMensajeEnPantalla();
System.out.println("Ingrese una letra: ");
Ahcd.setLetra(entradaUsuario.readLine().charAt(0));
Ahcd.enviarMensaje();
} else {
if (edoJuego == GANO) {
Ahcd. setEstadoJuego(JuegoTerminado);
Ahcd.imprimirMensajeEnPantalla();
jugando = false;
System.out.println("¡Felicidades! Ganaste en el juego de Ahorcado");
}
if (edoJuego == PERDIO) {
Ahcd. setEstadoJuego(JuegoTerminado);
Ahcd.imprimirMensajeEnPantalla();
jugando = false;
System.out.println("Lastima, no te quedan mas intentos.\nHas perdido");
}
System.out.println("Juego terminado");
}
}
}
}catch (IOException ex) {
System.out.println("Error de Entrada/Salida");
System.out.println("No fue posible realizar la conexion, posiblemente el servidor este inactivo.");
}
}
public void enviarMensaje() {
ClienteAhorc Ahcd = new ClienteAhorc();
try {
if (edoJuego == SolicJuegoNuevo) {
out.writeBytes(Ahcd.crearMensajeRespuesta());
} else {
out.writeBytes(Ahcd.crearMensajeRespuesta());
}
}catch (IOException iOException) {
System.out.println("Error al enviar el mensaje");
}
}
public String crearMensajeRespuesta() {
return edoJuego + "#" + intentRest + "#" + letra + "#" + palabraEnProgreso + "#" +numMensaje + "\n";
}
public int getEstadoJuego() {
return edoJuego;
}
public char getLetra() {
return letra;
}
public int getNroIntentos() {
return intentRest;
}
public String getPalabraEnProgreso() {
return palabraEnProgreso;
}
public void setEstadoJuego(int edoJuego) {
ClienteAhorc.edoJuego = edoJuego;}
public void setLetra(char letra) {
ClienteAhorc.letra = letra;
}
public void leerMensaje(String mensaje) {
StringTokenizer stk = new StringTokenizer(mensaje, "#");
while (stk.hasMoreTokens()) {
edoJuego = Integer.valueOf(stk.nextToken());
intentRest = Integer.valueOf(stk.nextToken());
letra = stk.nextToken().charAt(0);
palabraEnProgreso = stk.nextToken();
numMensaje = Integer.valueOf(stk.nextToken());
}
}
public void imprimirMensajeEnPantalla() {
ClienteAhorc Ahcd = new ClienteAhorc();
System.out.println("^^^^^^^^^^^ Ahorcado ^^^^^^^^^^^");
imprimirAhorcado(intentRest);
System.out.println("\nPalabra actual: " + Ahcd.getPalabraActualGuionBajo());
System.out.println("Intentos restantes: " + intentRest);
}
public String getPalabraActualGuionBajo() {
String[] a = palabraEnProgreso.split("");
String impr = "";
for (int i = 0; i < a.length; i++) {
impr += a[i] + " ";}
return impr;
}
public String mostrarEstado() {
if (edoJuego == 0) {
return "INACTIVO";}
else {
if (edoJuego == 1) {
return "JUGANDO";}
else {
if (edoJuego == 2) {
return "GANO";}
else {
if (edoJuego == 3) {
return "PERDIO";}
else {
if (edoJuego == 4) {
return "SolicJuegoNuevo";}
else {
return "JuegoTerminado";}}}}}}
public void imprimirEntrada() {
ClienteAhorc Ahcd = new ClienteAhorc();
String a = edoJuego + "#" + intentRest + "#" + letra + "#" + palabraEnProgreso +"#" + numMensaje;
System.out.println("Leido por el cliente: " + a + "\n" + Ahcd.mostrarEstado());}
public void imprimirSalida() {
ClienteAhorc Ahcd = new ClienteAhorc();
String a = edoJuego + "#" + intentRest + "#" + letra + "#" + palabraEnProgreso +"#" + numMensaje;
System.out.println("Enviado por el cliente: " + a + "\n" + Ahcd.mostrarEstado());}
public void imprimirAhorcado(int intentRest) {
System.out.println(" ________________");
if (intentRest < 1) {
System.out.println("| |");
System.out.println("| |");
System.out.println("| O");
System.out.println("| \\|/");
System.out.println("| |");
System.out.println("| /|\\");
System.out.println("|");
System.out.println("|");
System.out.println("|");
}
else {
if (intentRest < 2) {
System.out.println("| |");
System.out.println("| |");
System.out.println("| O");
System.out.println("| \\|/");
System.out.println("| |");
System.out.println("| /|");
System.out.println("|");
System.out.println("|");
System.out.println("|");
}
else {
if (intentRest < 3) {
System.out.println("| |");
System.out.println("| |");
System.out.println("| O");
System.out.println("| \\|/");
System.out.println("| |");
System.out.println("| |");
System.out.println("|");
System.out.println("|");
System.out.println("|");
}
else {
if (intentRest < 4) {
System.out.println("| |");
System.out.println("| |");
System.out.println("| O");
System.out.println("| \\|");
System.out.println("| |");
System.out.println("| |");
System.out.println("|");
System.out.println("|");
System.out.println("|");
}
else {
if (intentRest < 5) {
System.out.println("| |");
System.out.println("| |");
System.out.println("| O");
System.out.println("| |");
System.out.println("| |");
System.out.println("| |");
System.out.println("|");
System.out.println("|");
System.out.println("|");
}
else {
if (intentRest < 6) {
System.out.println("| |");
System.out.println("| |");
System.out.println("| O");
System.out.println("|");
System.out.println("|");
System.out.println("|");
System.out.println("|");
System.out.println("|");
System.out.println("|");
}
else {
if (intentRest < 7) {
System.out.println("| |");
System.out.println("| |");
System.out.println("|");
System.out.println("|");
System.out.println("|");
System.out.println("|");
System.out.println("|");
System.out.println("|");
System.out.println("|");
}}}}}}}
System.out.print("----------------------------");}
}
No hay comentarios:
Publicar un comentario