1

ユーザー入力を要求せずに受け取る関数をプログラムする方法はありますか?たとえば、三目並べのゲーム中に、ユーザーはいつでも「Q」を押すことができ、プログラムは終了しますか?

4

2 に答える 2

1

これを行うにはいくつかの方法があり、それらはすべて異なります。

ゲームが を使用する端末アプリケーションである場合、 を呼び出したときに をcursesキャッチし、多くのアプリケーションが使用するループを発生させるか、単純にループから抜け出します。qgetch()SystemExitwhilecurses

tkinterまたは別の GUI ライブラリを使用して、三目Frame並べボードを保持するウィジェットにキー プレス イベントをバインドします。

于 2013-02-01T17:47:46.060 に答える
0

ボードを印刷するだけであると仮定すると(私はそれを行う基本的なTic-Tac-Toeゲームを持っています)、入力中にそれを閉じることができます(特に別の方法で要求したとしても):

user_option = input("移動先のスペースを入力するか、終了するには 'Q' を入力してください: ")

try:
    if user_option.lower() == 'q': # makes everything lowercase so it is easier to handle
        import sys
        sys.exit("Game Terminated.")
except TypeError:
    # other code

プレイヤーがどのように移動するか分からないので、 と を使用tryexceptました。私の Tic-Tac-Toe ゲームでは、ボード上のスペースに対応する整数をユーザーに入力してもらいます。

または、ユーザーにCtrl+を押してもらうこともできます。これはPython ではC自動です (プログラムを終了します)。KeyBoardInterrupt

于 2013-02-01T18:19:31.980 に答える