私は、Pythonでロック、ペーパー、ハサミのゲームをコーディングしています。しかしここにエラーがあります:プログラムの出口で確認を繰り返します。
私が8回プレイして終了したい場合、ゲームは私に8回も質問します。
例:私は5回演奏しました。
ゲームは私に尋ねる:Do you want to exit? yes/no.
私は(書き込み)はい、ゲームは再び私を尋ね、この場合は5回と言うとき。
私はPythonプログラミングの初心者です。なぜこれが起こっているのか、私は本当に分かりません。
お願いします。
私はWindowsでプログラミングしており、コマンドラインを使ってプログラムを実行しています。 (これがプログラムの正しい機能に影響するかどうかはわかりません)
ここにコードがあります。まだ完了していません。
class RPS_Game(object):
def Check(self):
P1 = raw_input("Player 1: Enter Rock, Paper or Scissors: ")
P2 = raw_input("Player 2: Enter Rock, Paper or Scissors: ")
if(str(P1.lower()) != "rock" and str(P1.lower()) != "paper" and str(P1.lower()) != "scissors"):
print "Must be Rock, Scissors or Paper, not: " + str(P1.lower())
elif(str((P2).lower()) != "rock" and str(P2.lower()) != "paper" and str(P2.lower()) != "scissors"):
print "Must be Rock, Scissors or Paper, not: " + str(P2.lower())
else:
sendDataToGame = self.Game(P1,P2)
def Game(self,P1,P2):
self.P1 = P1
self.P2 = P2
wantToExit = ""
while(True):
if(str(self.P1).lower() == str(self.P2).lower()):
print "You are in a tie!"
wantToExit = raw_input("Do you want to exit? yes/no: ")
if(wantToExit.lower() == "yes"):
break
else:
self.Check()
Call = RPS_Game() #instantiate
Call.Check() #calling Check function
なぜ、 ) 'を一度読み込むと、P1.lower()を何度も書き続ける必要はありませんか? – Barmar
これはどのように動作するのかわかりません。それがネクタイでなければ勝者を決してチェックしないので、whileループは永遠に繰り返されます。 – Barmar