Python3で無限のwhileループを防ぐ方法

rach

私はゲーム豚のサイコロを再生するプログラムを作成しています。次のことを行う必要があります。1。ユーザーまたはコンピューターのどちらが最初のターンをプレイするかを選択します。2.コンピューターが最初に起動した場合、コンピューターは1ターン再生します。3。コンピューターのスコアが100未満である限り、繰り返します。ユーザーは1ターンプレイします。b。ユーザーのスコアが100に達した場合、ループを終了しますc。コンピューターは1ターン再生します。4.結果を印刷します。私の問題は、プログラムを実行すると無限ループが発生し、どこでこの問題が発生するのかわからないことです。誰かが問題が発生している場所を指摘し、おそらくこれを防ぐ方法について提案をすることができますか?私はPythonを初めて使用するので、他のエラーを指摘することもできます。

from random import randint


def print_scores(uscore, cscore):
    uscore = 0
    cscore = 0


    print(uscore, cscore)


def roll_two_dice():
    roll1 = randint(1, 6)
    roll2 = randint(1, 6)

    if roll1 or roll2 == 1:
        return 0


    elif roll1 and roll2 == 1:
        return 25
    else:
        return roll1 + roll2


def computerTurn(score):


    turn_score = 0
    while score + turn_score < 100 and turn_score < 20:
        roll = roll_two_dice()
        if roll == 0:
            return 0
        score = roll + turn_score
    return turn_score


def userTurn(score):
    turn_score = 0
    while score + turn_score < 100 or user == hold:
        roll = roll_two_dice()
        if roll == 0:
            return 0
        score = roll + turn_score
    return turn_score


def final_result(uscore, cscore):
    uscore = 0
    cscore = 0
    print('Final results:{}'.format(uscore, cscore))
    if uscore >= 100:
        print('You win')
    else:
        print('Computer wins')


def main():
    c_score = 0
    u_score = 0
    if randint(0, 1) == 0:
        print('Computer starts')
        c_turn = computerTurn(c_score) + c_score
    while c_score < 100:
        print('Current scores')
        print_scores(u_score, c_score)
        u_turn = userTurn(u_score) + u_score
        if u_score >= 100:
            exit
        c_turn = computerTurn(c_score)
        print(c_turn)
        c_score = c_score + c_turn
    final_result(u_score, c_score)


main()

codepart1

codepart2

シヴァム

私はあなたのコードを広範囲に調べたので、あなたのコードにはいくつかの問題があります。

  1. 次のコードセグメント

    def roll_two_dice():roll1 = randint(1、6)roll2 = randint(1、6)

    if roll1 or roll2 == 1:
        return 0
    
    
    elif roll1 and roll2 == 1:
        return 25
    else:
        return roll1 + roll2
    

    どちらの場合も、、が含まれている必要があります

roll1 == 1

記述した条件では、roll1 = 1またはroll2 = 1のいずれかがチェックされないため、実際には、roll2 = 1およびroll1が1以外のものをチェックします。これにより、無限ループが発生する可能性があります。

  1. 第二に、次の2つの機能で:-

    computerTurn(スコア)

    そして

    userTurn(スコア)

turn_scoreの値を更新せず、結果として問題を悪化させる値を返します。c_scoreの値は常に0になり、コードは無限ループに陥ります。

  1. 機能的にも

    def final_result(uscore、cscore):

uscore> = 100の条件が発生することはないため、uscoreおよびcscore = 0の値を作成しないでください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Python3での不要な無限のwhileループ

分類Dev

PHPでの無限ループの問題を防ぐ

分類Dev

Postgresqlの再帰クエリで無限ループを防ぐ

分類Dev

無限再帰ループを防ぐ方法

分類Dev

互いに更新する2つのウィジェットで無限ループを防ぐ方法は?

分類Dev

私はPython3で無限のwhileループを作成することができました

分類Dev

Python3のスレッドプール内で無限ループを終了する安全な方法

分類Dev

useEffect内でsetStateを使用するときにReactコードで無限ループを防ぐ方法

分類Dev

forループが無限にループするのを防ぐにはどうすればよいですか?

分類Dev

PowerShellでこの無限ループを防ぐにはどうすればよいですか?

分類Dev

DOMTimerCoordinator :: NextIDが無限ループに入るのを防ぐのは何ですか?

分類Dev

無限のstdinループを防ぐにはどうすればよいですか?

分類Dev

reactおよびreduxのcomponentDidUpdate()でアクションを呼び出して状態を設定する方法(無限ループを防ぐ)

分類Dev

reactおよびreduxのcomponentDidUpdate()でアクションを呼び出して状態を設定する方法(無限ループを防ぐ)

分類Dev

JettyでSSLv3プロトコルを無効にしてプードル攻撃を防ぐ方法

分類Dev

PyQt行編集とメッセージボックスが無限ループでスタックするのを防ぐ方法は?

分類Dev

Jointjs / rappidでループを防ぐ方法

分類Dev

Python3でビット演算を使用して2つの整数を加算する際の無限ループ

分類Dev

後継演算によるパワー-無限ループを防ぐ方法は?[プロローグ]

分類Dev

ループでの上書きを防ぐ方法

分類Dev

Gitlabパイプラインとgitプッシュで無限ループを防ぐ

分類Dev

Python3で無限ループスレッドからリアルタイムの戻り値を取得する方法

分類Dev

Tkinterがwhileループからフリーズするのを防ぐ方法は?

分類Dev

whileループ出力が前の出力と衝突するのを防ぐ方法は?

分類Dev

無限スクロールのListView:表示されている行の更新を防ぐ方法は?

分類Dev

ReactのonErrorを介して画像ソースを設定するときに無限ループを防ぐ方法は?

分類Dev

in doコマンドのWindowsバッチファイルで無限ループを防ぐにはどうすればよいですか?

分類Dev

Pythonモジュールで無限のwhileループを実行する

分類Dev

D3を使用してループを防ぐための最良の方法

Related 関連記事

  1. 1

    Python3での不要な無限のwhileループ

  2. 2

    PHPでの無限ループの問題を防ぐ

  3. 3

    Postgresqlの再帰クエリで無限ループを防ぐ

  4. 4

    無限再帰ループを防ぐ方法

  5. 5

    互いに更新する2つのウィジェットで無限ループを防ぐ方法は?

  6. 6

    私はPython3で無限のwhileループを作成することができました

  7. 7

    Python3のスレッドプール内で無限ループを終了する安全な方法

  8. 8

    useEffect内でsetStateを使用するときにReactコードで無限ループを防ぐ方法

  9. 9

    forループが無限にループするのを防ぐにはどうすればよいですか?

  10. 10

    PowerShellでこの無限ループを防ぐにはどうすればよいですか?

  11. 11

    DOMTimerCoordinator :: NextIDが無限ループに入るのを防ぐのは何ですか?

  12. 12

    無限のstdinループを防ぐにはどうすればよいですか?

  13. 13

    reactおよびreduxのcomponentDidUpdate()でアクションを呼び出して状態を設定する方法(無限ループを防ぐ)

  14. 14

    reactおよびreduxのcomponentDidUpdate()でアクションを呼び出して状態を設定する方法(無限ループを防ぐ)

  15. 15

    JettyでSSLv3プロトコルを無効にしてプードル攻撃を防ぐ方法

  16. 16

    PyQt行編集とメッセージボックスが無限ループでスタックするのを防ぐ方法は?

  17. 17

    Jointjs / rappidでループを防ぐ方法

  18. 18

    Python3でビット演算を使用して2つの整数を加算する際の無限ループ

  19. 19

    後継演算によるパワー-無限ループを防ぐ方法は?[プロローグ]

  20. 20

    ループでの上書きを防ぐ方法

  21. 21

    Gitlabパイプラインとgitプッシュで無限ループを防ぐ

  22. 22

    Python3で無限ループスレッドからリアルタイムの戻り値を取得する方法

  23. 23

    Tkinterがwhileループからフリーズするのを防ぐ方法は?

  24. 24

    whileループ出力が前の出力と衝突するのを防ぐ方法は?

  25. 25

    無限スクロールのListView:表示されている行の更新を防ぐ方法は?

  26. 26

    ReactのonErrorを介して画像ソースを設定するときに無限ループを防ぐ方法は?

  27. 27

    in doコマンドのWindowsバッチファイルで無限ループを防ぐにはどうすればよいですか?

  28. 28

    Pythonモジュールで無限のwhileループを実行する

  29. 29

    D3を使用してループを防ぐための最良の方法

ホットタグ

アーカイブ