2017-09-14 25 views
1

私はキープレスを検出して、ユーザーが再び再生したいかどうかを判断しようとしていますが、msvcrt.getch() 。これは私のコードです:.getch()が動作しないように見えない(Python 2.7)

import msvcrt 
#the game here 
    print "Do you want to continue? Y/N" 
    if msvcrt.getch() == 'Y' or msvcrt.getch() == 'y': 
     print"Let's play again!" 
     print"-----------------" 
    elif msvcrt.getch() == 'N' or msvcrt.getch() == 'n' : 
     "Okay, hope you had fun" 
     break 

ご意見はありますか?

EDIT:以下答えはちょうどあなたが一度だけmsvcrt.getch()を呼び出す必要がありますPyCharm

+0

コード実行時にエラーが発生しましたか? – cosinepenguin

+0

'getch()' __once__を呼び出し、その値を4回比較する必要があります。そのままで、ユーザの最初のキーを 'Y'と比較するだけで、2回目のキー入力を要求します。 – jasonharper

+0

@cosinepenguin @jasonharper' getch() 'と同じように、エラーはありません。何らかの理由で呼び出されることさえありません。 – sOfekS

答えて

0

ではないいくつかの理由で、コマンドライン上で動作します。コードを次のように変更してください。

import msvcrt 
#the game here 
    print "Do you want to continue? Y/N" 
    response = msvcrt.getch() 
    if response.lower() == 'y': 
     print"Let's play again!" 
     print"-----------------" 
    elif response.lower == 'n' : 
     "Okay, hope you had fun" 
     break 
+0

それは意味がありますが、それはまだ動作しません。何らかの理由でキープレスを登録していないようです。 – sOfekS

関連する問題