我正在使用 SikuliX IDE 创建或至少尝试使用移动游戏农民机器人,但我是 Python 新手,我的主要语言是 Java,不知道如何使用 Python 正确处理游戏逻辑。
游戏逻辑是:
如果你把怪物1的rank1放在space1上,
有4个空间可以放一个怪物,你不能把同一个怪物的rank2放在任何其他空间
游戏检测到你选择一个怪物如果你拿着怪物肖像2秒,然后
在怪物达到最大等级后拖放到空间,自动运行停止并出现消息屏幕“levelMax”
如果我用完运行,自动运行停止,消息屏幕出现“runsZero”并且机器人停止
bot流程:
第一次运行是在出现“levelMax”后触发启动bot
,进入将所有怪物等级最大值替换为1级怪物的过程,然后重新开始循环,直到所有运行结束或没有4个怪物1级。
ps:我会在编辑时发布调试消息,我忘了写下来
ps2:你们可能根据逻辑检测到游戏
编辑: [错误] 错误原因:回溯(最近一次调用最后一次):文件“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)