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()); }
public void GenerateAllInitialMovesSingleUnit() { Board board = Board.GetInitialBoard(); IEnumerable <BoardMove> futureMoves = BoardFutures.GetBoardMovesFallSpring(board, new List <MapNode>() { MapNodes.Get("kie") }); Assert.AreEqual(6, futureMoves.Count()); }
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()); }
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()); }
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); //} }