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); }
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); } }
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(); }
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")); }
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()); }
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); } } }
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(); }
private static void Main() { CommandsProcessor commandsProcessor = new CommandsProcessor(); commandsProcessor.ProcessCommands(); }
public UsageProcessor(CommandsProcessor commands) { _commands = commands; }
public UsageProcessor(CommandsProcessor commands) { _commands = commands; }
private static void Main(string[] args) { using (var proc = new CommandsProcessor()) { proc.Process(args); } }
private static void Main() { CommandsProcessor commandsProcessor = new CommandsProcessor(); commandsProcessor.ProcessCommands(); }
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(); }
/// <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)); }