* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ahorcado;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.*;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Alumnos
*/
public class ServidorJuego {
public static final int PUERTO = 2250;
Socket jugadores[] = new Socket[100];
int puntos[] = new int[100];
BufferedReader entrada[] = new BufferedReader[100];
PrintWriter salida[] = new PrintWriter[100];
Thread hilos[] = new Thread[100];
String palabras[] = {"Victor","Francisco","investigacion", "Archivo",
"Computacion","Astronomia","Ingenieria",
"Felicidad","Salud","Dinero","Energia",
"Fuerza","Flojera"};
public String actual = "lkdjakj";
String respuesta;
int contador;
int errores;
int turnoActual;
int numJugadores = 4;
Random generador = new Random();
public static void main( String args[] ){
new ServidorJuego().inicia();
}
public ServidorJuego(){
actual = palabras[generador.nextInt(palabras.length-1)].toUpperCase();
}
public void inicia(){
System.out.println(actual);
try {
ServerSocket servidor = new ServerSocket(PUERTO);
for( int i = 0; i < numJugadores; i++ ){
jugadores[i] = new Socket();
System.out.println("Esperando jugador " + i+1);
jugadores[i] = servidor.accept();
System.out.println("Aceptado ");
System.out.println("Palabra: " + actual );
entrada[i] = new BufferedReader( new InputStreamReader( jugadores[i].getInputStream() ) );
salida[i] = new PrintWriter(jugadores[i].getOutputStream(), true);
salida[i].println("N" + i + " " + actual);
}
System.out.println("Palabra: " + actual );
System.out.println("Turno Actual " + turnoActual );
while( contador < actual.length() && errores < 10 ){
System.out.println(" contador de correctas = " + contador);
System.out.println("Numero de errores: " + errores );
String cadena = entrada[turnoActual].readLine();
if( cadena != null ){
System.out.println("Distinto de nulo");
char letra = cadena.charAt(0);
System.out.println("Letra recibida: " + letra );
if( actual.indexOf(letra) != -1){
System.out.println("Letra Encontrada");
int temp = 0;
for( int i = 0; i < actual.length(); i++ ){
if( actual.charAt(i) == letra ){
temp++;
}
}
System.out.println("Se encontro " + temp + " veces");
contador += temp;
System.out.println("El contador es " + contador);
puntos[turnoActual] += (temp*10);
turnoActual++;
if( turnoActual == numJugadores ){
turnoActual = 0;
}
for( int i = 0; i < numJugadores; i++ ){
salida[i].println("C " + letra + " " + turnoActual+1);
}
}else{
puntos[turnoActual] -= 2;
errores++;
System.out.println("No se encontro, hay: " + errores);
turnoActual++;
if( turnoActual == numJugadores ){
turnoActual = 0;
}
for( int i = 0; i < numJugadores; i++ ){
salida[i].println("I " + letra + " " + turnoActual+1);
}
}
System.out.println("Turno ahora es: " + turnoActual );
}
}
if( errores == 10 ){
for( int i = 0; i < numJugadores; i++ ){
salida[i].println("P " + puntos[i] );
}
}else{
int max = -1;
int posicion = -1;
for( int i = 0; i < numJugadores; i++ ){
if( puntos[i] > max ){
max = puntos[i];
posicion = i;
}
}
for( int i = 0; i < numJugadores; i++ ){
if( i == posicion ){
salida[i].println("G " + puntos[i] );
}else{
salida[i].println("P " + puntos[i] );
}
}
}
} catch (IOException ex) {
Logger.getLogger(ServidorJuego.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
No hay comentarios:
Publicar un comentario