Exemple #1
0
        public void MediumComputerPlayer_HumanCanWinButComputerCannon_ComputerBlocksHumanWin(int col1, int row1, int col2, int row2, int col3, int row3, int col4, int row4, int expectedCol, int expectedRow)
        {
            var board = new Board();

            board.Squares[col1, row1].State = SquareState.O;
            board.Squares[col2, row2].State = SquareState.O;
            board.Squares[col3, row3].State = SquareState.X;
            board.Squares[col4, row4].State = SquareState.X;

            Assert.Equal(SquareState.Empty, board.Squares[expectedCol, expectedRow].State);

            var player = new MediumComputerPlayer();
            var actual = player.PlayerInput(board.Squares);

            Assert.Equal(SquareState.O, actual[expectedCol, expectedRow].State);
        }
Exemple #2
0
        public void MediumComputerPlayer_PlayerInput_ReturnsBoard_OneSquareStateMatchesComputerPlayerState()
        {
            var board  = new Board();
            var player = new MediumComputerPlayer();

            var actual = player.PlayerInput(board.Squares);

            var actualSquareStates = new List <SquareState>();

            foreach (var square in actual)
            {
                actualSquareStates.Add(square.State);
            }

            Assert.Equal(9, actualSquareStates.Count);
            Assert.Contains(SquareState.O, actualSquareStates);
            Assert.Single(actualSquareStates.Where(x => x.Equals(SquareState.O)));
        }
Exemple #3
0
        public void MediumComputerPlayer_PlayerInput_ReturnsBoard_OneDisplayCharacterMatchesComputerPlayerSymbol()
        {
            var board  = new Board();
            var player = new MediumComputerPlayer();

            var actual = player.PlayerInput(board.Squares);

            var actualSquareSymbols = new List <string>();

            foreach (var square in actual)
            {
                actualSquareSymbols.Add(square.DisplayCharacter);
            }

            Assert.Equal(9, actualSquareSymbols.Count);
            Assert.Contains("O", actualSquareSymbols);
            Assert.Single(actualSquareSymbols.Where(x => x.Equals("O")));
        }
Exemple #4
0
        public void MediumComputerPlayer_NeitherComputerNorHumanCanWin_ComputerMakesMove(int col1, int row1, int col2, int row2, int col3, int row3, int col4, int row4)
        {
            var board = new Board();

            board.Squares[col1, row1].State = SquareState.O;
            board.Squares[col2, row2].State = SquareState.O;
            board.Squares[col3, row3].State = SquareState.X;
            board.Squares[col4, row4].State = SquareState.X;

            List <int[]> emptySquaresBeforeMove = GameplayHelper.ListEmptySquares(board.Squares);

            Assert.Equal(5, emptySquaresBeforeMove.Count);

            var player = new MediumComputerPlayer();
            var actual = player.PlayerInput(board.Squares);

            List <int[]> emptySquaresAfterMove = GameplayHelper.ListEmptySquares(actual);

            Assert.Equal(4, emptySquaresAfterMove.Count);
        }