private void MakeMove(GameEngine game, int x1, int y1, int x2, int y2) { int primaryDelay = MAX_DELAY; if (!(CheckDelay(x1, y1) && CheckDelay(x2, y2))) return; //if (debugMode) //game.Debug(String.Format("Move made: {0},{1} - {2},{3}", new Object[] { x1 - 2, y1 - 2, x2 - 2, y2 - 2 })); // debugConsole.AppendText(String.Format("Move made: {0},{1} - {2},{3}", new Object[] { x1 - 2, y1 - 2, x2 - 2, y2 - 2 }) + System.Environment.NewLine); if (!game.GameExtents.HasValue) return; // Last minute catch to ensure we have accurate location for mouse clicks SetDelay(x1, y1, primaryDelay); Rectangle startPoint = game.GameExtents.Value; startPoint.X += BoardLocationOnGame.X; startPoint.Y += BoardLocationOnGame.Y; int mouseX1 = startPoint.X + (CellSize * (x1 - 3)) + (CellSize / 2); int mouseY1 = startPoint.Y + (CellSize * (y1 - 3)) + (CellSize / 2); int mouseX2 = startPoint.X + (CellSize * (x2 - 3)) + (CellSize / 2); int mouseY2 = startPoint.Y + (CellSize * (y2 - 3)) + (CellSize / 2); //System.Threading.Thread.Sleep(10); SendInputClass.Click(mouseX1, mouseY1); //System.Threading.Thread.Sleep(10); SendInputClass.Click(mouseX2, mouseY2); //System.Threading.Thread.Sleep(10); game.Debug(string.Format("clickX: {0}, clickY: {1}", mouseX1, mouseY1)); //Thread.Sleep(1500); SendInputClass.Click(startPoint.X - 90, startPoint.Y + 150); }