示例#1
0
        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);
        }
示例#2
0
        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
        }
示例#3
0
        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]);
        }
示例#4
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]);
        }