Пример #1
0
        /// <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));
        }
Пример #4
0
        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");
            }
        }
Пример #5
0
 /// <summary>
 /// Добавить ход в очередь
 /// </summary>
 /// <param name="action"></param>
 public void AddAction(LoderunnerAction action)
 {
     _queueActions.Enqueue(action);
 }