编程新手,请多多包涵......
我有一个完美运行的摇滚/纸/剪刀游戏。我知道我可能可以用我实际使用的代码的 10% 来完成它,但是请用我的代码向我解释一下,这是我目前的理解方式。我想在代码中的某处添加一个按钮(GPIO03)以完全退出游戏。我已经尝试了 2 天。but.is_pressed,but.wait_for_press 等等。我就是无法让它工作。也许有些东西我还不知道,或者我只是用错了。当在游戏中的任何位置按下按钮时,有人可以添加或更改代码以完全退出游戏吗?我已经无计可施了......
from gpiozero import LED, Buzzer, Button
from time import sleep
buz = Buzzer(2)
but = Button(3)
def rps():
ledg = LED(15)
ledr = LED(14)
ledw = LED(18)
if p1 == 'r' and p2 == 'r':
print("Draw!!")
ledw.on()
sleep(3)
ledw.off()
elif p1 == 'p' and p2 == 'p':
print("Draw!!")
ledw.on()
sleep(3)
ledw.off()
elif p1 == 's' and p2 == 's':
print("Draw!!")
ledw.on()
sleep(3)
ledw.off()
elif p1 == 'r' and p2 == 'p':
print("P2 wins!!")
ledr.on()
sleep(3)
ledr.off()
elif p1 == 'r' and p2 == 's':
print("P1 wins!!")
ledg.on()
sleep(3)
ledg.off
elif p1 == 'p' and p2 == 'r':
print("P1 wins!!")
ledg.on()
sleep(3)
ledg.off
elif p1 == 'p' and p2 == 's':
print("P2 wins!!")
ledr.on()
sleep(3)
ledr.off()
elif p1 == 's' and p2 == 'r':
print("P2 wins!!")
ledr.on()
sleep(3)
ledg.off
elif p1 == 's' and p2 == 'p':
print("P1 wins!!")
ledg.on()
sleep(3)
ledr.off()
while True:
p1 = input("Choose r/p/s P1: (Type 'quit' to exit) ")
if p1 == 'r' or p1 == 'p' or p1 == 's':
pass
elif p1 == 'quit':
print("Bye!!")
break
else:
print("Invalid choice P1. Try again")
buz.on()
sleep(1)
buz.off()
continue
while True:
p2 = input("Choose r/p/s P2: (Type 'quit' to exit) ")
if p2 == 'r' or p2 == 'p' or p2 == 's':
pass
elif p2 == 'quit':
print("Chow!!")
return
else:
print("Invalid choice P2. Try again")
buz.on()
sleep(1)
buz.off()
continue
rps()
break
谢谢