public TicTacToeGame() { InitializeComponent(); _game = new TicTacToeRules(); cmb_players.DataSource = new List <string> { "Player vs Player", "Player vs CPU" }; }
public void EmptyBoard_GameIsNotOver() { GameRules rules = new TicTacToeRules(); GameBoard board = new TicTacToeBoard(); var result = rules.IsWinningMove(board); Assert.Equal(false, result); }
public void ReturnFalseWhenThereIsNoWinningColumnWithSameDepth() { var board = new TicTacToeCPUBoard(3); board.UpdateBoard('X', new Coordinates(0, 0, 0)); board.UpdateBoard('X', new Coordinates(1, 0, 0)); board.UpdateBoard('X', new Coordinates(0, 0, 1)); var rules = new TicTacToeRules(); var hasWinner = rules.HasWinner(board); Assert.False(hasWinner); }
public void ReturnWinnerWhenThereIsAWinningColumnWithSameDepth(int column, int depth) { var board = new TicTacToeCPUBoard(3); board.UpdateBoard('X', new Coordinates(1, column, depth)); board.UpdateBoard('X', new Coordinates(0, column, depth)); board.UpdateBoard('X', new Coordinates(2, column, depth)); var rules = new TicTacToeRules(); var hasWinner = rules.HasWinner(board); Assert.True(hasWinner); }
public void ReturnWinnerWhenThereIsAWinningRowWithDifferentDepthWithFirstRowAtTheBackLayer() { var board = new TicTacToeCPUBoard(3); board.UpdateBoard('X', new Coordinates(0, 0, 2)); board.UpdateBoard('X', new Coordinates(0, 1, 1)); board.UpdateBoard('X', new Coordinates(0, 2, 0)); var rules = new TicTacToeRules(); var hasWinner = rules.HasWinner(board); Assert.True(hasWinner); }
public void ReturnFalseWhenThereIsNoWinningVerticalSecondaryDiagonalLineWithDifferentDepth() { var board = new TicTacToeCPUBoard(3); board.UpdateBoard('X', new Coordinates(0, 2, 0)); board.UpdateBoard('X', new Coordinates(1, 1, 1)); board.UpdateBoard('X', new Coordinates(2, 0, 1)); var rules = new TicTacToeRules(); var hasWinner = rules.HasWinner(board); Assert.False(hasWinner); }
public void ReturnTrueWhenThereIsAWinningVerticalSecondaryDiagonalLineFromTop() { var board = new TicTacToeCPUBoard(3); board.UpdateBoard('X', new Coordinates(0, 2, 0)); board.UpdateBoard('X', new Coordinates(1, 1, 1)); board.UpdateBoard('X', new Coordinates(2, 0, 2)); var rules = new TicTacToeRules(); var hasWinner = rules.HasWinner(board); Assert.True(hasWinner); }
public void ReturnTrueWhenThereIsAWinningVerticalPrimaryDiagonalLineWithSameDepth() { var board = new TicTacToeCPUBoard(3); board.UpdateBoard('X', new Coordinates(0, 0, 1)); board.UpdateBoard('X', new Coordinates(1, 1, 1)); board.UpdateBoard('X', new Coordinates(2, 2, 1)); var rules = new TicTacToeRules(); var hasWinner = rules.HasWinner(board); Assert.True(hasWinner); }
public void ReturnWinnerWhenThereIsAWinningDepth() { var board = new TicTacToeCPUBoard(3); board.UpdateBoard('X', new Coordinates(1, 2, 0)); board.UpdateBoard('X', new Coordinates(1, 2, 1)); board.UpdateBoard('X', new Coordinates(1, 2, 2)); var rules = new TicTacToeRules(); var hasWinner = rules.HasWinner(board); Assert.True(hasWinner); }
public void ReturnWinnerWhenThereIsAWinningRowWithSameDepth(int row, int depth) { var board = new TicTacToeCPUBoard(3); board.UpdateBoard('X', new Coordinates(row, 0, depth)); board.UpdateBoard('X', new Coordinates(row, 2, depth)); board.UpdateBoard('X', new Coordinates(row, 1, depth)); var rules = new TicTacToeRules(); var hasWinner = rules.HasWinner(board); Assert.True(hasWinner); }
public void FirstLine_NotFull_GameNotOver() { GameRules rules = new TicTacToeRules(); GameBoard board = new TicTacToeBoard(); board.Place(0, "X"); board.Place(2, "X"); var result = rules.IsWinningMove(board); Assert.Equal(false, result); }
public void FirstColumn_GameIsOver() { GameRules rules = new TicTacToeRules(); GameBoard board = new TicTacToeBoard(); board.Place(0, "X"); board.Place(3, "X"); board.Place(6, "X"); var result = rules.IsWinningMove(board); Assert.Equal(true, result); }
public void ThirdLine_GameIsOver() { GameRules rules = new TicTacToeRules(); GameBoard board = new TicTacToeBoard(); board.Place(6, "X"); board.Place(7, "X"); board.Place(8, "X"); var result = rules.IsWinningMove(board); Assert.Equal(true, result); }
public void RightDiagonal_GameIsOver() { GameRules rules = new TicTacToeRules(); GameBoard board = new TicTacToeBoard(); board.Place(2, "X"); board.Place(4, "X"); board.Place(6, "X"); var result = rules.IsWinningMove(board); Assert.Equal(true, result); }
public TicTacToeGameState() : base(GameConstants.TIC_TAC_TOE_PLAYERS) { board = new int[GameConstants.TIC_TAC_TOE_SIZE, GameConstants.TIC_TAC_TOE_SIZE]; possibleActions = new PlayerAction <TicTacToeState> [GameConstants.TIC_TAC_TOE_ACTIONS]; Mark mark = new Mark(); mark.x = 0; mark.y = 0; possibleActions [0] = mark; mark = new Mark(); mark.x = 1; mark.y = 0; possibleActions [1] = mark; mark = new Mark(); mark.x = 2; mark.y = 0; possibleActions [2] = mark; mark = new Mark(); mark.x = 0; mark.y = 1; possibleActions [3] = mark; mark = new Mark(); mark.x = 1; mark.y = 1; possibleActions [4] = mark; mark = new Mark(); mark.x = 2; mark.y = 1; possibleActions [5] = mark; mark = new Mark(); mark.x = 0; mark.y = 2; possibleActions [6] = mark; mark = new Mark(); mark.x = 1; mark.y = 2; possibleActions [7] = mark; mark = new Mark(); mark.x = 2; mark.y = 2; possibleActions [8] = mark; rules = new TicTacToeRules(); }
public void BoradFull_GameIsOver() { GameRules rules = new TicTacToeRules(); GameBoard board = new TicTacToeBoard(); board.Place(0, "X"); board.Place(1, "X"); board.Place(2, "0"); board.Place(3, "0"); board.Place(4, "0"); board.Place(5, "X"); board.Place(6, "X"); board.Place(7, "X"); board.Place(8, "0"); var result = rules.IsDrawMove(board); Assert.Equal(true, result); }