public string CreateCommand(bool preAct, Movement movement, bool postAct) { if (movement == Movement.Stop) { if (preAct || postAct) { return(_client.Act()); } else { return(_movementMap[Movement.Stop]); } } if (preAct && postAct) { postAct = false; } var preActCommand = preAct ? _client.Act() + "," : string.Empty; var movementCommand = _movementMap[movement]; var postActCommand = postAct ? "," + _client.Act() : string.Empty; return(preActCommand + movementCommand + postActCommand); }
private static void Move(BattleNetClient gcb) { var r = new Random(); var done = false; switch (r.Next(5)) { case 0: if (!gcb.IsBarrierAt(gcb.PlayerX, gcb.PlayerY - 1)) { gcb.SendActions(gcb.Up()); Console.WriteLine($"Move up"); done = true; } break; case 1: if (!gcb.IsBarrierAt(gcb.PlayerX + 1, gcb.PlayerY)) { gcb.SendActions(gcb.Right()); Console.WriteLine($"Move right"); done = true; } break; case 2: if (!gcb.IsBarrierAt(gcb.PlayerX, gcb.PlayerY + 1)) { gcb.SendActions(gcb.Down()); Console.WriteLine($"Move down"); done = true; } break; case 3: if (!gcb.IsBarrierAt(gcb.PlayerX - 1, gcb.PlayerY)) { gcb.SendActions(gcb.Left()); Console.WriteLine($"Move left"); done = true; } break; case 4: gcb.SendActions(gcb.Act()); Console.WriteLine($"act"); done = true; break; } if (done == false) { gcb.SendActions(gcb.Blank()); } }