NeMoMGE
@NeMoMGE
НЕ Джун в python

Где ошибка в коде?

Задача программы в том чтобы проходила гулг дино.
Точнее перепрыгивать кактусы когда они(их цвет) попадает в прямоугольник перед дино.
Но дино не перепрыгивает.
from PIL import ImageGrab, ImageOps
import pyautogui
from numpy import *
import time


class DinoBot:
    def __init__(self, replaybtn):
        self.replaybtn = replaybtn

    def main():
        bot = DinoBot((470, 440), (202, 442))
        bot.start()

    def restartgame(self):
        pyautogui.click(self.replaybtn)

    def jump(self):
        pyautogui.keyDown('space')
        time.sleep(0.05)
        pyautogui.keyUp('space')

    def grabimage(self):
        box = (self.dino[0] + 35, self.dino[1], self.dino[0] + 75, self.dino[1] + 30)
        image = ImageGrab.grab(box)
        grayImage = ImageOps.grayscale(image)
        a = array(grayImage.getcolors())
        return a.sum()

    def start(self):
        self.restartgame()
        while True:
            if self.grabimage() != 1447:
                self.jump()


DinoBot.main()

Ошибка:
File "C:\Users\...\Pycharm\main.py", line 12, in main
bot = DinoBot((470, 440), (202, 442))
TypeError: DinoBot.__init__() takes 2 positional arguments but 3 were given
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Ну что, ошибка правильно тебе говорит.
def __init__(self, replaybtn):
        self.replaybtn = replaybtn

Ты говоришь, что конструктор твоего класса Dinobot принимает один параметр, replaybtn.
А ты ему потом передаёшь два параметра: (470, 440), (202, 442)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы