Игровой бот, использующий SikuliX, не работает должным образом - PullRequest
0 голосов
/ 02 мая 2018

Я создаю или, по крайней мере, пытаюсь создать бота для мобильного игрового фермера с помощью SikuliX IDE, но я новичок в Python, мой основной язык - Java, и я не знаю, как правильно работать с логикой игры, используя Python.

Логика игры:
Есть 4 места для одного монстра
если вы поместите ранг 1 монстра 1 на пробел 1, вы не сможете поставить ранг 2 того же монстра в любое другое пространство.
игра обнаружит, что вы выбрали монстра, если вы держите портрет монстра в течение 2 секунд, а затем перетащите его в пространство
после достижения монстром максимального уровня, автозапуск останавливается и появляется экран с сообщением «levelMax»
если у меня заканчиваются запуски, автозапуск останавливается, появляется сообщение «runZero», и бот останавливается

процесс бот:
Первый запуск - триггер для запуска бота.
после появления «levelMax» идет процесс замены всех монстров с уровня max на монстров уровня 1, и цикл начинается снова, пока все прогоны не закончатся или пока не будет 4 монстров уровня 1.

ps: я буду публиковать отладочные сообщения при редактировании, я забываю записывать их
PS2: возможно, вы, ребята, обнаружите игру, основываясь на логике

Редактировать: [ошибка] Ошибка, вызванная: Traceback (последний вызов был последним): файл "C: \ SikuliX \ dragAndDrop.sikuli \ dragAndDrop.py", строка 40, в monstroUm = monster [ monstroInt] IndexError: индекс вне диапазона: 2

monster1 = ["rank1.png","rank2.png"]
monster2 = ["rank1.png","rank2.png"]
monster3 = ["rank1.png","rank2.png"]
monster4 = ["rank1.png","rank2.png"]
monstersArray = [monster1, monster2, monster3, monster4]
levelMax = "1524942610020.png"
close = "1524942624936.png"
manage = "1524942638721.png"
okButton = "1524943405776.png"
start = "1524943415429.png"
yesButton = "1524943424798.png"
runsZero = "runsZero.png"
closeChat = "closeChat.png"
arrowLeft = "arrowLeft.png"

nox = App.focus("NoxPlayer 6.0.8.0")
localizacoes = [Location(355, 324),Location(357, 506),Location(356, 679),Location(357, 855)]
Settings.DelayBeforeDrag = 2.5
Settings.DelayBeforeDrop = 2.5
running = True
while (nox.hasWindow() and running):
   localiza = 0
   monstersArrayInt = 0
   monstersSelect = monsters
   while localiza <= len(localizacoes):
       while monstersArrayInt <= len(monstersSelect):
            monster = monstersSelect[monstersArrayInt]
            monstroInt = 0
            while monstroInt <= len(monster):
                monstroUm = monster[monstroInt]
                if monsterWindow.exists(monstroUm,3):
                    noxWindow.dragDrop(monstroUm,localiza)
                    del monstersSelec[monstersArrayInt]
                    localiza += 1
                    break
                elif monstroInt == len(monstersSelect):
                    monstersArrayInt += 1
                    break
                else: #exists(monstroUm) == False:
                    monstroInt += 1
                    wheel(monsterWindow,WHEEL_DOWN, 2)
...