Exemplo n.º 1
0
        public Movement MakeAMove(Player player, byte x, byte y)
        {
            // verifica se o jogo ja acabou
            if (IsFinish)
            {
                throw new InvalidOperationException("Partida finalizada");
            }

            // verifica se é a vez do jogador
            if (PlayerTurn != player)
            {
                throw new InvalidOperationException($"Não é o turno do jogador");
            }

            // verifica se posição esta disponivei
            if (Movements.Any(m => m.Position.X == x && m.Position.Y == y))
            {
                throw new InvalidOperationException("Posição já tomada anteriormente");
            }

            // Adiciona o movimento
            ToggleTurn();
            var move = new Movement(player, new Position(x, y));

            Movements.Add(move);

            // Tentamos pegar o vencedor
            Winner = GetWinner();

            return(move);
        }
Exemplo n.º 2
0
        public bool IsValid(Movement movement)
        {
            if (movement.X > Size || movement.Y > Size)
            {
                return(false);
            }

            return(!Movements.Any(m => m.X == movement.X && m.Y == movement.Y));
        }
Exemplo n.º 3
0
 public bool HasContent()
 {
     return(HasVanillaContent() || Movements.Any() || Lines.Any());
 }