2017-07-28 5 views
-2

私はPythonで基本的なテキストゲームを作ろうとしていましたが、このコードを使用して、特定の関数で使用する乱数を生成しています、損傷しているプレイヤーが攻撃された、など私はループを入れたときにプレイヤーがプレイしたいかどうかを尋ねる実際にユーザーに表示されるコードの:while Pythonでコードの最初の行を到達できないwhile

rng = random.randint(0,100) 
    while True: 
      rng = random.randint(0,100) 

私の最初の行は、実行されません私のプログラムの始めに乱数を生成する。 PyCharmはコードに到達できないと言います。それをどうすれば解決できますか?ここに参照用の行があります。

game = raw_input("Would you like to play? Y/N\n") 

ループを取り出さない限り、プログラムを実行すると何も表示されません。申し訳ありませんが答えが明らかな場合、私は短い時間のpythonに取り組んできました。

+1

何私ができるから、あなたのループは無限です。 Trueは常にTrueであるため、プログラムはループに入り、途切れることはありません。 – Carter

+0

'ループを解除しない限り、プログラムを実行すると画面に何も表示されません。'その後、ループを取り出します。 –

+0

"このコードを使用して常に乱数を生成しています" - Pythonがバックグラウンドでこのループを実行し、他のコードが他のコードを実行している間に常に 'rng'の値を置き換えるという印象を受けていますか?これはどのように動作するかではなく、実際にこのループを他のコードと同時に実行する作業を行っても、乱数を管理するのはひどい方法です。 – user2357112

答えて

0

このように、whileループは永遠に実行され、whileループから抜け出すメカニズムはありません。

while True: 
    # do something 

whileループが効果的にこのテストをやっているので、これは、決して停止しない:

while True == True: 
    # do something 

述べたように、あなたはこのような何かをやったほうが良いです:

game = raw_input("Would you like to play? Y/N\n") 

# do stuff 
# AND NOW, simulating some of the items you mentioned... 

if random.randint(0, 100) > 70: 
    # enemy attacks 

if random.randint(0, 100) > 50: 
    # player experiences damage 
関連する問題