Inicial
This commit is contained in:
		
						commit
						b067f6034f
					
				
							
								
								
									
										6
									
								
								.classpath
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.classpath
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <classpath> | ||||
| 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> | ||||
| 	<classpathentry kind="src" path="src"/> | ||||
| 	<classpathentry kind="output" path="bin"/> | ||||
| </classpath> | ||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| /bin/ | ||||
							
								
								
									
										17
									
								
								.project
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								.project
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <projectDescription> | ||||
| 	<name>Servidor2</name> | ||||
| 	<comment></comment> | ||||
| 	<projects> | ||||
| 	</projects> | ||||
| 	<buildSpec> | ||||
| 		<buildCommand> | ||||
| 			<name>org.eclipse.jdt.core.javabuilder</name> | ||||
| 			<arguments> | ||||
| 			</arguments> | ||||
| 		</buildCommand> | ||||
| 	</buildSpec> | ||||
| 	<natures> | ||||
| 		<nature>org.eclipse.jdt.core.javanature</nature> | ||||
| 	</natures> | ||||
| </projectDescription> | ||||
							
								
								
									
										11
									
								
								.settings/org.eclipse.jdt.core.prefs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								.settings/org.eclipse.jdt.core.prefs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | ||||
| eclipse.preferences.version=1 | ||||
| org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled | ||||
| org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 | ||||
| org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve | ||||
| org.eclipse.jdt.core.compiler.compliance=1.8 | ||||
| org.eclipse.jdt.core.compiler.debug.lineNumber=generate | ||||
| org.eclipse.jdt.core.compiler.debug.localVariable=generate | ||||
| org.eclipse.jdt.core.compiler.debug.sourceFile=generate | ||||
| org.eclipse.jdt.core.compiler.problem.assertIdentifier=error | ||||
| org.eclipse.jdt.core.compiler.problem.enumIdentifier=error | ||||
| org.eclipse.jdt.core.compiler.source=1.8 | ||||
							
								
								
									
										43
									
								
								src/ComunacacionJugador.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								src/ComunacacionJugador.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,43 @@ | ||||
| import java.io.BufferedReader; | ||||
| import java.io.InputStreamReader; | ||||
| import java.io.OutputStreamWriter; | ||||
| import java.io.PrintWriter; | ||||
| import java.net.Socket; | ||||
| 
 | ||||
| public class ComunacacionJugador extends Thread{ | ||||
| 	Socket socket; | ||||
| 	public ComunacacionJugador(Socket socket) { | ||||
| 		this.socket = socket; | ||||
| 		this.start(); | ||||
| 	} | ||||
| 	 | ||||
| 	public void run() { | ||||
| 		boolean continuar = true; | ||||
| 		int turno = 2; | ||||
| 		try { | ||||
| 			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); | ||||
| 			if(Servidor.salas.get(sala).getJugador1().equals(this.socket)) { | ||||
| 				turno = 1; | ||||
| 				bufferSalida.println("Primero"); | ||||
| 				Servidor.salas.get(sala).tablero.colocarFicha(Integer.parseInt(bufferEntrada.readLine()),  | ||||
| 						Integer.parseInt(bufferEntrada.readLine()),turno); | ||||
| 				synchronized (getClass()) { | ||||
| 					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(); | ||||
| 				} | ||||
| 			} | ||||
| 		}catch (Exception e) { | ||||
| 			// TODO: handle exception | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										9
									
								
								src/Main.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/Main.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| 
 | ||||
| public class Main { | ||||
| 
 | ||||
| 	public static void main(String[] args) { | ||||
| 		// TODO Auto-generated method stub | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										36
									
								
								src/Sala.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								src/Sala.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | ||||
| import java.net.Socket; | ||||
| 
 | ||||
| public class Sala { | ||||
| 	int nJugadores; | ||||
| 	Socket[] jugadores; | ||||
| 	Tablero tablero; | ||||
| 	 | ||||
| 	public Sala() { | ||||
| 		this.nJugadores = 0; | ||||
| 		this.jugadores = new Socket[2]; | ||||
| 		this.tablero = new Tablero(); | ||||
| 	} | ||||
| 	 | ||||
| 	public boolean aniadirJugador(Socket jugador) { | ||||
| 		if(this.nJugadores >=1 ) { | ||||
| 			this.jugadores[this.nJugadores] = jugador; | ||||
| 			this.nJugadores++; | ||||
| 			return true; | ||||
| 		}else { | ||||
| 			return false; | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	public Socket getJugador1() { | ||||
| 		return this.jugadores[0]; | ||||
| 	} | ||||
| 	 | ||||
| 	public Socket getJugador2() { | ||||
| 		return this.jugadores[1]; | ||||
| 	} | ||||
| 	 | ||||
| 	public String toString() { | ||||
| 		return String.valueOf(this.nJugadores); | ||||
| 	} | ||||
| 	 | ||||
| } | ||||
							
								
								
									
										48
									
								
								src/Servidor.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								src/Servidor.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,48 @@ | ||||
| import java.io.IOException; | ||||
| import java.net.ServerSocket; | ||||
| import java.net.Socket; | ||||
| import java.util.ArrayList; | ||||
| 
 | ||||
| public class Servidor { | ||||
| 	static Servidor instancia; | ||||
| 	static ArrayList<Sala> salas; | ||||
| 	 | ||||
| 	private Servidor() { | ||||
| 		ServerSocket server; | ||||
| 		Servidor.salas = new ArrayList<Sala>(); | ||||
| 		Servidor.salas.add(new Sala()); | ||||
| 		try { | ||||
| 			server = new ServerSocket(8080); | ||||
| 			while(true) { | ||||
| 				Socket socket = server.accept(); | ||||
| 				ComunacacionJugador cliente = new ComunacacionJugador(socket); | ||||
| 			} | ||||
| 		} catch (IOException e) { | ||||
| 			// TODO Auto-generated catch block | ||||
| 			e.printStackTrace(); | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	public Servidor getInstance() { | ||||
| 		if(Servidor.instancia == null) { | ||||
| 			Servidor.instancia = new Servidor(); | ||||
| 		} | ||||
| 		 | ||||
| 		return Servidor.instancia; | ||||
| 	} | ||||
| 	 | ||||
| 	public static String mostrarSalas() { | ||||
| 		String ret = ""; | ||||
| 		int cont = 1; | ||||
| 		for(Sala sala:Servidor.salas) { | ||||
| 			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); | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										73
									
								
								src/Tablero.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								src/Tablero.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,73 @@ | ||||
| 
 | ||||
| public class Tablero { | ||||
| 	int[][] casillas; | ||||
| 	int[] ultimasCoordenadas; | ||||
| 	public Tablero() { | ||||
| 		this.casillas = new int[3][3]; | ||||
| 		this.ultimasCoordenadas = new int[2]; | ||||
| 	} | ||||
| 	 | ||||
| 	public boolean colocarFicha(int x, int y, int jugador) { | ||||
| 		if(this.casillas[x][y] != 0) { | ||||
| 			this.casillas[x][y]=jugador; | ||||
| 			this.ultimasCoordenadas[0]=x; | ||||
| 			this.ultimasCoordenadas[1]=y; | ||||
| 			return true; | ||||
| 		} | ||||
| 		return false;	 | ||||
| 		 | ||||
| 	} | ||||
| 	 | ||||
| 	public int getLastX() { | ||||
| 		return this.ultimasCoordenadas[0]; | ||||
| 	} | ||||
| 	 | ||||
| 	public int getLastY() { | ||||
| 		return this.ultimasCoordenadas[1]; | ||||
| 	} | ||||
| 	 | ||||
| 	 | ||||
| 	 | ||||
| 	public int finalJuego() { | ||||
|         int ret=0; | ||||
|         for(int i=0;i<3;i++) { | ||||
|                 if(this.casillas[i][0]>0) { | ||||
|                         for(int j=0;j<3;j++) { | ||||
|                                 if(this.casillas[j][1]==this.casillas[i][0]) { | ||||
|                                         if(Math.abs(i-j)<2) { | ||||
|                                                 if(i<j&&j<2) { | ||||
|                                                         if(this.casillas[(j+1)][2]==this.casillas[i][0]) { | ||||
|                                                                 ret=this.casillas[i][0]; | ||||
|                                                         } | ||||
|                                                 }else if(i==j) { | ||||
|                                                         if(this.casillas[j][2]==this.casillas[i][0]) { | ||||
|                                                                 ret=this.casillas[i][0]; | ||||
|                                                         } | ||||
|                                                 }else if(i>j&&i<2) { | ||||
|                                                         if(this.casillas[i+1][2]==this.casillas[i][0]) { | ||||
|                                                                 ret=this.casillas[i][0]; | ||||
|                                                         } | ||||
|                                                 } | ||||
| 
 | ||||
|                                         } | ||||
|                                 } | ||||
|                         } | ||||
|                 } | ||||
|         } | ||||
|         if(ret==0) { | ||||
|                 for(int i=0;i<3;i++) { | ||||
|                         ret=this.casillas[0][i]; | ||||
|                         for(int j=1;j<3;j++) { | ||||
|                                 if(ret!=this.casillas[j][i]) { | ||||
|                                         ret=0; | ||||
|                                         break; | ||||
|                                 } | ||||
|                         } | ||||
|                         if(ret>0) { | ||||
|                                 break; | ||||
|                         } | ||||
|                 } | ||||
|         } | ||||
|         return ret; | ||||
| 	} | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user