Esempio n. 1
0
        public void GenerateInitialMovesThree()
        {
            Board board = Board.GetInitialBoard();
            IEnumerable <BoardMove> futureMoves = BoardFutures.GetBoardMovesFallSpring(board, board.OccupiedMapNodes.Where(kvp => kvp.Value.Power == Powers.Germany).Select(kvp => kvp.Key));

            Assert.AreEqual(183, futureMoves.Count());
        }
Esempio n. 2
0
        public void GenerateAllInitialMovesSingleUnit()
        {
            Board board = Board.GetInitialBoard();
            IEnumerable <BoardMove> futureMoves = BoardFutures.GetBoardMovesFallSpring(board, new List <MapNode>()
            {
                MapNodes.Get("kie")
            });

            Assert.AreEqual(6, futureMoves.Count());
        }
Esempio n. 3
0
        public void GenerateInitialMovesSix()
        {
            Board         board      = Board.GetInitialBoard();
            List <Powers> powersList = new List <Powers>()
            {
                Powers.Germany, Powers.Austria
            };
            IEnumerable <BoardMove> futureMoves = BoardFutures.GetBoardMovesFallSpring(board, board.OccupiedMapNodes.Where(kvp => powersList.Contains(kvp.Value.Power)).Select(kvp => kvp.Key));

            Assert.AreEqual(19620, futureMoves.Count());
        }
Esempio n. 4
0
        public void GenerateInitialMovesNine()
        {
            // this is about the upper limit of unit moves to calc at once
            Board         board      = Board.GetInitialBoard();
            List <Powers> powersList = new List <Powers>()
            {
                Powers.Germany, Powers.England, Powers.Austria
            };
            IEnumerable <BoardMove> futureMoves = BoardFutures.GetBoardMovesFallSpring(board, board.OccupiedMapNodes.Where(kvp => powersList.Contains(kvp.Value.Power)).Select(kvp => kvp.Key));

            Assert.AreEqual(1805040, futureMoves.Count());
        }
Esempio n. 5
0
        public void OccupiedMapNodeGroupsTest()
        {
            var score = new Score <BasicScorer>();

            Board board     = Board.GetInitialBoard();
            int   groupSize = 6;
            OccupiedMapNodeGroups groups      = OccupiedMapNodeGroups.Get(board, groupSize);
            List <BoardMove>      futureMoves = new List <BoardMove>();

            foreach (var group in groups)
            {
                futureMoves.AddRange(BoardFutures.GetBoardMovesFallSpring(board, group));
            }
            Assert.AreEqual(board.OccupiedMapNodes.Count, groups.Count);
            Assert.IsTrue(groups.All(g => g.Count == groupSize));

            // this does not work because I'm back to combinatorial explosion of boards
            //List<BoardMove> combinedMoves = BoardMove.CombineFallSpringPartialMoveLists(futureMoves);
            //foreach(BoardMove boardMove in combinedMoves)
            //{
            //    score.Calculate(board, boardMove);
            //}
        }