2017-10-25 20 views
0

パイソンのロックペーパーはさみがうまく機能します。私はロックペーパーはさみPYTHON

from random import choice 

win = 0 
loss = 0 
tie = 0 


rules = {'Rock': 'Paper', 'Scissors': 'Rock', 'Paper': 'Scissors'} 
previous = ['Rock', 'Paper', 'Scissors'] 


while True: 
human = input('Rock, Paper, Scissors or Quit???: ') 
computer = rules[choice(previous)] 

if human in ('Quit'): 
    print("YoU WoN %d TiMEs!" % win) 
    print("yOu lOSt %d tImEs!" % loss) 
    print("YoU TIeD %d TiMEs!" % tie) 
    print("SeE YoU LaTeR!!! :)") 

elif human in rules: 
    previous.append(human) 
    print('tHe CoMPuTeR PlAyEd', computer, end='; ') 

    if rules[computer] == human: 
     print('YoU WiN!') 
     win += 1 
    elif rules[human] == computer: 
     print('ThE CoMpUtER BeAT YOU!!!') 
     loss += 1 
    else: 
     print("It'S A tIE!") 
     tie += 1 

else: print("that's not a valid choice") 

答えて

1
探しているものがこれです....それぞれの武器を使用し、最大追加し、回数を印刷する方法に困惑少しだけ「人間」です

武器を持つ辞書をキーとして使用して、選択するたびに更新することができます。辞書は、

human_choices = {'Rock': 0, 'Paper': 0, 'Scissors': 0}; 

を0カウントのwhileループの前に先行初期化されるだろう。そして、あなたはチェックされているのelif後の終了オプション内のエントリを更新することができます。

elif human in rules: 
     human_choices[human]+=1 
     previous.append(human) 

はあなたには、カウントを印刷することができますサイドノートとして

print(human_choices) 

あなたはあなたのプログラムが本当にQuitを入力した後、終了したい場合は、あなたがbreak STを追加する必要があり、次の場合終了します終了時のatement:

print("SeE YoU LaTeR!!! :)") 
    break 
+0

あなたが助けることができるなら、コードから 'exit(0)'を呼び出すべきではないと思います。これは、何かが間違っていれば終了コードを設定するのに大いに役立ちます( 'exit(1)') –

+0

@Adam Smithありがとう、私はそれを削除しました。あなたのコメントは、それが良いと思うなら、私はあなたのコメントを含めることができますが。通常はブレークを使用しますが、whileループはコードの論理的な終わりと思われるため、その場で終了することの利点があるかもしれないと考えました。 – atru

0

あなたは?:

from random import choice 

win = 0 
loss = 0 
tie = 0 
humanRocks = 0 
humanScissors = 0 
humanPapers = 0 

rules = {'Rock': 'Paper', 'Scissors': 'Rock', 'Paper': 'Scissors'} 
previous = ['Rock', 'Paper', 'Scissors'] 

while True: 
    human = input('Rock, Paper, Scissors or Quit???: ') 
    computer = rules[choice(previous)] 
    if human in ('Quit'): 
    print("YoU WoN %d TiMEs!" % win) 
    print("yOu lOSt %d tImEs!" % loss) 
    print("YoU TIeD %d TiMEs!" % tie) 
    print("You used Rocks %d times" % humanRocks) 
    print("You used Paper %d times" % humanPapers) 
    print("You used Scissors %d times" % humanScissors) 
    print("SeE YoU LaTeR!!! :)") 
    exit(0) 
elif human in rules: 
    previous.append(human) 
    print('tHe CoMPuTeR PlAyEd', computer, end='; ') 

    if rules[computer] == human: 
     print('YoU WiN!') 
     win += 1 
    elif rules[human] == computer: 
     print('ThE CoMpUtER BeAT YOU!!!') 
     loss += 1 
    else: 
     print("It'S A tIE!") 
     tie += 1 
    if human == "Rock": 
     humanRocks+=1 
    elif human == "Paper": 
     humanPapers+=1 
    elif human == "Scissors": 
     humanScissors+=1 

    else: print("that's not a valid choice") 
関連する問題