ربات انجام دهنده ی بازی پست قبل .
خیلی خب . رباتی که بتونه این بازی رو انجام بده رو با پایتون نوشتم و البته یه سری از مفاهیم مورد نیاز برای نوشتن ربات رو از اسکرپیت آقای کاپیتان فهمیدم .
کار این ربات اینجوری هستش که میاد صفحه رو اسکن میکنه و میبینه هر نقطه اون نقطه های قرمز بوجود اومد رو موقعیتش رو پیدا میکنه و با موس روش کلیک میکنه .
سورس ربات :
import pyautogui as g from time import sleep import keyboard from winsound import Beep import threading picture = "sample.png"
def findandclick(): try: location = g.locateOnScreen(picture , region = region) pos = g.center(location) g.click(pos[0] , pos[1]) Beep(1000,100) print("Click At ({} , {})".format(pos[0], pos[1])) except Exception as error: print("ERROR : " , error) for i in range(5,0 , -1): print (i) sleep(1)
print("start")
region = (0 , 171 , 1365 ,499)
while True: if keyboard.is_pressed("q"): break findandclick()
هر بار که یه نقطه رو پیدا میکنه و روش کلیک میکنه یه بوق میزنه . ویدیو تست کردنش :
ولی خب مشکل اینجاس که چون با پایتون نوشته شده سرعتش پایینه . فعلا دنبال اینم با سی پلاس پلاس پیاده سازیش کنم . البته داخل سی پلاس پلاس هم یه سری مشکلاتی بوجود اومده . من برای گرفتن رنگ هر پیکسل از تابع GetPixel استفاده میکنم ولی سرعتش بازم خیلی خیلی پایینه . اگه تابعی یا روشی برای خوندن سریع رنگ پیکسل ها تو سی پلاس پلاس سراغ دارید ممنون میشم بگید .
و نهایتا اینم رکورد زدن خودم (بدون ربات) به آهنگشم توجه نکنید همینجور داشتم گوش میکردم فیلم گرفتم :|| :
آهنگه -______-
اسمش چیه منم میخوام برم گوشش بدم -=-