无休止的 while 循环和旧的删除代码(弹出窗口)...好吧 "popping up."
Endless while loop and old removed code (popup)... well "popping up."
我正在努力解决自从开始在多个项目中使用 Sikuli 以来一直遇到的 st运行ge 问题。我一直在使用 IDE,后来由于代码中发生了 st运行ge 事情而尝试 b运行ch out。如果我之前用弹出窗口调试代码,我可以保存代码,甚至重新启动我的电脑,甚至检查其他文本编辑器中的代码,但现在不存在的弹出窗口(和旧代码)有时会弹出。最后通常我最终会放弃原始文件,有时不得不 st运行gely 注释掉行并一次重新添加它们(即使在 g运行d 规模的事情中结束脚本和我之前做的一样)。我真是不知所措。
这让我难以区分糟糕的代码和其他地方出现的问题。有谁知道是什么导致了这个 "phantom code"?因为我真的很茫然。
我想知道 while i < (inputvariable) 出了什么问题。我根本不知道可能出了什么问题,我是不是在看东西?
我现在运行正在通过 Sikuli IDE 安装所有脚本。我确实想学习如何编写脚本并包括 sikuli,希望我可以将它整齐地打包,但我似乎无法全神贯注。
对于 while 循环,将它与 "SSLoops" 进行比较,我不明白为什么它在满足条件时不跳出循环。 (打印出超出数字的部分。)
我不得不采取 st运行ge 解决方法,例如注释掉整段代码,尝试让它工作,然后慢慢地一个接一个地重新引入它,直到它与旧脚本完全匹配.如果我将脚本复制到一个新文件以制作一个更干净的副本,希望如果存在某种缓存问题(?)它会解决,但我通常不得不再次修改它。
BP = getBundlePath()
print(BP)
setBundlePath(BP + "\images")
BP2 = getBundlePath()
print(BP2)
# Regions
gameRegion = Region(230, 138, 1442, 875)
matchSpeedRegion = Region(1282, 920, 162, 91)
rewardRegion = Region()
def main():
SSLoops = input("How many times would you like to run Super Smash?")
SuperSmash(SSLoops)
def SuperSmash(SSLoops):
print(SSLoops)
i = 1
while i < SSLoops:
print(i)
print(SSLoops)
if exists("btnEnterSuperSmash.PNG"):
click("btnEnterSuperSmash.PNG")
while True:
if exists("btnReward.png"):
print("Completed! On to Rewards.")
#selectRewards()
break
else:
pass
if matchSpeedRegion.exists("btnStart.png"):
matchSpeedRegion.click("btnStart.png")
matchSpeedRegion.wait("btnRetreat.png", 3600)
if matchSpeedRegion.exists("btnSpeedUp.png"):
matchSpeedRegion.click("btnSpeedUp.png")
print("clicked x1")
print("clicking retreat")
matchSpeedRegion.click("btnRetreat.png")
matchSpeedRegion.wait(Pattern("btnRetreat.png").similar(0.65), 3600)
print("clicking okay")
gameRegion.click("btnOK.png")
wait(2)
gameRegion.wait("btnOK.png", 3600)
gameRegion.click("btnOK.png")
print("Completed!")
i = i + 1
if __name__ == '__main__':
main()
我一直收到弹出窗口说 "hey" 因为我有一个循环 while true btnRewards 到 运行 一个说 "hey" 的函数 - 这有希望继续选择一个最后奖励 5 张图片。但是在删除它之后,当我试图对主循环进行故障排除时,它仍然会弹出。
将用户输入变量与 i 进行比较的循环一直在增加。我觉得缩进没问题?但我一定是错的?还是其他原因导致它出错?
我一直在一个文件夹中制作程序运行,所以打破循环的图片会立即出现,所以理论上它应该运行没有任何其他输入的次数( 1).非常感谢任何帮助。
====
1
1
1
[log] CLICK on L[889,656]@S(0) (568 msec)
Completed! On to Rewards.
Completed!
2
1
[log] CLICK on L[889,656]@S(0) (565 msec)
Completed! On to Rewards.
Completed!
3
1
[log] CLICK on L[889,656]@S(0) (584 msec)
Completed! On to Rewards.
Completed!
4
1
====
你的问题:input()
returns 像这样的字符串 "4"
你然后用
while i < SSLoops:
始终是 True
,因此循环不会结束。
正在使用
SSLoops = int(input("How many times would you like to run Super Smash?"))
将解决您的问题。
注意:如果给定的输入无法转换为整数值,这将崩溃。
建议:调试打印应如下所示:
打印 "SSLoops ="、SSLoops
所以输出更易读。
来自 SikuliX 的 RaiMan(向你的猫问好 ;-)
我正在努力解决自从开始在多个项目中使用 Sikuli 以来一直遇到的 st运行ge 问题。我一直在使用 IDE,后来由于代码中发生了 st运行ge 事情而尝试 b运行ch out。如果我之前用弹出窗口调试代码,我可以保存代码,甚至重新启动我的电脑,甚至检查其他文本编辑器中的代码,但现在不存在的弹出窗口(和旧代码)有时会弹出。最后通常我最终会放弃原始文件,有时不得不 st运行gely 注释掉行并一次重新添加它们(即使在 g运行d 规模的事情中结束脚本和我之前做的一样)。我真是不知所措。
这让我难以区分糟糕的代码和其他地方出现的问题。有谁知道是什么导致了这个 "phantom code"?因为我真的很茫然。
我想知道 while i < (inputvariable) 出了什么问题。我根本不知道可能出了什么问题,我是不是在看东西?
我现在运行正在通过 Sikuli IDE 安装所有脚本。我确实想学习如何编写脚本并包括 sikuli,希望我可以将它整齐地打包,但我似乎无法全神贯注。
对于 while 循环,将它与 "SSLoops" 进行比较,我不明白为什么它在满足条件时不跳出循环。 (打印出超出数字的部分。)
我不得不采取 st运行ge 解决方法,例如注释掉整段代码,尝试让它工作,然后慢慢地一个接一个地重新引入它,直到它与旧脚本完全匹配.如果我将脚本复制到一个新文件以制作一个更干净的副本,希望如果存在某种缓存问题(?)它会解决,但我通常不得不再次修改它。
BP = getBundlePath()
print(BP)
setBundlePath(BP + "\images")
BP2 = getBundlePath()
print(BP2)
# Regions
gameRegion = Region(230, 138, 1442, 875)
matchSpeedRegion = Region(1282, 920, 162, 91)
rewardRegion = Region()
def main():
SSLoops = input("How many times would you like to run Super Smash?")
SuperSmash(SSLoops)
def SuperSmash(SSLoops):
print(SSLoops)
i = 1
while i < SSLoops:
print(i)
print(SSLoops)
if exists("btnEnterSuperSmash.PNG"):
click("btnEnterSuperSmash.PNG")
while True:
if exists("btnReward.png"):
print("Completed! On to Rewards.")
#selectRewards()
break
else:
pass
if matchSpeedRegion.exists("btnStart.png"):
matchSpeedRegion.click("btnStart.png")
matchSpeedRegion.wait("btnRetreat.png", 3600)
if matchSpeedRegion.exists("btnSpeedUp.png"):
matchSpeedRegion.click("btnSpeedUp.png")
print("clicked x1")
print("clicking retreat")
matchSpeedRegion.click("btnRetreat.png")
matchSpeedRegion.wait(Pattern("btnRetreat.png").similar(0.65), 3600)
print("clicking okay")
gameRegion.click("btnOK.png")
wait(2)
gameRegion.wait("btnOK.png", 3600)
gameRegion.click("btnOK.png")
print("Completed!")
i = i + 1
if __name__ == '__main__':
main()
我一直收到弹出窗口说 "hey" 因为我有一个循环 while true btnRewards 到 运行 一个说 "hey" 的函数 - 这有希望继续选择一个最后奖励 5 张图片。但是在删除它之后,当我试图对主循环进行故障排除时,它仍然会弹出。
将用户输入变量与 i 进行比较的循环一直在增加。我觉得缩进没问题?但我一定是错的?还是其他原因导致它出错?
我一直在一个文件夹中制作程序运行,所以打破循环的图片会立即出现,所以理论上它应该运行没有任何其他输入的次数( 1).非常感谢任何帮助。
====
1
1
1
[log] CLICK on L[889,656]@S(0) (568 msec)
Completed! On to Rewards.
Completed!
2
1
[log] CLICK on L[889,656]@S(0) (565 msec)
Completed! On to Rewards.
Completed!
3
1
[log] CLICK on L[889,656]@S(0) (584 msec)
Completed! On to Rewards.
Completed!
4
1
====
你的问题:input()
returns 像这样的字符串 "4"
你然后用
while i < SSLoops:
始终是 True
,因此循环不会结束。
正在使用
SSLoops = int(input("How many times would you like to run Super Smash?"))
将解决您的问题。
注意:如果给定的输入无法转换为整数值,这将崩溃。
建议:调试打印应如下所示: 打印 "SSLoops ="、SSLoops
所以输出更易读。
来自 SikuliX 的 RaiMan(向你的猫问好 ;-)