-1

私はプログラミングの初心者なので、Pythonコードに取り組んでいます。しかし、問題の解決策が見つからずに立ち止まってしまったので、誰かが光を当てたり、どこが悪いのか教えてくれないかと期待していました。

プログラムの概要:
コンピューターとプレーヤーが乱数を使って対戦します。最後の数字を選んだ人は負けます。

Pythonプログラムは次のとおりです。

import random  

playAgain = 'y'  

while playAgain == 'y':
    random_Number = random.randint(0-30)  

    while random_Number != 0 :  
        computer = random.randint(1,6) <= random_Number  
        random_Number = random_Number - computer  
        if random_No <= 0 :  
          print('Player 1 wins')  
        else:  
          player = int(input('Enter number'))  

       random_Number = random_Number - int(player)  

       if random_Number <=0:  
          print('Computer wins')  

playAgain== input('play again? (yes/no)')

私が直面している3つの問題は、次
のとおりです。1)もう一度プレイするために「いいえ」を選択しても、whileループはゲームを終了しません。誰かが私がこの領域でどこで間違っているのか、そして将来whileループでこれを回避する方法を教えてもらえますか?

2)残りの乱数が1で、プレーヤーがより高い数を選択した場合、乱数は負になります。これを回避するにはどうすればよいですか?

3)乱数が1または2を表示する場合、コンピューターは数字を選択しないため、プレーヤーは多くの時間を失います。ゲームが終了しないまで、コンピューターに数字を選択させるにはどうすればよいですか?

4

1 に答える 1

0

1)while playAgain == 'y'ゲームの各インスタンスを実行する必要があるため、包括的なループである必要があります。したがって、その後にすべてをインデントし、タブをもう1つ、スペースをさらに4つインデントします。

2)値が負の場合は、に変更while random_Number != 0して終了します。while random_Number > 0ifsはOKのようです。

3)各番号が読み取られた後に実行されるように、内側のループの直後にifand句をインデントする必要があります。例:elsewhile

while random_Number > 0:
    computer = random.randint(1,6) <= random_Number  
    random_Number = random_Number - computer  
    if random_No <= 0:
        print('Player 1 wins')  
    else:
        player = int(input('Enter number'))  
        random_Number = random_Number - int(player)
        if random_Number <= 0:  
            print('Computer wins')

編集:条件付きは今修正する必要があります

于 2012-11-17T01:04:56.557 に答える