public void MakeFirstMoveAsPlayer1() { //arrange var board = new Board(3); var bestMoveDecider = new BestMoveDecider(board); var computer = new ComputerNeverLose(Symbol.Cross, "computer", bestMoveDecider); //Act var move = computer.PlayTurn(); //Assert Assert.Equal(2, move.XCoordinate); Assert.Equal(2, move.YCoordinate); }
public void MakeMove2AsPlayer1() { //Arrange var board = new Board(3); board.PlaceSymbolToCoordinates(Symbol.Cross, new Move(2, 2)); board.PlaceSymbolToCoordinates(Symbol.Naught, new Move(3, 1)); //Act var bestMove = new BestMoveDecider(board).NextMove(); //Assert Assert.Equal(1, bestMove.XCoordinate); Assert.Equal(1, bestMove.YCoordinate); }
public void CanWinVertical() { //Arrange var board = new Board(3); board.PlaceSymbolToCoordinates(Symbol.Naught, new Move(1, 1)); board.PlaceSymbolToCoordinates(Symbol.Cross, new Move(1, 2)); board.PlaceSymbolToCoordinates(Symbol.Naught, new Move(2, 1)); board.PlaceSymbolToCoordinates(Symbol.Cross, new Move(2, 2)); board.PlaceSymbolToCoordinates(Symbol.Naught, new Move(1, 3)); //Act var bestMove = new BestMoveDecider(board).NextMove(); //Assert Assert.Equal(3, bestMove.XCoordinate); Assert.Equal(2, bestMove.YCoordinate); }
public void CanWinHorizontalPlayer1() { var board = new Board(3); board.PlaceSymbolToCoordinates(Symbol.Cross, new Move(2, 2)); board.PlaceSymbolToCoordinates(Symbol.Naught, new Move(1, 1)); board.PlaceSymbolToCoordinates(Symbol.Cross, new Move(1, 3)); board.PlaceSymbolToCoordinates(Symbol.Naught, new Move(3, 1)); board.PlaceSymbolToCoordinates(Symbol.Cross, new Move(2, 1)); board.PlaceSymbolToCoordinates(Symbol.Naught, new Move(3, 2)); //Act var bestMove = new BestMoveDecider(board).NextMove(); //Assert Assert.Equal(2, bestMove.XCoordinate); Assert.Equal(3, bestMove.YCoordinate); }
public void WillWinRowBeforeBlockPlayer2() { //Arrange var board = new Board(3); board.PlaceSymbolToCoordinates(Symbol.Naught, new Move(2, 2)); board.PlaceSymbolToCoordinates(Symbol.Cross, new Move(1, 1)); board.PlaceSymbolToCoordinates(Symbol.Naught, new Move(1, 2)); board.PlaceSymbolToCoordinates(Symbol.Cross, new Move(3, 2)); board.PlaceSymbolToCoordinates(Symbol.Naught, new Move(1, 3)); board.PlaceSymbolToCoordinates(Symbol.Cross, new Move(3, 1)); board.PlaceSymbolToCoordinates(Symbol.Naught, new Move(2, 1)); //Act var bestMove = new BestMoveDecider(board).NextMove(); //Assert Assert.Equal(3, bestMove.XCoordinate); Assert.Equal(3, bestMove.YCoordinate); //xoo //oo //xxx }