public void TestFindDirectWinningPossibilities_MultiplePossibilties() { //setup the initial condition var player1 = new Object(); var player2 = new Object(); Board board = new Board(); board[1][0].OwningPlayer = player2; board[1][1].OwningPlayer = player2; board[1][2].OwningPlayer = player1; board[2][0].OwningPlayer = player2; board[2][1].OwningPlayer = player2; board[2][2].OwningPlayer = player1; board[3][0].OwningPlayer = player1; board[3][1].OwningPlayer = player1; board[3][2].OwningPlayer = player1; board[4][0].OwningPlayer = player1; board[4][1].OwningPlayer = player1; var winningPossibilites = AIHelper.FindDirectWinningPossibilities(board, player1); Assert.AreEqual(board[1][3], winningPossibilites[0]); //negative diagonal Assert.AreEqual(board[3][3], winningPossibilites[1]); //there's a vertical here as well Assert.AreEqual(board[4][2], winningPossibilites[2]); //horizontal across the middle Assert.AreEqual(3, winningPossibilites.Count); }
public void TestFindDirectWinningPossibilities_OnHorizontalAtMiddleRaised() { //setup the initial condition var player1 = new Object(); var player2 = new Object(); Board board = new Board(); board[1][0].OwningPlayer = player2; board[1][1].OwningPlayer = player2; board[1][2].OwningPlayer = player1; board[2][0].OwningPlayer = player2; board[2][1].OwningPlayer = player2; board[2][2].OwningPlayer = player1; board[3][0].OwningPlayer = player2; board[3][1].OwningPlayer = player2; board[3][2].OwningPlayer = player1; board[4][0].OwningPlayer = player2; board[4][1].OwningPlayer = player2; var winningPossibilites = AIHelper.FindDirectWinningPossibilities(board, player1); Assert.AreEqual(1, winningPossibilites.Count); Assert.AreEqual(board[4][2], winningPossibilites[0]); //horizontal across the middle }
public void TestFindDirectWinningPossibilities_OnVertical() { //setup the initial condition var player1 = new Object(); var player2 = new Object(); Board board = new Board(); board[4][0].OwningPlayer = player1; board[4][1].OwningPlayer = player1; board[4][2].OwningPlayer = player1; var winningPossibilites = AIHelper.FindDirectWinningPossibilities(board, player1); Assert.AreEqual(1, winningPossibilites.Count); Assert.AreEqual(board[4][3], winningPossibilites[0]); }
public void TestFindDirectWinningPossibilities_OnDiagonal() { //setup the initial condition var player1 = new Object(); var player2 = new Object(); Board board = new Board(); board[2][0].OwningPlayer = player2; board[2][1].OwningPlayer = player1; board[3][0].OwningPlayer = player2; board[3][1].OwningPlayer = player2; board[3][2].OwningPlayer = player1; board[4][0].OwningPlayer = player2; board[4][1].OwningPlayer = player2; board[4][2].OwningPlayer = player2; board[4][3].OwningPlayer = player1; var winningPossibilites = AIHelper.FindDirectWinningPossibilities(board, player1); Assert.AreEqual(1, winningPossibilites.Count); Assert.AreEqual(board[1][0], winningPossibilites[0]); //Note that 5,4 wsn't a possibility, because there are no tiles underneath it. If //we put them in it should be though board[5][0].OwningPlayer = player1; board[5][1].OwningPlayer = player2; board[5][2].OwningPlayer = player2; board[5][3].OwningPlayer = player1; winningPossibilites = AIHelper.FindDirectWinningPossibilities(board, player1); Assert.AreEqual(2, winningPossibilites.Count); Assert.AreEqual(board[1][0], winningPossibilites[0]); Assert.AreEqual(board[5][4], winningPossibilites[1]); }