public void ComputerAIConstructorTest() { BoardManager board = new BoardManager(); HumanPlayer playerOne = new HumanPlayer(); ComputerPlayer playerTwo = new ComputerPlayer('O'); board.LogMove(playerOne.MakeMove(0, 0)); ComputerAI target = new ComputerAI(playerOne.identity, playerTwo.identity); Assert.AreEqual('X', target.enemyIdentity); }
public void AddPlayerWontInputMoreThanTwoPlayers() { Game target = new Game(); target.AddPlayer(new HumanPlayer('X')); target.AddPlayer(new HumanPlayer('O')); target.AddPlayer(new ComputerPlayer('X')); Player notExpected = new ComputerPlayer('X'); Assert.AreNotEqual(notExpected, target.xPlayer); Assert.AreNotEqual(notExpected, target.oPlayer); }
public void MakeMoveShouldGetRandomMoveOfMovesAvailable() { BoardManager board = new BoardManager(); ComputerPlayer playerTwo = new ComputerPlayer('O'); board.LogMove(new Tuple<int,int>(1,1)); Tuple<int,int> playerChoice = playerTwo.MakeMove(board.boardArray); CreatedMove actual = new CreatedMove(playerChoice.Item1, playerChoice.Item2,playerTwo.identity); CreatedMove notExpected = new CreatedMove(1, 1, 'O'); Assert.IsTrue(actual.xAxis >= 0 && actual.xAxis <= 2); Assert.IsTrue(actual.yAxis >= 0 && actual.yAxis <= 2); Assert.AreNotEqual(notExpected, actual); }
public void GetRandomMoveShouldReturnARandomMoveFromAvailableSpaces() { BoardManager board = new BoardManager(); HumanPlayer playerOne = new HumanPlayer(); ComputerPlayer playerTwo = new ComputerPlayer('O'); board.LogMove(playerOne.MakeMove(1, 1)); ComputerAI target = new ComputerAI(playerOne.identity, playerTwo.identity); CreatedMove actual = target.GetRandomMove(board.boardArray); CreatedMove notExpected = new CreatedMove(1, 1, 'O'); Assert.IsTrue(actual.xAxis >= 0 && actual.xAxis <= 2); Assert.IsTrue(actual.yAxis >= 0 && actual.yAxis <= 2); Assert.AreNotEqual(notExpected, actual); }
public void BoardManagerShouldKnowIfThereIsATie() { BoardManager board = new BoardManager(); HumanPlayer playerOne = new HumanPlayer('X'); ComputerPlayer playerTwo = new ComputerPlayer('O'); board.LogMove(new Tuple<int, int>(1, 1)); board.LogMove(new Tuple<int, int>(0, 0)); board.LogMove(new Tuple<int, int>(0, 1)); board.LogMove(new Tuple<int, int>(2, 1)); board.LogMove(new Tuple<int, int>(0, 2)); board.LogMove(new Tuple<int, int>(2, 0)); board.LogMove(new Tuple<int, int>(1, 0)); board.LogMove(new Tuple<int, int>(1, 2)); board.LogMove(new Tuple<int, int>(2, 2)); Assert.AreEqual(true, board.CheckForTie()); }
public void BoardManagerShouldKnowIfThereIsATie() { BoardChecker target = new BoardChecker(); BoardManager board = new BoardManager(); HumanPlayer playerOne = new HumanPlayer('X'); ComputerPlayer playerTwo = new ComputerPlayer('O'); board.LogMove(playerOne.MakeMove(1, 1)); board.LogMove(playerTwo.MakeMove(0, 0)); board.LogMove(playerOne.MakeMove(0, 1)); board.LogMove(playerTwo.MakeMove(2, 1)); board.LogMove(playerOne.MakeMove(0, 2)); board.LogMove(playerTwo.MakeMove(2, 0)); board.LogMove(playerOne.MakeMove(1, 0)); board.LogMove(playerTwo.MakeMove(1, 2)); board.LogMove(playerOne.MakeMove(2, 2)); Assert.AreEqual(true, target.CheckForTie(board.boardArray)); }
public void RewritePlayerWillRewritePlayers() { Game target = new Game(); target.AddPlayer(new HumanPlayer('X')); target.AddPlayer(new HumanPlayer('O')); target.RewritePlayer(new ComputerPlayer('X')); Player expected = new ComputerPlayer('X'); Assert.AreEqual(expected, target.xPlayer); target.RewritePlayer(new ComputerPlayer('O')); expected = new ComputerPlayer('O'); Assert.AreEqual(expected, target.oPlayer); }