私は小学校中学生の子供たちが簡単に理解し、うまくいけば再現するために、ロックペーパーはさみをPython 3で書きたいと思っています。Python - ロックペーパーはさみ - 入力ユーザー名とスコアカウンターを含める
基本的なゲームの他に、%1を使用してplayer1とplayer2の名前を入力するオプションを組み込んで、プログラムがそれをバックアウトして印刷するようにしたいと考えています。私は私のO/Pで、このエラーを取得しておいてください。
Player 1 name: me
Player 2 name: you
%s, what do you choose? Rock (1), Paper (2), or Scissors(3)?
**Traceback (most recent call last):
File "C:/Users/xyz/PycharmProjects/rps/scorekeeping.py", line 11, in <module>
print("%s, what do you choose? Rock (1), Paper (2), or Scissors(3)?") % player1
TypeError: unsupported operand type(s) for %: 'NoneType' and 'str'**
私も自分自身にすべてのラウンド(player2対player1)を更新するスコアカウンターを含めるようにしようとしています。通常は、1ラウンドあたり0にリセットされ、勝敗が決まります。
コードがどこに間違っているかをご確認ください。ありがとう!
player1 = input("Player 1 name: ")
player2 = input("Player 2 name: ")
while 1:
player1score = 0
player2score = 0
print("%s, what do you choose? Rock (1), Paper (2), or Scissors(3)?") % player1
choice1 = input("> ")
print("%s, what do you choose? Rock (1), Paper (2), or Scissors(3)?") % player2
choice2 = input("> ")
if choice1 == choice2 :
print("Its's a tie.")
elif choice1 - choice2 == 1 or choice2 - choice1 == 2 :
print("%s wins.") % player1
score1 = score1 + 1
else:
print("%s wins.") % player2
score2 = score2 + 1
print("%s: %d points. %s: %d points.") % (player1, score1, player2, score2)
スコア1と2は初期化されません。私はあなたのプリントに余分な括弧が必要だと思います。また、ループ内のスコアをゼロにしないでください。 – Stefan