Пример #1
0
        public void Move(int column)
        {
            if (this.rules.ValidateMove(Board, column))
            {
                var cell = Board.InsertPiece(column, ActivePlayer.State);

                if (this.rules.IsWinningMove(Board, cell))
                {
                    GameState = GameState.Won;
                }
                else if (this.rules.BoardFull(Board))
                {
                    GameState = GameState.Draw;
                }
                else
                {
                    SwapActivePlayer();
                }
            }
            else
            {
                throw new InvalidMoveException();
            }
        }