1

我目前正在构建一个 python 代码来玩二十一点,我需要能够在按键时调用某些函数,而不必在终端中。我发现这个键盘模块有帮助,但我遇到了这个问题。

def hit_or_stand(deck,hand):
    global playing
    print ("\nWould you like to Hit or Stand? Enter 'h' or 's'")

    if keyboard.is_pressed('h'):
        hit(deck,hand)  

    if keyboard.is_pressed('s'):
        print("Player stands. Dealer is playing.")
        playing = False

让我解释一下这个函数的作用,因为我不想让每个人都用整个代码超载。本质上,这个函数在循环中被调用,直到玩家决定点击 s ,它声明 play 为 False 并因此停止循环。如果玩家击中 h,则调用 hit 函数来抓一张牌。玩家可以抽出尽可能多的牌。

我现在的问题是这段代码不等待用户按键。它循环非常快地重复它。我只希望它在按下 h 或 s 后循环。

我尝试keyboard.wait('h')在第一个 if 上方的行上使用,但是这不允许用户按 s 并因此将播放声明为 False。

我正在寻找的是类似的东西,keyboard.wait('h'or's')但我知道这不起作用。

感谢您的帮助。我正在使用 python 3.7.9

编辑:我也指的是键盘模块: https ://pypi.org/project/keyboard/

4

2 回答 2

1

用于keyboard.read_key()等待任何输入。

如果不是hsread_key再次。

于 2020-11-29T05:25:18.997 回答
0
import keyboard

def mywait():
    keyboard.read_key()

def my_function():
    print("Hello")

def my_exit():
    quit()

keyboard.add_hotkey("p", my_function)
keyboard.add_hotkey("esc", my_exit)

while True:
    mywait()
于 2021-12-08T10:33:14.850 回答