我正在创建或者至少尝试使用SikuliX IDE的移动游戏农民机器人,但我是Python的新手,我的主要语言是Java,并且不知道如何正确使用游戏的逻辑蟒。
游戏逻辑是:
有4个空间放一个怪物
如果你把monster1的rank1放在space1上,你不能把同一怪物的rank2放在任何其他空间上
如果您持有怪物肖像2秒钟,游戏会检测到您选择了一个怪物,然后拖放到空间
在怪物达到最大等级后,停止自动运行并显示消息屏幕“levelMax”
如果我没有运行,自动运行停止,消息屏幕“runsZero”出现,机器人停止发光
机器人的过程:
第一次运行是启动机器人的触发器
在出现“levelMax”之后,它会将所有怪物等级max替换为等级1怪物,并且循环再次开始,直到所有跑步都没有或者没有4个怪物等级为1。
ps:我会在编辑时发布调试信息,我忘记写下来了 ps2:你们可能会根据逻辑来检测游戏
编辑: [错误]导致的错误:Traceback(最近一次调用最后一次):文件“C:\ SikuliX \ dragAndDrop.sikuli \ dragAndDrop.py”,第40行,在monstroUm = monster [monstroInt] IndexError:index超出范围: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)