private static void Move(GameClientBattlecity 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()); done = true; } break; case 1: if (!gcb.IsBarrierAt(gcb.PlayerX + 1, gcb.PlayerY)) { gcb.SendActions(gcb.Right()); done = true; } break; case 2: if (!gcb.IsBarrierAt(gcb.PlayerX, gcb.PlayerY + 1)) { gcb.SendActions(gcb.Down()); done = true; } break; case 3: if (!gcb.IsBarrierAt(gcb.PlayerX - 1, gcb.PlayerY)) { gcb.SendActions(gcb.Left()); done = true; } break; case 4: gcb.SendActions(gcb.Act()); done = true; break; } if (done == false) { gcb.SendActions(gcb.Blank()); } }
private static void Move() { Log("New move"); var sw = new System.Diagnostics.Stopwatch(); sw.Start(); if (PrevTurnMap == null) { PrevTurnMap = G.Map; } var done = false; done = Dodge(); if (!done && S.ActCooldown <= 0) { done = ActAvailableEnemy(); } if (!done) { done = MoveTank(); } if (!done) { S.ActInactive++; if (!ActBarier()) { G.SendActions(G.Blank()); } } S.ActCooldown--; PrevTurnMap = G.Map; LogStats(); Log(" " + sw.ElapsedMilliseconds); Log(Environment.NewLine); }