2017-07-28 1 views
-2

So habe ich versucht, ein grundlegendes Textspiel in Python zu machen, und ich verwende diesen Code, um ständig Zufallszahlen für die Verwendung in bestimmten Funktionen zu generieren, um zu entscheiden, ob der Spieler beschädigt wird, wird der Spieler angegriffen, etc .:While Schleife erste Zeile Code in Python unerreichbar

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

Meine erste Zeile des Codes, die tatsächlich für den Benutzer angezeigt wird, die, wenn der Spieler fragt möchte, führt nicht spielen, wenn ich die Schleife setzen Zufallszahlen zu Beginn meines Programms zu generieren. PyCharm sagt, dass der Code nicht erreichbar ist. Wie kann ich das lösen? Hier ist die Linie, als Referenz:

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

Nichts wird auf dem Bildschirm angezeigt, wenn ich das Programm ausführen, es sei denn ich die Schleife herausnehmen. Tut mir leid, wenn die Antwort offensichtlich ist, ich habe nur für kurze Zeit an Python gearbeitet.

+1

Von dem, was ich kann Sieh, deine Schleife ist unendlich. True ist immer True, und deshalb wird das Programm in die Schleife eintreten und niemals ausbrechen. – Carter

+0

'Nichts wird auf dem Bildschirm angezeigt, wenn ich das Programm ausführe, außer ich nehme die Schleife heraus.' Dann nimm die Schleife raus. –

+0

"Ich verwende diesen Code, um ständig Zufallszahlen zu generieren" - haben Sie den Eindruck, dass Python diese Schleife im Hintergrund ausführt und den Wert von 'rng' ständig ersetzt, während anderer Code andere Dinge macht? Das ist nicht so, wie die Dinge funktionieren, und es ist eine schreckliche Art, Zufallszahlen zu verwalten, selbst wenn Sie die Arbeit durchlaufen, damit diese Schleife gleichzeitig mit anderem Code ausgeführt wird. – user2357112

Antwort

0

Wie schon erwähnt, wird Ihre while Schleife für immer laufen und hat keinen Mechanismus aus der while Schleife zu brechen.

while True: 
    # do something 

Das hört nie auf, weil die while Schleife effektiv diesen Test tut:

while True == True: 
    # do something 

Wie bereits erwähnt, sind Sie besser dran etwas wie dies zu tun:

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 
Verwandte Themen