Пример #1
0
    private async Task MainAsync()
    {
        await ApiAccess.EnsureLoggedIn();

        commandsProcessor = new CommandsProcessor(client);
        await commandsProcessor.Initialize();

        NewcomerHandler.Initialize(client);

        client.Ready += ClientReadyAsync;

        client.Disconnected += Disconnected;

        await EnableRoleManager();

        await client.LoginAsync(TokenType.Bot, token);

        await client.StartAsync();

        await client.SetGameAsync("A Chatty Township Tale");

        AccountModule.EnsureLoaded();

        await Task.Delay(-1);
    }
Пример #2
0
        public static void RVExtension(StringBuilder output, int outputSize, [MarshalAs(UnmanagedType.LPStr)] string function)
        {
            try
            {
                CommandsProcessor proc = new CommandsProcessor();
                ICommand          cmd  = proc.Parse(function);

                output.Append(cmd.exec());
            }catch (Exception ex)
            {
                Logger.StackTrace(ex);
            }
        }
Пример #3
0
 private void Destroy()
 {
     DestroyCards();
     m_GameData.bottomCards.Clear();
     m_GameData.deckCards.Clear();
     m_GameData.topCards.Clear();
     m_GameData.currentDrawCard = -1;
     m_GameData.difficult       = Solitaire.Difficulty.Easy;
     m_GameData.move            = 0;
     m_GameData.score           = 0;
     m_GameData.time            = String.Empty;
     m_GameData.gameMode        = Solitaire.GameMode.None;
     m_CommandsProcessor        = new CommandsProcessor();
 }
Пример #4
0
        public void ParseTest()
        {
            CommandsProcessor cp = new CommandsProcessor();

            Assert.IsInstanceOfType(cp.Parse("events"), typeof(PullEvents));
            Assert.IsInstanceOfType(cp.Parse("mypos 0 0"), typeof(MyDestination));

            MyDestination myposValid = cp.Parse("mypos 10 20") as MyDestination;

            Assert.IsTrue(myposValid.X == 10 && myposValid.Y == 20);

            Assert.ThrowsException <Exception>(() => cp.Parse("mypos 10 20 30"));
            Assert.ThrowsException <Exception>(() => cp.Parse("mypos a b"));
        }
Пример #5
0
    private void Initialized()
    {
        m_CommandsProcessor = new CommandsProcessor();
        m_DeckCards         = m_GameData.deckCards = new List <CardElement>();
        m_BottomCards       = m_GameData.bottomCards = new List <CardElement>();
        m_TopCards          = m_GameData.topCards = new List <CardElement>();
        m_CurrentSelected   = null;
        m_GameResult        = Solitaire.GameResult.Still;
        m_PrevClickedTime   = 0.0f;
        GenerateDeck();
        StartCoroutine(DealCards());

        m_MoveRemain  = GameSetting.Instance.difficulty.moveAllowed;
        m_IsGameStart = true;
        m_ElapsedTime = new TimeSpan();
        StartCoroutine(UpdateTime());
    }
Пример #6
0
        static void Main(string[] args)
        {
            CommandsProcessor proc = new CommandsProcessor();

            ICommand version = proc.Parse("version");

            Console.WriteLine(version.exec());


            proc.Parse("connect judgeGC LoadLibrary").exec();


            Console.WriteLine("Подключаемся...");
            ICommand isConnected = proc.Parse("iscon");

            while (isConnected.exec() != true.ToString().ToLower())
            {
                Thread.Sleep(250);
            }
            Console.WriteLine("Подключение установлено");

            while (true)
            {
                try
                {
                    ICommand events     = proc.Parse("events");
                    string   eventsList = events.exec();
                    if (eventsList.Length > 0)
                    {
                        Console.WriteLine(eventsList);
                    }

                    Thread.Sleep(200);

                    ICommand mypos = proc.Parse("mypos 5 5");
                    mypos.exec();

                    Thread.Sleep(300);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
Пример #7
0
        static void Main(string[] args)
        {
            Console.WriteLine("Добро пожаловать в WizardToolsConsole!");
            Console.WriteLine("Для вывода справки по командам - введи help");
            string userLine;

            do
            {
                Console.Write(@"WT>");
                userLine = Console.ReadLine();
                CommandsProcessor.ExecuteLine(userLine);
            } while (!CommandsProcessor.exitFlag);
            Console.WriteLine("Выход из приложения. Всего доброго!");

            //Console.WriteLine(WizardInstanceManager.GetWizard.ExportToString());

            //Console.ReadKey();
        }
Пример #8
0
        private static void Main()
        {
            CommandsProcessor commandsProcessor = new CommandsProcessor();

            commandsProcessor.ProcessCommands();
        }
Пример #9
0
 public UsageProcessor(CommandsProcessor commands)
 {
     _commands = commands;
 }
 public UsageProcessor(CommandsProcessor commands)
 {
     _commands = commands;
 }
Пример #11
0
 private static void Main(string[] args)
 {
     using (var proc = new CommandsProcessor()) {
         proc.Process(args);
     }
 }
 private static void Main()
 {
     CommandsProcessor commandsProcessor = new CommandsProcessor();
     commandsProcessor.ProcessCommands();
 }
Пример #13
0
        private static void Main()
        {
            var client = new BattleNetClient(
                "http://dojorena.io/codenjoy-contest/board/player/ix61eg04ddy0dtfh3ckq?code=382142621680346506&gameName=battlecity");
            var analitics       = new RegionAnalysis(client);
            var fightProgram    = new FightProgram(client);
            var moveProgram     = new MoveProgram(client);
            var wayOutProgram   = new WayOutProgram(client);
            var defenseProgram  = new DefenseProgram(client);
            var commandsUtility = new CommandsProcessor(client);
            var logger          = new NLog.LogFactory().GetCurrentClassLogger();

            client.Run(() =>
            {
                try
                {
                    Stopwatch timer = Stopwatch.StartNew();

                    if (!client.IsPlayerAlive())
                    {
                        client.SendActions(client.Blank());
                        logger.Debug("Our tank had been destroyed");
                        return;
                    }
                    logger.Debug($"Current coordinates [{client.PlayerX}, {client.PlayerY}]");
                    //var freeRegion = analitics.GetFreeRegion();
                    var freeRegion = new Region(new Region(client.PlayerY, client.PlayerY, client.PlayerX, client.PlayerX), 6);
                    //logger.Debug($"Region analitics finished {freeRegion.ToString()}");
                    //var enemiesInArea = client.GetEnemiesPoints(freeRegion);
                    var enemiesInArea = client.GetEnemiesPoints(freeRegion);
                    logger.Debug($"Enemy search region {freeRegion.ToString()}");
                    var enemiesCount = enemiesInArea.Count;
                    logger.Debug($"Enemies {enemiesCount} found at region");

                    if (enemiesCount > 0)
                    {
                        logger.Debug($"Closest enemy at {analitics.GetClosestEnemy(freeRegion)} found at region");
                    }

                    var preAct   = false;
                    var movement = Movement.Stop;
                    var postAct  = false;
                    if (defenseProgram.CanBeUsed())
                    {
                        logger.Debug("Defense mode used");
                        movement = moveProgram.GetSafeMovementDirection(defenseProgram.DangerDirections);
                    }
                    else if (fightProgram.CanBeUsed(6))
                    {
                        logger.Debug("Fight mode used");
                        //preAct = fightProgram.TryPreAct(enemiesInArea);
                        movement = moveProgram.GetMovementToClosestEnemy();
                        postAct  = fightProgram.TryPostAct(movement.ToDirection(client), enemiesInArea);
                    }
                    else if (wayOutProgram.CanBeUsed(6))
                    {
                        logger.Debug("WayOut mode used");
                        //preAct = wayOutProgram.TryPreAct(freeRegion);
                        movement = moveProgram.GetMovementToClosestConstruction();
                        postAct  = true; //wayOutProgram.TryPostAct(movement.ToDirection(client), freeRegion);
                    }
                    else
                    {
                        logger.Debug("default mode used");
                        //Move(client);
                        movement = moveProgram.GetLongTermRandomDirection();
                    }

                    var command = commandsUtility.CreateCommand(preAct, movement, postAct);
                    logger.Debug($"Command sending [{command}]");
                    client.SendActions(command);
                    timer.Stop();
                    logger.Debug($"Turn finished in {timer.ElapsedMilliseconds} ms");
                }
                catch (Exception e)
                {
                    logger.Fatal(e, "Programm ended\n");
                    throw;
                }
            });
            Console.Read();
        }
Пример #14
0
 /// <summary>
 /// PROBLEMA:
 ///
 /// Implementar um algoritmo para o controle de posição de um drone emum plano cartesiano (X, Y).
 ///
 /// O ponto inicial do drone é "(0, 0)" para cada execução do método Evaluate ao ser executado cada teste unitário.
 ///
 /// A string de entrada pode conter os seguintes caracteres N, S, L, e O representando Norte, Sul, Leste e Oeste respectivamente.
 /// Estes catacteres podem estar presentes aleatóriamente na string de entrada.
 /// Uma string de entrada "NNNLLL" irá resultar em uma posição final "(3, 3)", assim como uma string "NLNLNL" irá resultar em "(3, 3)".
 ///
 /// Caso o caracter X esteja presente, o mesmo irá cancelar a operação anterior.
 /// Caso houver mais de um caracter X consecutivo, o mesmo cancelará mais de uma ação na quantidade em que o X estiver presente.
 /// Uma string de entrada "NNNXLLLXX" irá resultar em uma posição final "(1, 2)" pois a string poderia ser simplificada para "NNL".
 ///
 /// Além disso, um número pode estar presente após o caracter da operação, representando o "passo" que a operação deve acumular.
 /// Este número deve estar compreendido entre 1 e 2147483647.
 /// Deve-se observar que a operação 'X' não suporta opção de "passo" e deve ser considerado inválido. Uma string de entrada "NNX2" deve ser considerada inválida.
 /// Uma string de entrada "N123LSX" irá resultar em uma posição final "(1, 123)" pois a string pode ser simplificada para "N123L"
 /// Uma string de entrada "NLS3X" irá resultar em uma posição final "(1, 1)" pois a string pode ser siplificada para "NL".
 ///
 /// Caso a string de entrada seja inválida ou tenha algum outro problema, o resultado deve ser "(999, 999)".
 ///
 /// OBSERVAÇÕES:
 /// Realizar uma implementação com padrões de código para ambiente de "produção".
 /// Comentar o código explicando o que for relevânte para a solução do problema.
 /// Adicionar testes unitários para alcançar uma cobertura de testes relevânte.
 /// </summary>
 /// <param name="input">String no padrão "N1N2S3S4L5L6O7O8X"</param>
 /// <returns>String representando o ponto cartesiano após a execução dos comandos (X, Y)</returns>
 public static string Evaluate(string input)
 {
     return(CommandsProcessor.Process(input));
 }