2016-04-12 7 views
0

Also mache ich ein Spiel und ich bin sehr neu in Python als Programmiersprache und ich nehme derzeit keine Klasse dafür Ich bin selbst lernend. Ich mache ein textbasiertes Spiel, mit dem ich anfangen kann. Ich möchte HP als einen Faktor implementieren und eine Option geben, das Spiel neu zu starten, wenn ein Spiel vorbei ist. Hier ist der Code, den ich bisher habe.Wie man HP implementiert und das Spiel nach dem Spiel automatisch neu startet

print("Welcome to the journey to Camelot. This game is case sensitive, type the answers exactly as shown!") 
print("\nYou wake up and decide today you are going to become a knight of the round table. You are a skinny average joe" 
    " but, that does not bother you. You hunker up, get dressed, and decide what to bring with you. Do you bring a" 
    " 'Bow' or a 'Sword?'") 
SwordBow = input('>') 
if SwordBow == "Bow": 
    print("\nYou pick up your trusty bow and get ready to leave. You walk outside and notice it is raining. " 
     "This makes you lose some of your determination for this trip. Do you 'Go Home' or 'Continue Onward'") 
    GoHomeContinueOnward = input('>') 
    if GoHomeContinueOnward == "Go Home": 
      print("\nYou go home and go to the sleep, game over.") 
      ##Instance of a game over 
    elif GoHomeContinueOnward == "Continue Onward": 
      print("\nFiller") 
elif SwordBow == "Sword": 
    print("\nYou pick up your sturdy sword and prepare to leave. You notice it is raining. This makes you realize your" 
     " sword could rust. Do you 'Stick it under your shirt' or 'Eh keep it sheathed'?") 
    StickitunderyourshirtEhkeepitsheathed = input('>') 
    if StickitunderyourshirtEhkeepitsheathed == "Stick it under your shirt": 
      print("\nFiller") 
      print("\nYou have lost 10HP") 
      ##Here is one of the reasons I want to implement HP 
    elif StickitunderyourshirtEhkeepitsheathed == "Eh keep it sheathed": 
    print("\nFiller") 

Ich möchte Sie in der Lage sein, HP zu verlieren, und wenn Sie zu niedrig ein Spiel über bekommen, wie wenn HP> 0: print („Game Over“) Es tut mir leid für die Mühe Ihres Zeit mit diesen einfachen Fragen, aber wie gesagt, ich bin sehr neu in Python und das ist die erste vollständige Sache, die ich versucht habe zu programmieren. Am Ende möchte ich, dass es nur ein Choice-basiertes Flussdiagramm-Stil-Text-Abenteuer ist. Ich möchte auch, dass die Funktion nach einem Spiel neu gestartet wird. Vielen Dank im Voraus für jede Hilfe und ich frage nur so weiß ich, wie in Zukunft Unordnung zu vermeiden, usw.

Antwort

0

Willkommen auf der Seite :)

Das erste, was ich bemerke die Länge Ihrer Variablennamen ist . StickitunderyourshirtEhkeepitsheathed ist wirklich lang und schwer zu lesen; Benenne es in etwas kurzes, aber beschreibendes, vielleicht weapon_action um und benutze einen Unterstrich, um die Wörter zu trennen.

Um hp zu implementieren, einfach eine Variable am Anfang des Skripts namens hp hinzufügen und geben Sie einen Standardwert; z.B. hp = 100. Dann, nach print("\nYou have lost 10HP") schreibe hp -= 10 oder hp = hp - 10 (sie meinen das gleiche), um 10 von hp zu subtrahieren.

Sie sollten einige Tutorials lesen, wie Sie Funktionen schreiben können, denn das ist es, was Sie brauchen, um Ihr Spiel einfach neu zu starten. Im Moment wird Ihr Skript von oben nach unten ausgeführt und es gibt keine einfache Möglichkeit, an den Anfang zurückzukehren. Wenn Sie alles in eine Funktion stellen, z. def main():, def game(): oder wie immer Sie es nennen möchten, Sie können diese Funktion einfach jedes Mal aufrufen, wenn Sie es erneut ausführen möchten.

+1

Ok danke für die Antwort. Ich habe an einem Punkt def Spiel(): am Anfang an einem Punkt, aber es war mit meinem ersten Druckbefehl einen seltsamen Bug erstellen, aber ich muss das wieder ausprobieren. Ich schätze die Antwort, da ich in der Highschool alle Honours klassifiziere, während ich versuche mich selbst zu programmieren, die schnellen Antworten helfen :) –

+0

@ZacharyArthur Cool, gerne geschehen. Ich bin auch selbstlernend und genieße all die kostenlosen Hausaufgaben, die ich auf SO machen kann - ich hätte nie gedacht, dass ich das sagen würde: O Wie auch immer, es ist der Weg, den Code in Funktionen zu stecken. Sobald Ihr Spiel in Größe und Komplexität wächst, wird es ohne eine Art Kapselung verwirrend. Wenn das Projekt noch mehr wächst, wirst du wahrscheinlich die Funktionen in Klassen einfügen und dann objektorientierte Programmierung machen :) – jDo

Verwandte Themen