Wie werden Eingaben in einem Abenteuerspiel bedingt verarbeitet?

Wir werden uns einen einfachen Mechanismus ansehen, mit dem der Spieler nach jedem Zug durch Hunger Lebenspunkte verliert. Ich möchte, dass der Spieler nur dann seine Gesundheit verliert, wenn er einen gültigen Zug ausgeführt hat - dh, das Spiel sollte keine Strafe für die versehentliche Fehleingabe eines Befehls auslösen.

In unserer Funktion PROC_executeCommand () habe ich eine neue lokale Variable hinzugefügt - ok%. Dies startet jede Schleife mit dem Wert TRUE, wird jedoch immer dann auf false gesetzt, wenn der Befehl des Benutzers ungültig ist.

Sie sollten nur dann Ihre Gesundheit verlieren, wenn Sie einen gültigen Befehl eingegeben haben.

Der Spieler verliert seine Gesundheit, wenn der Wert von ok% am Ende des Vorgangs WAHR ist.

Hier habe ich der main case-Anweisung eine "else" -Klausel hinzugefügt, die den Fall auffängt, dass die Eingabe des Spielers überhaupt keinen Sinn ergibt. Beachten Sie auch, dass die Gesundheit des Spielers um eins verringert wird, wenn der Spieler eine OK-Eingabe getätigt hat.
Programm testen. Beachten Sie, dass die Gesundheit jedes Mal abnimmt, wenn der Spieler einen gültigen Zug ausführt.
Nächstes Mal: ​​Erstellen von Objekten, mit denen der Player interagieren kann.

Der vollständige Quellcode folgt:

REM ist ein Abenteuerspiel in BB4W
REM von Mr Street

REM Version 1.0.0.1 baut die Welt auf
REM Version 1.0.0.2 bewegt sich um die Welt
REM-Version 1.0.0.3 behebt das Problem, sodass Sie das Raster nicht verlassen können
REM - alternative Version -
Mit der REM-Version 1.0.0.4 verliert der Spieler durch Hunger in jeder Runde an Gesundheit

REM lasst uns eine 'Welt' aufbauen
GRÖSSE% = 3
DIM World $ (GRÖSSE%, GRÖSSE%): REM erstellt ein 3x3-Raster
REM 'füllt' nun das Raster mit Leerzeichen
PROC _populateWorld
REM nun einige Daten zu unserem Player
Startposition des REM-Spielers
x% = 2
y% = 2
Gesundheit des REM-Spielers
Gesundheit% = 50


DEF PROC _main
LOCAL-Befehl $: REM-Benutzereingabe
REM das Hauptprogramm
REM wiederholen, bis der Spieler tot ist
WIEDERHOLEN
REM zeigt die aktuelle Position des Spielers
PROC _showCurrent
REM erhalten eine Eingabe vom Player
EINGABE "Was jetzt?>" Befehl $
REM befassen sich mit Benutzereingaben
PROC _executeCommand (Befehl $)
BIS Gesundheit%
ENDPROC

DEF PROC _executeCommand (Befehl $)
REM befasst sich mit der Benutzereingabe
LOCAL com $, gridError $
LOCAL ok%: Die REM-Variable enthält TRUE / FALSE, wenn die Eingabe des Players akzeptabel war
gr> "Du kannst nicht in diese Richtung gehen!" : REM eine Nachricht für, wenn Sie das Raster verlassen
com $ = FN _convlc (Befehl $): REM-Konvertierung in Kleinbuchstaben, damit es einfacher ist
ok% = TRUE: REM geht davon aus, dass Benutzereingaben sinnvoll sind
FALL WAHR VON
WANN com $ = "n" ODER com $ = "Norden"
WENN y% DANN
y% + = 1
SONST
PRINT gridError $
ok% = FALSE
ENDIF

WANN com $ = "s" ODER com $ = "south"
WENN y%> 1 DANN
y% - = 1
SONST
PRINT gridError $
ok% = FALSE
ENDIF

WANN com $ = "e" ODER com $ = "east"
WENN x% DANN
x% + = 1
SONST
PRINT gridError $
ok% = FALSE
ENDIF

WANN com $ = "w" ODER com $ = "west"
WENN x%> 1 DANN
x% - = 1
SONST
PRINT gridError $
ok% = FALSE
ENDIF

ANDERNFALLS
DRUCKEN "Ich verstehe dich nicht!"
ok% = FALSE

REM Wenn die Eingabe des Benutzers akzeptabel war, dann haben sie
REM machte eine "Runde" und sollte einen Lebenspunkt verlieren
WENN OK% DANN
Gesundheit% - = 1
ENDIF


DEF PROC _showCurrent
DRUCKEN "Sie befinden sich in der:" Welt $ (x%, y%)
DRUCKEN "Ihre Gesundheit ist:" STR $ (Gesundheit%)
ENDPROC

DEF FN _convlc (A $)
REM konvertiert in Kleinbuchstaben
SYS "CharLowerBuff",! ^ A $, LEN (A $)
= A $


DEF PROC _populateWorld
REM bringt einige Namen der Räume in die Welt
LOKAL x%, y%
REM beginnen mit der ersten Reihe
FOR y% = 1 TO SIZE%
FOR x% = 1 TO SIZE%
READ World $ (x%, y%)
NÄCHSTER
NÄCHSTER
ENDPROC
:
REM die Daten für unser 3x3 Gitter
DATEN "Hügel", "Berge", "Wald"
DATEN "Schloss", "Dorf", "Felder"
DATEN "Wald", "Sumpf", "See"

2 Antworten 2

SOFORTIGES PROBLEM

In der formal strukturierten Programmierung würden Sie dies mit dem Test behandeln, den Keatinge Ihnen gab:

. und der Rest des Programms wäre eingerückt, um es zu machen alle der "wahre" zweig der ob. In der Praxis würde ich dies mit der umgekehrten Logik tun: Wenn der Benutzer "nein" sagt, dann beenden Sie das Programm:

GRÖSSERE PROBLEME

Code lernen

Sie werden sich viel helfen, wenn Sie Ihre Unterrichtsmaterialien oder ein Python-Tutorial durchlesen, um diese Dinge zu lernen. Ja wirklich. Stack Overflow ist keine Tutorial-Site, Sie sollte in der Lage sein, die Grundlagen auf eigene Faust nachzuschlagen. Auch du Ja wirklich Ich möchte nicht darauf warten, dass wir auf kleine mechanische Fragen antworten.

Entwerfen Sie Ihr Programm

Verwenden Sie die für Sie geeigneten beschreibenden Tools: ein Flussdiagramm, ein Storyboard, alles, was Ihnen dabei hilft, herauszufinden, was in welcher Reihenfolge passiert und welche Informationen Sie aufbewahren müssen (Variablen). Wenn es um Hilfe geht, hat "Python auf die harte Tour lernen" einen schönen Kern für ein Abenteuerspiel - und Sie können mit Sicherheit nach "Python-Abenteuer" suchen, um Code zu erhalten, der Ihnen bei Ihrer eigenen Organisation hilft.

Implementierung

Du fängst richtig an, aber mach sicher Sie machen weiter so: Codieren Sie ein paar Zeilen, stellen Sie sicher, dass sie tun, was Sie wollen, und fahren Sie nicht fort, bis sie funktionieren. Zum Beispiel sollten Sie jetzt den Code ob Erklärung, die Sie brauchen, und eine einfache Nachricht in jedem Zweig, die Ihnen sagt, dass Sie dort richtig angekommen sind. Probieren Sie es ein paar Mal aus und geben Sie mindestens "YES", "no" und anderen Junk ein.

Damit solltest du anfangen. Vor allem viel Spaß. Töte ein Biest mit bloßen Händen. Stehlen Sie einige Schätze. Mit Stacheln in eine Grube fallen. Lass dich von einer wütenden Hauskatze fressen.

Эпичные герои

Toskana

Gefüllt mit verborgenen Schätzen und unerwarteten Erlebnissen, gibt es in der Toskana kein Ende der Abenteuer. Entdecken Sie hier zu jeder Jahreszeit die Natur und unternehmen Sie Aktivitäten zu jeder Jahreszeit: Rafting, Radfahren, Wandern, Trekking, Reiten, Canyoning, Höhlenforschung, Paragliding, Segeln, Klettern, Tauchen, Vogelbeobachtung und vieles mehr.

Об этой игре

Tap Adventure: Time Travel ist ein RPG-Klickerspiel in der authentischen Patch World. Ein Team von Helden beginnt ihre Reise durch dichte Wälder, unheimliche Sümpfe, dichten Dschungel, Goldminen, zeitlose Gletscher und lebloses Ödland.

Diese Reise wird nicht einfach sein, da die Sümpfe und Sümpfe von bösen Kobolden und Oger bewohnt werden, bösartige Raubtiere und wilde Brownies sich in den Wäldern verstecken und blutrünstige Stämme von Eingeborenen und Pavianen den Dschungel füllen. Einheimische mögen keine Eindringlinge: Der einzige Weg, um vorbeizukommen, ist, sie zu bekämpfen!

7 grundlegende Charakterklassen, jede mit einzigartigen Fähigkeiten und Auswahlmöglichkeiten beim Leveln
Im Gegensatz zu anderen Clicker-Spielen haben Sie nicht viele Helden, Sie können nur sieben davon einstellen, einen für jeden Typ: Krieger, Bogenschütze, Weiser Mann, Schurke, Wilder, Magier und Ingenieur. Und alle haben ihre eigenen Fähigkeiten, die sie einzigartig machen. Du kannst Helden auf verschiedene Arten entwickeln, die besser zu deinem Spielstil passen.

30 epische Bosse und unzählige Monster
Riesige epische Bosse, Oberherren ihrer Herrschaft, werden gegen deine Helden antreten! Sie sind viel härter als gewöhnliche Feinde. Aber du kannst eine schöne Belohnung bekommen, wenn du sie besiegen kannst: Truhen, mit denen du deine Helden verbessern kannst, Runensteine, um mächtige Artefakte herzustellen, Manacoins, um sie für Mimics auszugeben.

9 verschiedene bunte Welten
Lebhafter Dschungel, wilder Wald, unheimlicher Sumpf, düsterer Friedhof, dunkle Minen, kalte Eisberge, majestätische Stadt, tödliche Brachflächen und mysteriöse Kreuzungen. Jeder dieser wunderschönen Orte hat seinen eigenen Stil und Charme, seine eigenen Bewohner und Chefs. Erkunde die Länder der Patch World!

Wertvolle Belohnungen für das Besiegen von Bossen, brillante Grafiken und spektakuläre Effekte sowie jede Menge Gold, jede Menge Gold!
Sie können auch eine Truhe bauen, die Spielautomaten des Gouverneurs kennenlernen, einige Waren gegen die Manacoins eintauschen und die herrliche Patch-Welt erkunden!

Sie können auch unsere anderen Projekte überprüfen. Schmiede der Götter - Hochsüchtig machendes Multiplayer-Strategie-Rollenspiel, fantastisches Sammel-Rollenspiel im Chibi-Stil Mächtige Party und aufregender VR-Shooter Frachtkult: Shoot'n'Loot VR.

Panoramik Inc. stellt seit 2005 Spiele her. Wir sind darauf spezialisiert, verschiedene Arten von Spielen zu entwickeln, von Casual Games bis hin zu Mid-Core-Spielen.

Regeln

Das Wirken einer halben Karte des Abenteuers steht für das Senden der Kreatur auf ein Abenteuer bevor Sie es ins Spiel bringen. Wenn das Abenteuer beendet ist, wird die Karte ins Exil geschickt. Wenn die Kreatur im Rahmen des Beschlusses ins Exil geschickt wird, kann sie aus dem Exil geworfen werden.

Abenteuerzauber gibt es nur auf dem Stapel. In allen anderen Zonen werden die Eigenschaften eines Abenteuers ignoriert, es gelten nur die Eigenschaften der Kreaturenkarte.

Regeln

Abenteurerkarte Karten mit einem zweiteiligen Kartenrahmen (von dem ein Teil links eingesetzt ist) auf einer einzelnen Karte. Siehe Regel 715, "Abenteurerkarten".

  • 715.Abenteurer-Karten
    • 715.1. Abenteurerkarten haben einen zweiteiligen Kartenrahmen, in dessen Textfeld sich ein kleinerer Rahmen befindet.
    • 715.2. Der Text, der links im eingefügten Rahmen angezeigt wird, definiert alternative Eigenschaften, die das Objekt haben kann, während es ein Zauberspruch ist. Die normalen Eigenschaften der Karte werden wie gewohnt angezeigt, obwohl rechts ein kleineres Textfeld angezeigt wird.
      • 715.2a Wenn sich ein Effekt auf eine Karte, einen Zauber oder eine bleibende Karte bezieht, die „ein Abenteuer“ hat, bezieht er sich auf ein Objekt, für das diese alternativen Eigenschaften existieren, auch wenn das Objekt sie derzeit nicht verwendet.
      • 715.2b Das Vorhandensein und die Werte dieser alternativen Merkmale sind Teil der kopierbaren Werte des Objekts.
      • 715.2c Obwohl Abenteurerkarten mit mehreren Merkmalen gedruckt werden, ist jede Abenteurerkarte nur eine Karte. Zum Beispiel hat ein Spieler, der eine Abenteurerkarte gezogen oder abgelegt hat, eine Karte gezogen oder abgelegt, nicht zwei.
    • 715.3. Wenn ein Spieler eine Abenteurerkarte wirft, entscheidet der Spieler, ob er die Karte normal oder als Abenteuer wirft.
      • 715.3a Wenn eine Abenteurerkarte als Abenteuer gewirkt wird, werden nur die alternativen Eigenschaften ausgewertet, um festzustellen, ob sie gewirkt werden kann.
      • 715.3b Während der Zauber als Abenteuer auf dem Stapel liegt, hat er nur seine alternativen Eigenschaften.
      • 715.3c Wenn ein Abenteuerspruch kopiert wird, ist die Kopie auch ein Abenteuer. Es hat die alternativen Eigenschaften des Zaubers und nicht die normalen Eigenschaften der Karte, die den Abenteuerzauber darstellt. Jede Regel oder jeder Effekt, der auf einen Zauber als Abenteuer verweist, bezieht sich auch auf die Kopie.
      • 715.3d Anstatt einen Zauberspruch, der als Abenteuer gewirkt wurde, auf den Friedhof seines Besitzers zu legen, wird er von seinem Beherrscher ins Exil geschickt. Solange diese Karte im Exil bleibt, darf dieser Spieler sie wirken. Es kann auf diese Weise nicht als Abenteuer gewirkt werden, obwohl andere Effekte, die es einem Spieler ermöglichen, es zu wirken, es einem Spieler möglicherweise erlauben, es als Abenteuer zu wirken.
    • 715.4. In jeder Zone mit Ausnahme des Stapels und wenn sich eine Abenteurerkarte nicht als Abenteuer auf dem Stapel befindet, hat sie nur ihre normalen Eigenschaften.
    • 715.5. Wenn ein Effekt einen Spieler anweist, einen Kartennamen zu wählen, und der Spieler den alternativen Namen einer Abenteurerkarte wählen möchte, kann der Spieler dies tun.

Tasmanien

Wenn Abenteuer Ihr Ding ist, wissen Sie, dass es nicht nur darauf ankommt, was Sie tun, sondern auch, wo Sie es tun. Tasmanien ist wild und ungezähmt. Über ein Drittel der Insel ist als Nationalpark, Reservat und Weltkulturerbe geschützt und leicht zugänglich.

Петли времени

Jordan

Jordanien, das kürzlich von National Geographic zu einem der neun beliebtesten Reiseziele im Jahr 2018 gekürt wurde, ist ein Ort, an dem Sie sich einen Überblick verschaffen sollten. Diese Nation des Nahen Ostens bietet eine Reihe einzigartiger Erlebnisse für Abenteurer, wie zum Beispiel den 400 Meilen langen Durchgangsweg The Jordan Trail, der voller Überraschungen steckt.

Katalonien

Katalonien ist ein überraschendes Land voller Kontraste. Liebhaber von Open-Air-Aktivitäten finden eine unvergleichliche Vielfalt an Landschaften in einem kleinen Gebiet, in dem es möglich ist, morgens zu klettern oder Ski zu fahren und nachmittags zu tauchen oder zu schwimmen.

Banff und Lake Louise

In Banff und Lake Louise verschmelzen Komfort und Kultur mühelos mit der rohen Schönheit einer unberührten geschützten Wildnislandschaft. Der Banff-Nationalpark ist ein Muss für Reisende aus der ganzen Welt.

Ob Sie auf dem Inka-Pfad nach Machu Picchu wandern oder die Wunder des Amazonas entdecken, erfahren Sie, warum Peru eines der abenteuerlichsten Länder der Welt ist.

Polen

Eine der größten Attraktionen Polens ist der Reichtum an natürlicher Schönheit. Es wurde mit spektakulären Bergen, lebendigen Wäldern, Sandstränden und verführerischen Seen gesegnet. Reisende, die gerne Rad fahren, wandern oder Kitesurfen, werden Polen lieben.

Saguenay - Lac-Saint-Jean

Saguenay - Lac-Saint-Jean ist eine spektakuläre Region im Herzen der kanadischen Provinz Quebec. Bekannt für seinen majestätischen und unberührten Saguenay-Fjord und den See Saint-Jean, ein Binnenmeer mit Süßwasser. Die Region ist das Abenteuerreisezentrum von Quebec.

Schau das Video: Zinseszins berechnen - Eingabe in den Taschenrechner von Texas TI. Lehrerschmidt (Dezember 2019).