0

次のじゃんけんのプログラムでは、ループに何か問題があります。セットの長さの入力を使用して、ゲームは各セットに対して N 回プレイされます。結果がプレイヤー 2、コンピューター 0 の場合。プレーヤー 0、コンピューター 2。プレーヤー 2、コンピューター 5。プレーヤー 0、コンピューター 4。追加のゲームがセットに追加されます。機能を何度も変更しましたが、何が問題なのかわかりません。

def rpsls_play():
    print("Welcome to the Rock-Scissors-Paper-Lizard-Spock game!")
    player_sets=0
    N=int(input("Select set length: "))
    times=0
    player_wins=0
    computer_wins=0
    while times < N:
        times +=1
        print("Now beginning game", times)
        if rpsls_game()==1:
            player_wins +=1
        else:
            computer_wins +=1
        print("Set score: Player", str(player_wins)+", Computer", str(computer_wins))
    else:
        pass

    if player_wins==computer_wins:
        while abs(player_wins-computer_wins)<2:         
            times +=1
            print("Now beginning game", times)
            if rpsls_game()==1:
                player_wins +=1
            else:
                computer_wins +=1
            print("Set score: Player", str(player_wins)+", Computer", str(computer_wins))
    else:
        pass

    if player_wins>computer_wins:
        print("Congratulations! You have won in", times, "games.")
        player_sets +=1
    elif computer_wins>player_wins:
        print("Too bad! You have lost in", times, "games.")

    pass

ご協力いただきありがとうございます

4

2 に答える 2

1

function がないため、コードを確認できませんrpsls_game()

あなたはゲームのどこが悪いのか言いませんでした - 何を得て、何を期待しますか?

私はあなたがラインに問題があると推測することしかできません

if player_wins==computer_wins:

の場合にのみ、N ゲーム後に追加ゲームが追加されplayer_wins == computer_winsます。

その行は必要ありません。

于 2013-10-28T20:51:54.410 に答える
1

答えにたどり着く前に、コードを改善するのに役立ついくつかのコード設計事項を以下に示します。

  1. これらの行を削除できelse: passます。

  2. その最終passステートメントを削除できます。

次のように変更する必要があります。

if player_wins == computer_wins:         
    times +=1
    print("Now beginning tie-breaker game. game", times)
    if rpsls_game()==1:
        player_wins +=1
    else:
        computer_wins +=1
    print("Set score: Player", str(player_wins)+", Computer", str(computer_wins))
于 2013-10-28T20:52:17.800 に答える