Funciona una sala
This commit is contained in:
parent
b067f6034f
commit
b0db99d83a
@ -18,26 +18,62 @@ public class ComunacacionJugador extends Thread{
|
||||
BufferedReader bufferEntrada = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
|
||||
PrintWriter bufferSalida = new PrintWriter(new OutputStreamWriter(this.socket.getOutputStream()),true);
|
||||
bufferSalida.println(Servidor.mostrarSalas()+"fin");
|
||||
int sala = Integer.getInteger(bufferEntrada.readLine());
|
||||
Servidor.addJugador(sala, this.socket);
|
||||
int sala = Integer.parseInt(bufferEntrada.readLine())-1;
|
||||
if(Servidor.addJugador(sala, this.socket)) {
|
||||
bufferSalida.println("Has entrado en la sala");
|
||||
}else {
|
||||
bufferSalida.println("Error al entrar en la sala");
|
||||
socket.close();
|
||||
return;
|
||||
}
|
||||
|
||||
if(Servidor.salas.get(sala).getJugador1().equals(this.socket)) {
|
||||
bufferSalida.println("Esperando al segundo jugador");
|
||||
synchronized (getClass()) {
|
||||
this.getClass().wait();
|
||||
}
|
||||
turno = 1;
|
||||
bufferSalida.println("Primero");
|
||||
bufferSalida.println(Servidor.salas.get(sala).tablero.getTablero());
|
||||
Servidor.salas.get(sala).tablero.colocarFicha(Integer.parseInt(bufferEntrada.readLine()),
|
||||
Integer.parseInt(bufferEntrada.readLine()),turno);
|
||||
synchronized (getClass()) {
|
||||
this.getClass().notifyAll();
|
||||
this.getClass().wait();
|
||||
}
|
||||
}else {
|
||||
bufferSalida.println("Iniciando partida");
|
||||
bufferSalida.println("Segundo");
|
||||
synchronized (getClass()) {
|
||||
this.getClass().notifyAll();
|
||||
this.getClass().wait();
|
||||
}
|
||||
}
|
||||
while(continuar) {
|
||||
Servidor.salas.get(sala).tablero.colocarFicha(Integer.parseInt(bufferEntrada.readLine()),
|
||||
Integer.parseInt(bufferEntrada.readLine()),turno);
|
||||
synchronized (getClass()) {
|
||||
this.getClass().wait();
|
||||
int finalJuego = Servidor.salas.get(sala).tablero.finalJuego();
|
||||
if(finalJuego != 0) {
|
||||
continuar = false;
|
||||
if(finalJuego == turno) {
|
||||
bufferSalida.println("v");
|
||||
}else {
|
||||
bufferSalida.println("f");
|
||||
}
|
||||
synchronized (getClass()) {
|
||||
this.getClass().notifyAll();
|
||||
}
|
||||
}else {
|
||||
bufferSalida.println(Servidor.salas.get(sala).tablero.getTablero());
|
||||
Servidor.salas.get(sala).tablero.colocarFicha(Integer.parseInt(bufferEntrada.readLine()),
|
||||
Integer.parseInt(bufferEntrada.readLine()),turno);
|
||||
synchronized (getClass()) {
|
||||
this.getClass().notifyAll();
|
||||
this.getClass().wait();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// TODO Auto-generated method stub
|
||||
Servidor servidor = Servidor.getInstance();
|
||||
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,7 @@ public class Sala {
|
||||
}
|
||||
|
||||
public boolean aniadirJugador(Socket jugador) {
|
||||
if(this.nJugadores >=1 ) {
|
||||
if(this.nJugadores <= 1 ) {
|
||||
this.jugadores[this.nJugadores] = jugador;
|
||||
this.nJugadores++;
|
||||
return true;
|
||||
|
@ -23,7 +23,7 @@ public class Servidor {
|
||||
}
|
||||
}
|
||||
|
||||
public Servidor getInstance() {
|
||||
public static Servidor getInstance() {
|
||||
if(Servidor.instancia == null) {
|
||||
Servidor.instancia = new Servidor();
|
||||
}
|
||||
@ -35,14 +35,17 @@ public class Servidor {
|
||||
String ret = "";
|
||||
int cont = 1;
|
||||
for(Sala sala:Servidor.salas) {
|
||||
ret += cont + "Jugadores: " + sala.toString() + "\n";
|
||||
ret += cont + " - Jugadores: " + sala.toString() + "\n";
|
||||
cont++;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static Sala addJugador(int sala, Socket socket) {
|
||||
Servidor.salas.get(sala).aniadirJugador(socket);
|
||||
return Servidor.salas.get(sala);
|
||||
public static boolean addJugador(int sala, Socket socket) {
|
||||
boolean ret = Servidor.salas.get(sala).aniadirJugador(socket);
|
||||
if(Servidor.salas.get(sala).nJugadores==1) {
|
||||
Servidor.salas.add(new Sala());
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ public class Tablero {
|
||||
}
|
||||
|
||||
public boolean colocarFicha(int x, int y, int jugador) {
|
||||
if(this.casillas[x][y] != 0) {
|
||||
if(this.casillas[x][y] == 0) {
|
||||
this.casillas[x][y]=jugador;
|
||||
this.ultimasCoordenadas[0]=x;
|
||||
this.ultimasCoordenadas[1]=y;
|
||||
@ -26,7 +26,18 @@ public class Tablero {
|
||||
return this.ultimasCoordenadas[1];
|
||||
}
|
||||
|
||||
public String getTablero() {
|
||||
String ret = "";
|
||||
for(int i = 0; i< 3; i++) {
|
||||
if(i != 2) {
|
||||
ret += this.casillas[0][i] + " " + this.casillas[1][i] + " " + this.casillas[2][i] + "\n";
|
||||
}else {
|
||||
ret += this.casillas[0][i] + " " + this.casillas[1][i] + " " + this.casillas[2][i];
|
||||
}
|
||||
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public int finalJuego() {
|
||||
int ret=0;
|
||||
|
Loading…
Reference in New Issue
Block a user