static void Main(string[] args) { var pid = Process.GetProcessesByName("ARAD").First().Id; var hWnd = Process.GetProcessesByName("ARAD").First().MainWindowHandle; if (hWnd != IntPtr.Zero) { GetClientRect(hWnd, out var rect); if (rect.Width != 1600 || rect.Height != 900) { Console.WriteLine("アラド戦記の解像度を1600x900に設定して下さい。"); return; } MoveWindow(hWnd, 0, 0, rect.Width, rect.Height, true); } var autoBurger = new AutoBurger(); var simulator = new InputSimulator(); Microsoft.VisualBasic.Interaction.AppActivate(pid); while (true) { var img = TakeScreenShot(547, 188, 160, 220); var results = autoBurger.GetMaterials(img); foreach (var result in results) { switch (result) { case TomatoMaterial x: PressKey(simulator, VirtualKeyCode.LEFT); break; case PattyMaterial x: PressKey(simulator, VirtualKeyCode.UP); break; case LettuceMaterial x: PressKey(simulator, VirtualKeyCode.DOWN); break; case CheeseMaterial x: PressKey(simulator, VirtualKeyCode.RIGHT); break; } Thread.Sleep(100); } if (results.Any()) { PressKey(simulator, VirtualKeyCode.SPACE); } Thread.Sleep(1000); } }
public void TestMethod1() { var autoBurger = new AutoBurger(); Assert.AreEqual(File.Exists("imgs/001.png"), true); var results = autoBurger.GetMaterials("imgs/001.png").ToArray(); Assert.AreEqual(results[0].GetType(), typeof(TomatoMaterial)); Assert.AreEqual(results[1].GetType(), typeof(LettuceMaterial)); Assert.AreEqual(results[2].GetType(), typeof(CheeseMaterial)); Assert.AreEqual(results[3].GetType(), typeof(PattyMaterial)); }