Я изо всех сил пытаюсь решить странную проблему, которая возникла у меня с тех пор, как я начал использовать Sikuli в нескольких проектах. Я использовал IDE и позже попытался разветвляться из-за странных вещей, происходящих с кодом. Если бы мне раньше приходилось отлаживать код с помощью всплывающих окон, я мог бы сохранить код, даже перезапустить мой компьютер, даже проверить код в других текстовых редакторах, но теперь уже не существует всплывающих окон (и старого кода), иногда всплывающих. В конце обычно я заканчиваю тем, что выкидываю оригинальные файлы, и мне иногда приходится странным образом комментировать строки и заново добавлять их по одному (хотя в широком масштабе сценарий завершения был таким же, как прежде, чем я делал все это) , Я в полном недоумении для слов.
Это заставляет меня изо всех сил различать плохой код и что-то не так в другом месте. Кто-нибудь знает, что может вызвать этот "призрачный код"? Потому что я действительно в растерянности.
И я хотел бы посоветовать, что происходит с тем, пока я <(inputvariable). Я не могу понять, что может пойти не так, я смотрю что-то? </p>
В настоящий момент я запускаю все скрипты через Sikuli IDE. Я действительно хотел научиться писать сценарии и включать sikuli, надеясь, что смогу аккуратно упаковать его, но, похоже, не мог обернуть его вокруг.
Для цикла while, где его сравнивают с «SSLoops», я не могу понять, почему он не выходит из цикла при выполнении критериев. (распечатывается выше и выше номера.)
Мне пришлось сделать странные обходные пути, такие как комментирование целых разделов кода, попытка заставить его работать, а затем постепенно один за другим вводить его снова, пока он полностью не соответствовал старому сценарию. Если бы я скопировал скрипт в новый файл, чтобы сделать более чистую копию, в надежде, что, если возникнет какая-то проблема с кэшированием (?), Она разрешится, но мне, как правило, придется возиться с ней снова.
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()
Я получаю всплывающие окна с надписью "эй", потому что у меня был цикл, в то время как true btnRewards запускал функцию, чтобы сказать "эй" - это, мы надеемся, получит награду из 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
====