/// <summary>
        /// Método para ayudar al evento "salir de una habitación"
        /// </summary>
        public Tablero OnExitingRoom(int room, string doorsList, string pasajesList)
        {
            if (this.Tablero.CurrentRoom[this.Tablero.TurnoIndex] != room)
            {
                return(this.Tablero);
            }

            var doors   = TipoTablero.GetCoords(doorsList).ToArray();
            var pasajes = TipoTablero.GetCoords(pasajesList);

            this.Tablero.MoveTo = this.Tablero.Manager.CalcMoveTo(doors, this.Tablero.Dados.GetValues(false).Sum(p => p) ?? 0, this.Mesa).Concat(pasajes).ToArray();
            return(this.Tablero);
        }
        /// <summary>
        /// Método para ayudar al evento "obtener una carta por moverse por el tablero"
        /// </summary>
        public Tablero OnGetCardSpot(string spotList)
        {
            var spots = TipoTablero.GetCoords(spotList);

            if (!spots.Contains(this.Tablero.Posiciones[this.Tablero.TurnoIndex]))
            {
                return(this.Tablero);
            }

            var card = this.Tablero.Mazo.Dequeue();

            this.Tablero.Cards[this.Tablero.TurnoIndex] = this.Tablero.Cards[this.Tablero.TurnoIndex].Concat(new Card[] { card }).ToArray();

            return(this.Tablero);
        }
        /// <summary>
        /// Método para ayudar al evento "Puerta para entrar a una habitación"
        /// </summary>
        public Tablero OnRoomDoor(int room, string doorsList, string placesList)
        {
            var doors  = TipoTablero.GetCoords(doorsList);
            var places = TipoTablero.GetCoords(placesList);

            if (doors.Contains(this.Tablero.Posiciones[this.Tablero.TurnoIndex]))
            {
                // muevo al personaje a un lugar dentro de la sala (donde no haya otro personaje)
                string coord = null;
                do
                {
                    coord = places.GetRandomValue();
                } while (this.Tablero.Posiciones.Contains(coord));
                this.Tablero.Posiciones[this.Tablero.TurnoIndex] = coord;

                // cambio el estado y seteo la habitación
                this.Tablero.Status = YerbaSoft.Web.Games.Clue.Common.DTO.Clue.TurnoStatus.Acusando;
                this.Tablero.CurrentRoom[this.Tablero.TurnoIndex] = room;
            }
            return(this.Tablero);
        }