public void TestGetDistance()
        {
            var board      = new BlockBoardStorage(1, 2, null);
            var items      = new BoardStorageItem[3, 3];
            var bonusItems = new BoardStorageItem[3, 3];

            var pass1 = new Pass(null, null, new IntVector2(1, 2),
                                 new IntVector2(1, 1), new IntVector2(2, 2));
            var pass2 = new Pass(null, null, new IntVector2(1, 1),
                                 new IntVector2(2, 2), new IntVector2(1, 1));

            bonusItems[1, 1] = pass1;
            board.FillBlockForTesting(new IntVector2(1, 1), items, bonusItems);

            bonusItems[1, 1] = null;
            bonusItems[2, 2] = pass2;
            board.FillBlockForTesting(new IntVector2(1, 2), items, bonusItems);

            var graph = new Graph(board);
            var cell0 = board.GetBlock(new IntVector2(1, 1)).GetCellByPosition(new IntVector2(1, 2));
            var cell1 = board.GetBlock(new IntVector2(1, 1)).GetCellByPosition(new IntVector2(1, 1));
            var cell2 = board.GetBlock(new IntVector2(1, 2)).GetCellByPosition(new IntVector2(2, 2));

            Assert.True(graph.GetDistance(cell0, cell2) == 1);
            Assert.True(graph.GetDistance(cell0, cell1) == 1);
        }
        public void TestBoardWithTwoBlocksGetUserArmies()
        {
            var board      = new BlockBoardStorage(1, 2, null);
            var items      = new BoardStorageItem[3, 3];
            var bonusItems = new BoardStorageItem[3, 3];
            var playerType = PlayerType.FIRST;

            var item1 = new ArmyStorageItem(new UserArmy(playerType, null), null);
            var item2 = new ArmyStorageItem(new UserArmy(playerType, null), null);
            var item3 = new ArmyStorageItem(new UserArmy(playerType, null), null);
            var item4 = new ArmyStorageItem(new UserArmy(playerType, null), null);

            items[1, 1] = item1;
            items[2, 2] = item2;

            board.FillBlockForTesting(new IntVector2(1, 1), items, bonusItems);

            items[1, 1] = item3;
            items[2, 2] = item4;

            board.FillBlockForTesting(new IntVector2(1, 2), items, bonusItems);

            var armies = board.FindPlayerArmies(playerType);

            Assert.True(armies.Count == 4);
        }
        public void TestBoardWithTwoBlocksGetPasses()
        {
            var board      = new BlockBoardStorage(1, 2, null);
            var items      = new BoardStorageItem[3, 3];
            var bonusItems = new BoardStorageItem[3, 3];

            var pass1 = new Pass(null, null, new IntVector2(1, 2),
                                 new IntVector2(1, 1), new IntVector2(2, 2));
            var pass2 = new Pass(null, null, new IntVector2(1, 2),
                                 new IntVector2(2, 2), new IntVector2(1, 1));
            var pass3 = new Pass(null, null, new IntVector2(1, 1),
                                 new IntVector2(1, 1), new IntVector2(2, 2));
            var pass4 = new Pass(null, null, new IntVector2(1, 1),
                                 new IntVector2(2, 2), new IntVector2(1, 1));

            bonusItems[1, 1] = pass1;
            bonusItems[2, 2] = pass2;

            board.FillBlockForTesting(new IntVector2(1, 1), items, bonusItems);

            bonusItems[1, 1] = pass3;
            bonusItems[2, 2] = pass4;

            board.FillBlockForTesting(new IntVector2(1, 2), items, bonusItems);

            var passes = board.GetPassesAsFromToCells();

            Assert.True(passes.Count() == 4);
        }
示例#4
0
        public void TestGetPasses()
        {
            int size       = 3;
            var board      = new SingleBoardStorage(size, size, null);
            var bonusTable = new BoardStorageItem[size + 1, size + 1];
            var boardTable = new BoardStorageItem[size + 1, size + 1];
            var pass       = new Pass(null, null, null, null, null);

            bonusTable[2, 2] = pass;
            board.Fill(boardTable, bonusTable);

            Assert.True(board.GetPasses().Count() == 1);
            Assert.AreSame(board.GetPasses().GetEnumerator().Current, pass);
        }
        public void TestGetDistanceInNotConnectedGraph()
        {
            var board = new BlockBoardStorage(1, 2, null);

            var items      = new BoardStorageItem[3, 3];
            var bonusItems = new BoardStorageItem[3, 3];

            board.FillBlockForTesting(new IntVector2(1, 1), items, bonusItems);
            board.FillBlockForTesting(new IntVector2(1, 2), items, bonusItems);

            var graph = new Graph(board);
            var cell0 = board.GetBlock(new IntVector2(1, 1)).GetCellByPosition(new IntVector2(1, 2));
            var cell1 = board.GetBlock(new IntVector2(1, 1)).GetCellByPosition(new IntVector2(1, 1));
            var cell2 = board.GetBlock(new IntVector2(1, 2)).GetCellByPosition(new IntVector2(2, 2));

            Assert.True(graph.GetDistance(cell0, cell2) > 2);
            Assert.True(graph.GetDistance(cell0, cell1) == 1);
        }
        public void TestGetUserArmiesWithoutArmies()
        {
            var board      = new BlockBoardStorage(1, 1, null);
            var items      = new BoardStorageItem[3, 3];
            var bonusItems = new BoardStorageItem[3, 3];

            var item1 = new ArmyStorageItem(new UserArmy(PlayerType.FIRST, null), null);
            var item2 = new ArmyStorageItem(new UserArmy(PlayerType.FIRST, null), null);

            items[1, 1] = item1;
            items[2, 2] = item2;

            board.FillBlockForTesting(new IntVector2(1, 1), items, bonusItems);

            var foundItems = board.FindPlayerArmies(PlayerType.SECOND);

            Assert.True(foundItems.Count == 0);
        }
示例#7
0
        public void TestInvertBoard()
        {
            int width  = 3;
            int height = 2;

            var board      = new SingleBoardStorage(width, height, null);
            var bonusTable = new BoardStorageItem[width + 1, height + 1];
            var boardTable = new BoardStorageItem[width + 1, height + 1];
            var pass       = new Pass(null, null, null, null, null);
            var item       = new ArmyStorageItem(null, null);

            bonusTable[2, 1] = pass;
            boardTable[3, 2] = item;

            board.Fill(boardTable, bonusTable);
            board.InvertBoard();

            Assert.AreSame(board.GetItem(3, 2), null);
            Assert.AreSame(board.GetBonusItem(2, 1), null);
            Assert.AreSame(board.GetItem(2, 2), item);
            Assert.AreSame(board.GetBonusItem(1, 1), pass);
        }
示例#8
0
        public void TestFindPlayerArmies()
        {
            var firstPlayerType  = PlayerType.FIRST;
            var secondPlayerType = PlayerType.SECOND;

            int size       = 3;
            var board      = new SingleBoardStorage(size, size, null);
            var bonusTable = new BoardStorageItem[size + 1, size + 1];
            var boardTable = new BoardStorageItem[size + 1, size + 1];

            boardTable[2, 2] = new ArmyStorageItem(new UserArmy(firstPlayerType, null), null);
            boardTable[1, 2] = new ArmyStorageItem(new UserArmy(firstPlayerType, null), null);

            board.Fill(boardTable, bonusTable);

            Assert.True(board.ContainsPlayerArmies(firstPlayerType));
            Assert.False(board.ContainsPlayerArmies(secondPlayerType));

            var armies = board.FindPlayerArmies(firstPlayerType);

            Assert.True(armies.Contains(board.GetCellByPosition(new IntVector2(1, 2))));
            Assert.True(armies.Contains(board.GetCellByPosition(new IntVector2(2, 2))));
            Assert.True(armies.Count == 2);
        }