<commit_before>package servidor;


import java.io.IOException;
import java.net.SocketException;

import partida.*;
import comun.MyStreamSocket;

/**
 * Clase ejecutada por cada hebra encargada de servir a un cliente del juego Hundir la flota.
 * El metodo run contiene la logica para gestionar una sesion con un cliente.
 */

 // Revisar el apartado 5.5. del libro de Liu

class HiloServidorFlota implements Runnable {
   MyStreamSocket myDataSocket;
   private Partida partida = null;

	/**
	 * Construye el objeto a ejecutar por la hebra para servir a un cliente
	 * @param	myDataSocket	socket stream para comunicarse con el cliente
	 */
   HiloServidorFlota(MyStreamSocket myDataSocket) {
	   
      // Por implementar
	   
   }
 
   /**
	* Gestiona una sesion con un cliente	
   */
   public void run( ) {
      boolean done = false;
      int operacion = 0;
      // ...
      try {
         while (!done) {
        	 // Recibe una peticion del cliente
        	 // Extrae la operación y los argumentos
                      
             switch (operacion) {
             case 0:  // fin de conexión con el cliente
            	 // ...
            	 break;

             case 1: { // Crea nueva partida
            	 // ...
            	 break;
             }             
             case 2: { // Prueba una casilla y devuelve el resultado al cliente
            	 // ... 
                 break;
             }
             case 3: { // Obtiene los datos de un barco y se los devuelve al cliente
            	 // ... 
                 break;
             }
             case 4: { // Devuelve al cliente la solucion en forma de vector de cadenas
        	   // Primero envia el numero de barcos 
               // Despues envia una cadena por cada barco
               break;
             }
         } // fin switch<commit_msg>Empezada, a medio hacer.<commit_after>package servidor;


import java.io.IOException;
import java.net.SocketException;

import partida.*;
import comun.MyStreamSocket;

/**
 * Clase ejecutada por cada hebra encargada de servir a un cliente del juego Hundir la flota.
 * El metodo run contiene la logica para gestionar una sesion con un cliente.
 */

 // Revisar el apartado 5.5. del libro de Liu

class HiloServidorFlota implements Runnable {
   MyStreamSocket myDataSocket;
   private Partida partida = null;

	/**
	 * Construye el objeto a ejecutar por la hebra para servir a un cliente
	 * @param	myDataSocket	socket stream para comunicarse con el cliente
	 */
   HiloServidorFlota(MyStreamSocket myDataSocket) {
	   this.myDataSocket = myDataSocket;
   }
 
   /**
	* Gestiona una sesion con un cliente	
   */
   public void run( ) {
      boolean done = false;
      int operacion = 0;
      String mensaje;
      // ...
      try {
         while (!done) {
        	 // Recibe una peticion del cliente
        	 mensaje = myDataSocket.receiveMessage();
        	 System.out.println("Orden recibida: " + mensaje);
        	 
        	 // Extrae la operación y los argumentos
             String [] op = mensaje.split("#");
             operacion = Integer.parseInt(op[0]);
        	 
             switch (operacion) {
             case 0:  // fin de conexión con el cliente
            	 System.out.println("Fin de la sesión.");
            	 myDataSocket.close();
            	 done = true;
            	 break;

             case 1: { // Crea nueva partida
            	 partida = new Partida(Integer.parseInt(op[1]),Integer.parseInt(op[2]), Integer.parseInt(op[3]));
            	 break;
             }             
             case 2: { // Prueba una casilla y devuelve el resultado al cliente
            	 int respuesta = partida.pruebaCasilla(Integer.parseInt(op[1]), Integer.parseInt(op[1]));
                 myDataSocket.sendMessage("" + respuesta);
            	 break;
             }
             case 3: { // Obtiene los datos de un barco y se los devuelve al cliente
            	 // ... 
                 break;
             }
             case 4: { // Devuelve al cliente la solucion en forma de vector de cadenas
        	   // Primero envia el numero de barcos 
               // Despues envia una cadena por cada barco
               break;
             }
         } // fin switch
{'fraction_non_alphanumeric': 0.08022652194431336, 'fraction_numerical': 0.005191127890514393, 'mean_word_length': 1.6070110701107012, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6808953', 'n_tokens_mistral': 1256, 'n_tokens_neox': 1222, 'n_words': 401}