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); }
public GameStateBotletMove(GameState state, BotletMove move) { State = new SpatialGameState(state); Move = move; }