Commits

Anonymous committed eaa041e

tutorial_de fixes.

  • Participants
  • Parent commits f7375a1
  • Branches avatarsay

Comments (0)

Files changed (1)

File tutorial_de.py

 
 story("""Willkommen im Interaktiven TextRPG Tutorial!
 
-Dieser Leitfaden wird Ihnen Schritt für Schritt die Möglichkeiten des TextRPG nahebringen und es Ihnen so ermöglichen, auf einfache Weise eigene TextRPGs zu schreiben. 
+Dieser grundlegende Leitfaden wird Ihnen Schritt für Schritt die Möglichkeiten des TextRPG nahebringen und es Ihnen so ermöglichen, auf einfache Weise eigene TextRPGs zu schreiben. 
 
 Erstmal zur Definition: Ein TextRPG ist eine interaktive Geschichte, in die ihre Leser eintauchen und so deren Ausgang beeinflussen können. 
 
 Auch wenn es mit komplexeren Skripten wohl möglich wäre, mit dem TextRPG ein MMORPG zu implementieren, ist das nicht seine grundlegende Zielsetzung. 
 
-Stattdessen definiert es eine einfache Skriptumgebung, mit der der Code einer interaktiven Geschichte sehr ähnlich aussieht wie ein Skript für ein Theaterstück, Sie gleichzeitig aber auf die gesamte Macht von Python zurückgreifen können, mit dem sowohl einfache Skripte, als auch komplexeste Programme geschrieben werden können (und das auch die NASA und Google nutzen).
+Stattdessen definiert es eine einfache Skriptumgebung, mit der der Code einer interaktiven Geschichte sehr ähnlich aussieht wie ein Skript für ein Theaterstück, Sie gleichzeitig aber auf die gesamte Macht von Python zurückgreifen können. Mit Python werden sowohl einfache Skripte, als auch komplexeste Programme geschrieben, z.B. auch einige der NASA und von Google.
 
 Obwohl diese erste Version rein textbasiert ist, sind die Skripte auf eine Art geschrieben, die eine spätere Übertragung in graphische Oberflächen einfach macht, so dass in den Skripten nur eingefügt werden muss, welche Oberfläche sie nutzen sollen. Das gleiche gilt für sonstige Erweiterungen. 
 
 
 Da das TextRPG in Python geschrieben wurde, funktioniert es direkt auf den verschiedensten Plattformen, GNU/Linux, MacOSX und Windows eingeschlossen. 
 
-Dieser Leitfaden ist übrigens auch als TextRPG realisiert (öffnen Sie ihn doch mal in einem Texteditor, um den Code zu sehen). 
+Auch dieser Leitfaden ist als TextRPG realisiert (öffnen Sie ihn doch mal in einem Texteditor, um den Code zu sehen). 
 
 Nun aber genug der Vorrede. Gehen wir zur ersten Lektion. 
 """)
 
 story("""= Lektion 2: Dem Nutzer Fragen stellen und Geschichten weitergeben =
 
-Der zweite Schritt zu komplexeren Geschichten ist grundlegende Interaktion mit dem Benutzer, genauer gesagt: Dem Benutzer Fragen stellen. 
+Der zweite Schritt zu komplexeren Geschichten ist grundlegende Interaktion mit dem Benutzer. In TextRPGs bedeutet das, dem Benutzer Fragen zu stellen. 
 
 Mit dem TextRPG können Sie das einfach auf die folgende Art und Weise tun: 
 
 antwort = ask('''Frage? (Antwort 1, antwort 2, ...)''')
 
 Um nun zu prüfen, ob antwort einen bestimmten Wert hat, nutzen Sie am einfachsten "if", "elif" und "else". 
+
 Ein Beispiel (was es tut werde ich danach beschreiben): 
 
 if antwort.lower() in ["jupp", "jau", "j", ""]: 
 if antwort.lower() in ["jupp", "jau", "j", ""]: 
     story('''Oh ja!''')
 
-prüft ob die in Kleinbuchstaben konvertierte Antwort (".lower()" übernimmt die Konvertierung in Kleinbuchstaben) einer der Werte in '["jupp", "jau", "j", ""]' ist, also ob die Antwort in Kleinbuchstaben entweder "jupp", "jau", "j"  oder leer ("") ist. 
+prüft ob die in Kleinbuchstaben konvertierte Antwort einer der Werte in '["jupp", "jau", "j", ""]' ist, also ob die Antwort in Kleinbuchstaben entweder "jupp", "jau", "j"  oder leer ("") ist. 
 In dem Fall ruft sie story() mit dem Wert '''Gerne!''' auf. 
+(".lower()" übernimmt die Konvertierung in Kleinbuchstaben) 
 
 Gibt der Nutzer keine Antwort, sondern drückt einfach Enter, dann gilt das als "", also eine leere Antwort. Diesen Wert können Sie sehr einfach nutzen, um die Standardantwort zu wählen. 
-Nach Konvention wird die Standardantwort bei Fragen groß geschrieben und der Rest klein. Damit haben Nutzer mehr Orientierung. Ob Sie sich daran halten ist natürlich Ihre Sache. 
+Nach Konvention wird die Standardantwort bei Fragen groß geschrieben und der Rest klein. Damit haben Nutzer mehr Orientierung. Ob Sie sich daran halten ist natürlich nur Ihre Sache. 
 
-Der Doppelpunkt bei "if ... :" und die Einrückung von story() zeigen in TextRPG Skripten an, dass story('''Oh Ja!''') zu dem Block der if Abfrage gehört. Wo es wieder zur ursprünglichen Einrückung zurück geht (bei elif) ist der if-block beendet. 
+Der Doppelpunkt bei "if ... :" und die Einrückung von story() zeigen in TextRPG Skripten an, dass story('''Oh Ja!''') zu dem Block der if Abfrage gehört ('Falls A, dann mache B'). 
+Wo der Text wieder zur ursprünglichen Einrückung zurück geht (bei elif) ist der if-block beendet. 
 
 Technisch gesehen ist '["jupp", "jau", "j", ""]' eine Liste, und die Abfrage 'antwort.lower() in ["jupp", "jau", "j", ""]' prüft, ob der Wert von antwort.lower() in der Liste steht. 
 
-Ist das der Fall werden alle elif und else, die direkt danach kommen, ignoriert und die Geschichte springt über sie hinweg. 
+Ist das der Fall werden alle elif und else, die direkt danach kommen, ignoriert, und die Geschichte springt über sie hinweg. 
 
 Ist 'antwort.lower' aber nicht 'in ["jupp", "jau", "j"]', prüft Python, ob nach der if Abfrage ein elif oder ein else kommt. 
 
 Das heißt: Wenn der Nutzer nicht "jupp", "jau" oder "j" geantwortet hat, prüfe, ob er "vielleicht", "kann sein" oder "v" geschrieben hat. 
 Hat er das, wird '''Mmh, muss ich noch drüber nachdenken.''' ausgegeben. 
 
-Trifft allerdings auch das nicht zu, läuft der Code weiter und Python trifft auf das 
+Trifft allerdings auch das nicht zu, läuft der Code weiter und Python trifft auf das else: 
 
 else: 
     story('''Vergiss es. Honig kriegt nur, wer auch Bienen pflegt.''')
 
 Das heißt nun: Wenn die Antwort auf alle vorigen nicht passt, schreibe '''Vergiss es. Honig kriegt nur, wer auch Bienen pflegt.'''
 
-Es kann pro "if" nur ein "else" geben, und ein "else" beendet den if/elif/else Block (genauso wie eine leere Zeile oder ein neues "if"). 
+Es kann pro "if" nur ein "else" geben, und ein "else" beendet den if/elif/else Block (genauso wie anderer Code ohne Einrückung oder ein neues "if"). 
 
 Kurzformen für Antworten, z.B. der erste Buchstabe des Wortes, erleichtern oft das Erleben der Geschichte deutlich. 
 
 
 bereit_bienen_zu_pflegen = ask('''Würdest du dich für das Glas Honig um meine Bienen kümmern, während ich weg bin? (Jupp, vielleicht, nein)''')
 
-Und diese Antwort kann auch immer wieder genutzt werden, also kann auch später im Spiel immer wieder gefragt werden: 
+Und diese Antwort kann auch immer wieder genutzt werden, also können Sie auch später im Spiel immer wieder etwas wie das Folgende fragen: 
 
 if bereit_bienen_zu_pflegen.lower() in ["ja", "jupp", "j", ""]: 
     story('''Du findest noch ein Glas Honig im Schrank, für das dir Ogame sicher interessante Neuigkeiten erzählen wird.''')
 
 story("""Und hiermit können Sie bereits vollständige interaktive Geschichten erzählen (auch wenn Sie vieles noch mit Handarbeit erledigen müssen), so dass ich nun zum zweiten Teil dieser Lektion komme: Wie Sie Ihre eigenen Geschichten an andere weitergeben können. 
 
-Sie haben bereits mit dem Python Interpreter experimentiert und dabei vielleicht schon den Code für kleinere eigene Geschichten geschrieben. Um die Geschichten weiterzugeben, müssen Sie nur diesen selbstgeschriebenen Code in eine Textdatei kopieren, die mit den folgenden Zeilen anfängt: 
+Sie haben bereits mit dem Python Interpreter experimentiert und dabei vielleicht schon den Code für kleinere eigene Geschichten geschrieben. 
+Um die Geschichten weiterzugeben, müssen Sie nur diesen selbstgeschriebenen Code in eine Textdatei kopieren, die mit den folgenden Zeilen anfängt: 
 
 ------ Der Anfang Ihrer Textdatei ------
 #!/usr/bin/env python
 
 Was die Zeilen bewirken:
 
-Die erste Zeile (#!/usr/bin/env python) bewirkt auf GNU/Linux und MacOSX, dass die Datei wie jedes andere Programm staret, wenn sie (doppelt) angeklickt wird.
+Die erste Zeile (#!/usr/bin/env python) bewirkt auf GNU/Linux und MacOSX, dass die Datei wie jedes andere Programm startet, wenn sie (doppelt) angeklickt wird.
 
 Technisch: das Programm /usr/bin/env ruft das Programm python auf, um die Datei zu öffnen. 
-/usr/bin/env wird verwendet, weil python nicht in jedem System an der gleichen Stelle installiert ist. /usr/bin/env weiß allerdings, wo es liegt.
+/usr/bin/env wird verwendet, weil python nicht in jedem System an der gleichen Stelle installiert ist. Denn /usr/bin/env weiß, wo python liegt.
 
 Die zweite Zeile (# encoding: utf-8) sagt, dass Ihre Textdatei in utf-8 kodiert ist, sie also Umlaute u.ä. nutzen können. 
 
 
 from rpg_lib.textrpg import *
 
-story('''Kaum ein Schimmer von Licht dringt durch das Blätterdach der düsteren Bäume, und der schmale Pfad auf dem du läufst wird mehr und mehr zu einem Wildweg, mehr für Hasen und Wölfe geeignet, als für Menschen. 
+story('''Kaum ein Schimmer von Licht dringt durch das Blätterdach der düsteren Bäume, und der schmale Pfad auf dem du läufst wird mehr und mehr zu einem Wildweg, eher für Hasen und Wölfe geeignet, als für Menschen. 
 
 Kein Vogelzwitschern erfüllt die Luft, so dass nur deine Schritte im trockenen Laub die Stille durchdringen, doch an Umkehr wagst du nicht zu denken, denn hinter dir warten Sie. 
 
-Deine Beine tragen dich weiter, und du beginnst ein dunkles Brummen zu hören, das mit jedem Schritt lauter wird und dich zu umfangen scheint, wie Gewebe, das alle anderen Geräusche verdrängt. ''')
+Deine Beine tragen dich weiter, und du beginnst ein dunkles Brummen zu hören, das mit jedem Schritt lauter wird und das dich zu umfangen scheint, wie Gewebe, das alle anderen Geräusche verdrängt. ''')
 
 weitergehen = ask('''Willst du weitergehen? (Ja, nein)''')
 
 if weitergehen.lower() in ["ja", "j", ""]: 
     story('''Du gehst tiefer in den Wald, während das Brummen Stück für Stück nicht nur die Geräusche, sondern jeden deiner Gedanken verdrängt. 
 
-Du kannst nicht abschätzen, wie lange du bereits läufst, als das Brummen plötzlich abschwillt und eine Gestalt auf dem Pfad vor dir auftaucht. Noch bevor du sie richtig erkennst, hörst du ihren Ruf: Sei gegrüßt Fremder. Sei mein Gast für diese Nacht!''')
+Du kannst nicht abschätzen, wie lange du bereits läufst, als das Brummen plötzlich abschwillt und eine Gestalt auf dem Pfad vor dir auftaucht. Noch bevor du sie richtig erkennst, hörst du ihren Ruf: Ich grüße Dich, Fremder. Sei mein Gast für diese Nacht!''')
 else: 
     story('''Du bleibst stehen, bis dein Hunger dich zwingt, den Rückweg anzutreten, ob Sie nun dort warten oder nicht.''')
     exit()
 
-exit()
 ------ Ende des Anfangs ------
 
 Als Versuch können Sie den obigen Geschichtsanfang in eine Textdatei kopieren, die Textdatei ausführbar machen, sie in den Ordner neben die Datei dieses Tutorials legen und sie dann anklicken. 
 
-Wenn Sie sie anderen geben wollen, muss neben ihr außerdem der Ordner "lib" liegen, der auch bei diesem Tutorial liegt. Also könnten Sie sie in einem Ordner weitergeben, der zum Beispiel so aussieht: 
+Um eine Textdatei in einer graphischen Benutzeroberfläche ausführbar zu machen, klicken sie mit der rechten Maustaste auf die Datei und wählen "Eigenschaften" oder einen ähnlichen Eintrag. Dort sollten sie die Auswahlbox "ausführbar" finden. Nachdem Sie sie aktiviert haben, sollten Sie noch prüfen, ob Ihre Geschichte jetzt wie erwartet beim Doppelklicken abgespielt wird. 
+
+In einer *nix Konsole nutzen sie einfach "chmod +x DATEI". 
+
+Wenn Sie ihre Datei nun anderen geben wollen, muss neben ihr außerdem der Ordner "rpg_lib" liegen, der auch bei diesem Tutorial liegt. Also könnten Sie ihr Spiel zum Beispiel in einem Ordner weitergeben, der so aussieht: 
 
 mein_spiel/
     mein_spiel.py
 
 Damit kommen wir zum Ende von Lektion 2. Viel Spaß beim experimentieren! """)
 
-call("python -ic 'from rpg_lib.textrpg import *")
+call("python -ic 'from rpg_lib.textrpg import *'", shell="True")
 
 story("""Lektion 3: Charaktere erzeugen und sprechen lassen.
 
-Nun ist es soweit, den Geschichten eins ihrer Grundelemente zu geben: Charaktere. 
+Nun ist es soweit, den Geschichten ein weiteres ihrer Grundelemente zu geben: Charaktere. 
 
 Das TextRPG gibt Ihnen eine einfache Möglichkeit Charaktere zu erzeugen, die auf vielfältige Weise interagieren können. Als erste Interaktion zeige ich Ihnen in dieser Lektion die direkte Rede. 
 
 
 Das bedeutet: "Erzeuge einen Char und nenne ihn charakter, um später etwas mit ihm machen zu können". 
 
-Um ihm mehr Persönlichkeit zu geben, sollten Sie ihm noch einen Namen geben: 
+Damit er mehr Persönlichkeit bekommt, sollten Sie ihm noch einen Namen geben: 
 
 charakter.name = "Rannar"
 
 
 charakter.say('''Endlich kann ich frei sprechen!''')
 
-charakter.say() unterscheidet sie nur dadurch von story(), dass es der Charakter ist, der spricht, was im TexTRPG dadurch ausgedrückt wird, dass der Name des Charakters vor jeder Zeile steht. 
+charakter.say() unterscheidet sich von story() nur dadurch, dass es der Charakter ist, der spricht, was im TexTRPG dadurch ausgedrückt wird, dass der gesprochene Text in einem Textblock unter dem Namen des Charakters steht. 
 """)
 
 test_in_interpreter = ask("Wollen Sie das gleich im Interpreter testen?  (Ja, nein)")
     story("""Der Python Interpreter wird gleich gestartet. 
 
 Wie üblich können Sie ihn mit exit() verlassen, um mit dem zweiten Teil von Lektion 3 fortzufahren.""")
-    call("python -ic 'from rpg_lib.textrpg import *")
+    call("python -ic 'from rpg_lib.textrpg import *'", shell="True")
 
 story("""Mit diesen einfachen Schritten können Sie nun bereits Charaktere erzeugen und sprechen lassen, aber ich möchte mir noch den Moment Zeit nehmen, Ihnen zu erklären, was sie damit intern tun.