/// <summary> /// Метод расчета следующего хода /// </summary> private LoderunnerAction CalculateAction(GameBoard gameBoard) { Console.Clear(); _gameLoop.InvokeTick(gameBoard); LoderunnerAction action = _botBrain.NextAction(); Console.WriteLine(action.ToString()); return(action); }
/// <summary> /// Calls each move to make decision what to do (next move) /// </summary> protected override string DoMove(GameBoard gameBoard) { //Just print current state (gameBoard) to console Console.Clear(); //Console.SetCursorPosition(0, 0); gameBoard.PrintBoard(); LoderunnerAction action = callback(gameBoard); Console.WriteLine(action.ToString()); return(LoderunnerActionToString(action)); }
/// <summary> /// Called each game tick to make decision what to do (next move) /// </summary> protected override string DoMove(GameBoard gameBoard) { //Just print current state (gameBoard) to console Console.Clear(); gameBoard.PrintBoard(); //TODO: Implement your logic here Random random = new Random(Environment.TickCount); LoderunnerAction action = (LoderunnerAction)random.Next(3); Console.WriteLine(action.ToString()); return(LoderunnerActionToString(action)); }
protected static string LoderunnerActionToString(LoderunnerAction action) { switch (action) { case LoderunnerAction.GoLeft: return("left"); case LoderunnerAction.GoRight: return("right"); case LoderunnerAction.GoUp: return("up"); case LoderunnerAction.GoDown: return("down"); case LoderunnerAction.DrillLeft: return("act,left"); case LoderunnerAction.DrillRight: return("act,right"); default: return("stop"); } }
/// <summary> /// Добавить ход в очередь /// </summary> /// <param name="action"></param> public void AddAction(LoderunnerAction action) { _queueActions.Enqueue(action); }