我开始学习编程并尝试编写我的第一个Flash游戏机器人,但我想我无法解决问题
这个游戏是,玩家随机点击5个区域,如果玩家幸运,敌人将被击中并减少他的马力。 Enemy的hp是6,这个游戏要求玩家在不超过7次射击时完成此操作,这意味着玩家只有一次机会错过猜测。
所以我将HP栏“剪切”到6个jugdement区域,并在python中使用PIL来判断每个区域中像素的颜色变化,然后让pyautogui进行一些自动点击。该代码的主要部分是:
while True:
flag = 1
for i in range(6):
s = screenGrab()
pixels = s.load()
pixelJugde_1 = pixels[judgeAreas[i]] # jugde if hp is reduced after this shot
if pixelJugde_1 != (0, 0, 0): # if this shot missed
randomClick() # try again
s = screenGrab()
pixels = s.load()
pixelJugde_2 = pixels[judgeAreas[i]] # second judge of this shot
if (pixelJugde_2 != pixelJugde_1): # hp changed, second try didn't miss
flag = 1 # mark this shot has been tried twice
randomClick() # continue next shot
elif (pixelJugde_2 == pixelJugde_1 and flag == 1): # second try missed
resetResult() # restart the game
break
else:
print 'got shot' # success at first try
randomClick() # next shot
现在我的问题是,如果第一次拍摄已被尝试两次并标记,当下一次拍摄开始并未命中时,它仍会尝试两次,就像标记标记不起作用一样。那么如何解决这个问题?