/// <summary>
        /// Metodo para indicar que se comienza la partida
        /// Se establecen propiedades como el turno, la ronda, la palabra en juego, IsJugandose.
        /// Llama al OnPartidaComenzada de los clientes del grupo.
        /// </summary>
        /// <param name="partida">partida que comienza</param>
        public void comenzarPartidaEnGrupo(clsPartida partida)
        {
            partida = obtenerPartidaPorNombreSala(partida.NombreSala);
            if (partida != null)
            {
                //Se pone el primer turno de la primera ronda
                //el turno es el del primer jugador
                if (partida.ListadoJugadores.Count > 0)
                {
                    partida.ConnectionIDJugadorActual = partida.ListadoJugadores[0].ConnectionID;
                }
                partida.Turno          = 1;
                partida.RondaActual    = 1;
                partida.PalabraEnJuego = Utilidad.obtenerPalabraAleatoria();

                //TODO rellenar el listado de posiciones a descubrir
                partida.PosicionesADescubrir = Utilidad.rellenarPosicionesADescubrir(partida.PalabraEnJuego);

                partida.IsJugandose = true;


                //Por si acaso se le pone a todos que NO es su turno
                for (int i = 0; i < partida.ListadoJugadores.Count; i++)
                {
                    partida.ListadoJugadores[i].IsMiTurno = false;
                }


                //Se le pone que es su turno al jugador
                clsJugador jugador = partida.ListadoJugadores.FirstOrDefault <clsJugador>(x => x.ConnectionID == partida.ConnectionIDJugadorActual);

                jugador.IsMiTurno = true;


                //Aqui haría falta guardar esta partida en la lista de partidas

                Clients.Group(partida.NombreSala).onPartidaComenzada(partida);
            }
        }
        /// <summary>
        /// Método que avanza un turno en una partida, cambiando todas las propiedades
        /// pertinentes como el turno actual, la ronda y el jugador actual.
        /// Se llamará al método OnHaCambiadoElTurno de todos los clientes del grupo.
        /// </summary>
        /// <param name="partida">partida en juego en la que se pasará el turno</param>
        public void avanzarTurno(clsPartida partida)
        {
            clsPartida partidaObtenida = obtenerPartidaPorNombreSala(partida.NombreSala);

            if (partidaObtenida.RondaActual <= partida.NumeroRondasGlobales)
            {
                //El cliente que termine su turno, llama a este método
                //este método avisa a los clientes de que el turno ha cambiado
                //si el cliente detecta que el id del nuevo jugador es el propio
                //hace cosas (habilita su canvas), los demas canvas de inhabilitan
                //se debe cambiar la palabra en juego

                //Obtengo el jugador actual
                clsJugador jugadorJugando = partida.ListadoJugadores.FirstOrDefault <clsJugador>(x => x.ConnectionID == partida.ConnectionIDJugadorActual);


                ////Se ponen todos los "isUltimaPalabraAcertada" a false
                for (int i = 0; i < partida.ListadoJugadores.Count; i++)
                {
                    partida.ListadoJugadores[i].IsUltimaPalabraAcertada = false;
                    //Por si acaso se le pone a todos que NO es su turno
                    partida.ListadoJugadores[i].IsMiTurno = false;
                }

                //Obtengo la posicion en la lista de jugadores del jugador actual
                int posicion = -1;

                for (int i = 0; i < partida.ListadoJugadores.Count || posicion == -1; i++)
                {
                    if (partida.ListadoJugadores[i].ConnectionID == jugadorJugando.ConnectionID)
                    {
                        posicion = i;
                    }
                }
                //Asigno una nueva palabra
                partida.PalabraEnJuego = Utilidad.obtenerPalabraAleatoria();
                //TODO rellenar el listado de posiciones a descubrir
                partida.PosicionesADescubrir = Utilidad.rellenarPosicionesADescubrir(partida.PalabraEnJuego);


                //Cambio el jugador jugando
                if (posicion < partida.ListadoJugadores.Count - 1)
                {
                    partida.ConnectionIDJugadorActual = partida.ListadoJugadores[(posicion + 1)].ConnectionID;
                }
                else
                {
                    //Si ya han jugado todos los jugadores de la lista, se vuelve a empezar
                    partida.ConnectionIDJugadorActual = partida.ListadoJugadores[0].ConnectionID;
                }


                //Se le pone que es su turno al jugador
                clsJugador jugador = partida.ListadoJugadores.FirstOrDefault <clsJugador>(x => x.ConnectionID == partida.ConnectionIDJugadorActual);

                jugador.IsMiTurno = true;



                //Cambio el turno/ronda
                if (partida.Turno < partida.ListadoJugadores.Count)
                {
                    partida.Turno++;
                    if (jugadorJugando.IsDesconectado)
                    {
                        partida.Turno--;
                        jugadorJugando.IsDesconectado = false;
                    }
                }
                else
                {
                    partida.Turno = 1;
                    if (partida.RondaActual < partida.NumeroRondasGlobales)
                    {
                        partida.RondaActual++;
                    }
                    else
                    {
                        //Terminaria la partida y se harian cosas
                        Clients.Group(partida.NombreSala).HaTerminadoLaPartida();
                    }
                }

                //Llamo al metodo haCambiadoElTurno de los clientes, y en ese metodo se debera comprobar si le toca al propio usuario
                Clients.Group(partida.NombreSala).haCambiadoElTurno(partida);
            }
        }