From faddc1fcb8b13906d98346c125a613eabd787240 Mon Sep 17 00:00:00 2001 From: groche97 Date: Mon, 16 Dec 2019 23:38:24 +0100 Subject: [PATCH] Arreglos menores y legibilidad --- src/ComunacacionJugador.java | 28 ++++++++++++++++++++-------- src/Sala3.java | 2 +- src/Sala4.java | 2 +- src/Servidor.java | 15 +++++++++------ src/Tablero3.java | 3 +++ src/Tablero4.java | 30 ++++++++++++++++-------------- 6 files changed, 50 insertions(+), 30 deletions(-) diff --git a/src/ComunacacionJugador.java b/src/ComunacacionJugador.java index 63b62f3..42e6809 100644 --- a/src/ComunacacionJugador.java +++ b/src/ComunacacionJugador.java @@ -20,13 +20,16 @@ public class ComunacacionJugador extends Thread{ int sala = Integer.parseInt(bufferEntrada.readLine())-1; if(Servidor.addJugador(sala, this.socket)) { bufferSalida.println("Has entrado en la sala"); - if(Servidor.determinarJuego(sala) == 1) { + switch(Servidor.determinarJuego(sala)){ + case Servidor.juego4: sala -= Servidor.salas3.size(); bufferSalida.println("4"); partida4(bufferEntrada, bufferSalida, sala); - }else { + break; + case Servidor.juego3: bufferSalida.println("3"); partida3(bufferEntrada, bufferSalida, sala); + break; } }else { bufferSalida.println("Error al entrar en la sala"); @@ -53,6 +56,8 @@ public class ComunacacionJugador extends Thread{ bufferSalida.println(Servidor.salas3.get(sala).tablero.getTablero()); Servidor.salas3.get(sala).tablero.colocarFicha(Integer.parseInt(bufferEntrada.readLine()), Integer.parseInt(bufferEntrada.readLine()),jugador); + /*Calculamos el modulo 2 de jugador para que cuando este sea 2 se acceda al socket del primero, + y viceversa, ya que usamos los sockets como mutex*/ synchronized (Servidor.salas3.get(sala).jugadores[jugador%2]) { Servidor.salas3.get(sala).jugadores[jugador%2].notify(); } @@ -71,6 +76,8 @@ public class ComunacacionJugador extends Thread{ } while(continuar) { int finalJuego = Servidor.salas3.get(sala).tablero.finalJuego(); + /*funalJuego determinara quien ha ganado, mientras sea 0 nadie habra ganado, + y cuando alguien gane contendra el numero del jugador que ha ganado*/ if(finalJuego != 0) { continuar = false; if(finalJuego == jugador) { @@ -78,10 +85,11 @@ public class ComunacacionJugador extends Thread{ Servidor.salas3.remove(sala); }else { bufferSalida.println("f"); + synchronized (Servidor.salas3.get(sala).jugadores[jugador%2]) { + Servidor.salas3.get(sala).jugadores[jugador%2].notify(); + } } - synchronized (Servidor.salas3.get(sala).jugadores[jugador%2]) { - Servidor.salas3.get(sala).jugadores[jugador%2].notify(); - } + }else { bufferSalida.println(Servidor.salas3.get(sala).tablero.getTablero()); Servidor.salas3.get(sala).tablero.colocarFicha(Integer.parseInt(bufferEntrada.readLine()), @@ -110,6 +118,8 @@ public class ComunacacionJugador extends Thread{ bufferSalida.println("Primero"); bufferSalida.println(Servidor.salas4.get(sala).tablero.getTablero()); Servidor.salas4.get(sala).tablero.colocarFicha(Integer.parseInt(bufferEntrada.readLine()),jugador); + /*Calculamos el modulo 2 de jugador para que cuando este sea 2 se acceda al socket del primero, + y viceversa, ya que usamos los sockets como mutex*/ synchronized (Servidor.salas4.get(sala).jugadores[jugador%2]) { Servidor.salas4.get(sala).jugadores[jugador%2].notify(); } @@ -128,6 +138,8 @@ public class ComunacacionJugador extends Thread{ } while(continuar) { int finalJuego = Servidor.salas4.get(sala).tablero.finalJuego(); + /*funalJuego determinara quien ha ganado, mientras sea 0 nadie habra ganado, + y cuando alguien gane contendra el numero del jugador que ha ganado*/ if(finalJuego != 0) { continuar = false; if(finalJuego == jugador) { @@ -135,9 +147,9 @@ public class ComunacacionJugador extends Thread{ Servidor.salas4.remove(sala); }else { bufferSalida.println("f"); - } - synchronized (Servidor.salas4.get(sala).jugadores[jugador%2]) { - Servidor.salas4.get(sala).jugadores[jugador%2].notify(); + synchronized (Servidor.salas4.get(sala).jugadores[jugador%2]) { + Servidor.salas4.get(sala).jugadores[jugador%2].notify(); + } } }else { bufferSalida.println(Servidor.salas4.get(sala).tablero.getTablero()); diff --git a/src/Sala3.java b/src/Sala3.java index efa63af..bde494f 100644 --- a/src/Sala3.java +++ b/src/Sala3.java @@ -30,7 +30,7 @@ public class Sala3 { } public String toString() { - return String.valueOf(this.nJugadores) + "Tres en raya"; + return String.valueOf(this.nJugadores) + " Tres en raya"; } } diff --git a/src/Sala4.java b/src/Sala4.java index fe875f5..832c409 100644 --- a/src/Sala4.java +++ b/src/Sala4.java @@ -30,7 +30,7 @@ public class Sala4 { } public String toString() { - return String.valueOf(this.nJugadores) + "Cuatro en raya"; + return String.valueOf(this.nJugadores) + " Cuatro en raya"; } } diff --git a/src/Servidor.java b/src/Servidor.java index 24b2efc..307bb3b 100644 --- a/src/Servidor.java +++ b/src/Servidor.java @@ -7,6 +7,8 @@ public class Servidor { static Servidor instancia; static ArrayList salas3; static ArrayList salas4; + static final int juego3 = 0; + static final int juego4 = 1; private Servidor() { ServerSocket server; @@ -52,12 +54,12 @@ public class Servidor { boolean ret = false; if(sala < Servidor.salas3.size()) { ret = Servidor.salas3.get(sala).aniadirJugador(socket); - if(Servidor.salas3.get(sala).nJugadores==1) { + if(Servidor.salas3.get(sala).nJugadores == 1) { Servidor.salas3.add(new Sala3()); } - }else if(sala < (Servidor.salas4.size()+Servidor.salas3.size())) { - ret = Servidor.salas4.get(sala-Servidor.salas3.size()).aniadirJugador(socket); - if(Servidor.salas4.get(sala-Servidor.salas3.size()).nJugadores==1) { + }else if(sala < (Servidor.salas4.size() + Servidor.salas3.size())) { + ret = Servidor.salas4.get(sala - Servidor.salas3.size()).aniadirJugador(socket); + if(Servidor.salas4.get(sala - Servidor.salas3.size()).nJugadores == 1) { Servidor.salas4.add(new Sala4()); } } @@ -65,11 +67,12 @@ public class Servidor { return ret; } + public static int determinarJuego(int sala) { if(Servidor.salas3.size() > sala) { - return 0; + return Servidor.juego3; }else { - return 1; + return Servidor.juego4; } } } diff --git a/src/Tablero3.java b/src/Tablero3.java index 38c483e..dfd8e5d 100644 --- a/src/Tablero3.java +++ b/src/Tablero3.java @@ -39,6 +39,9 @@ public class Tablero3 { return ret; } + /*Lo hice hace un anio y ni idea de como va pero va, es muy feo + el de el 4 en raya es mas bonito y deberia ir en un tablero 3x3 + pero no me apetecia probarlo*/ public int finalJuego() { int ret=0; for(int i=0;i<3;i++) { diff --git a/src/Tablero4.java b/src/Tablero4.java index 3991bfd..35df7f0 100644 --- a/src/Tablero4.java +++ b/src/Tablero4.java @@ -47,19 +47,21 @@ public class Tablero4 { public int finalJuego() { int ret=0; - for(int i = 0;i < this.casillas.length-1; i++) { + for(int i = 0;i < this.casillas.length; i++) { for(int j = 0;j < this.casillas[i].length; j++) { - if(comprobarHorizontal(i, j, this.casillas[i][j]) >= 3) { - return this.casillas[i][j]; - } - if(comprobarVertical(i, j, this.casillas[i][j]) >= 3) { - return this.casillas[i][j]; - } - if(comprobarDiagonalArriba(i, j, this.casillas[i][j]) >= 3) { - return this.casillas[i][j]; - } - if(comprobarDiagonalAbajo(i, j, this.casillas[i][j]) >= 3) { - return this.casillas[i][j]; + if(this.casillas[i][j] != 0) { + if(comprobarHorizontal(i, j, this.casillas[i][j]) >= 3) { + return this.casillas[i][j]; + } + if(comprobarVertical(i, j, this.casillas[i][j]) >= 3) { + return this.casillas[i][j]; + } + if(comprobarDiagonalArriba(i, j, this.casillas[i][j]) >= 3) { + return this.casillas[i][j]; + } + if(comprobarDiagonalAbajo(i, j, this.casillas[i][j]) >= 3) { + return this.casillas[i][j]; + } } } } @@ -95,7 +97,7 @@ public class Tablero4 { if(x == this.casillas.length-1) { return 0; } - if(this.casillas[x][y+1] == jugador) { + if(this.casillas[x+1][y+1] == jugador) { return comprobarDiagonalArriba(x+1, y+1, jugador)+1; }else { return 0; @@ -109,7 +111,7 @@ public class Tablero4 { if(x == this.casillas.length-1) { return 0; } - if(this.casillas[x][y+1] == jugador) { + if(this.casillas[x+1][y-1] == jugador) { return comprobarDiagonalAbajo(x+1, y-1, jugador)+1; }else { return 0;