예제 #1
0
        private static BotletMove _GetBotMoveAlongRoute(Route route, Grid grid, List <BotletMove> botletMoves)
        {
            Space      spaceToMoveTo = _MoveTowardDestination(route.Start, route.End);
            BotletMove move          = grid.GetMove(route.Start, spaceToMoveTo);

            if (botletMoves.Select(bm => bm.To).Contains(move.To))
            //stop, don't go there, you'll suicide if you do.
            {
                List <Space> spacesWhereSomeoneElseIsGoing = botletMoves.Select(m => m.To).Select(m => grid.GetSpace(m)).ToList();
                move = grid.GetMove(route.Start, _lessDestructiveMove(route.Start, spacesWhereSomeoneElseIsGoing, grid));
            }
            return(move);
        }
예제 #2
0
 public GameStateBotletMove(GameState state, BotletMove move)
 {
     State = new SpatialGameState(state);
     Move  = move;
 }