Springen ohne Goto
Übersicht

BudikotchBetreff: Springen ohne Goto |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey Leute.
Mit BlitzBasic habe ich endlich eine Programmiersprache gefunden die ich am Besten verstehen kann. Zur Zeit hab ich einen sehr,sehr leichten Labyrinth in Textform gecodet. Nun möchte ich aber erfahren,wie man ohne ein Goto zur letzten Anweisung springt. z.B. Wenn man stirbt,nicht nochmal alles von vorne machen zu müssen,falls man schon weit gekommen ist. Mein Code: Code: [AUSKLAPPEN] ; Labyrinth-Text
Print "Du gehst in ein Labyrinth hinein." Print "" Print "Du hast nun 2 Möglichkeiten" Print "" Print "1 - Links oder 2 - Rechts" Print "" Weg1% = Input("Wähle deinen Weg aus. (1/2): ") Print "" Select Weg1 Case 1 Print "Du gehst ein Stück und ... " Print "" Print "Nichts passiert" Print "" Print "Es geht weiter !" Case 2 Print "Du gehst ein Stück und ..." Print "" Print "Oh nein !!.Du bist in eine Falle getappt. Print "" Print "Du stirbst !" Print "" Print "GAME OVER" WaitKey End Default Print "Ungültige Wahl." End Select Print "" Print "Nun hast du 3 Wege vor dir." Print "" Print "1 - Links , 2 - Geradeaus , 3 - Rechts" Weg2% = Input("Wähle deinen Weg aus. (1/2/3): ") Print "" Select Weg2 Case 1 Print "Du gehst ein Stück und ..." Print "Oh nein.Ein Monster hat dich angegriffen." Print "Du stirbst an deinen Wunden." Print "" Print "GAME OVER" WaitKey End Case 2 Print "Du gehst ein Stück und ..." Print "Zack! Die Pfeile fliegen dir um die Ohren" Print "Ein Pfeil erwischt dich !" Print "Du stirbst." Print "" Print "GAME OVER" WaitKey End Case 3 Print "Du gehst ein Stück und ..." Print "Nichts passiert" Print "Glück gehabt.Du kannst weiter gehen" Default Print "Ungültige Entscheidung" End Select Print "" Print "Deine letzte Entscheidung liegt vor dir." Print "Entscheide gut !" Print "" Print "Du hast 2 Wege zur Auswahl." Print "" Print "1 - Links oder 2 - Rechts" Weg3% = Input("Wähle deinen Weg aus. (1/2): ") Print "" Select Weg3 Case 1 Print "Du gehst ein Stück und ... " Print "" Print "BOOM !! " Print "Eine Bombe explodiert" Print "Du bist Tod !" Print "" Print "GAME OVER" WaitKey End Case 2 Print "Du gehst ein Stück und ... " Print "" Print "Du hast den Ausgang gefunden !" Print "Herzlichen Glückwunsch" Default Print "Ungültige Wahl" End Select WaitKey End |
||
![]() |
Jamagin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mann, das spielt man einmal und nie wieder!!
Das ist wirklich mehr als arg. In einem Spiel sollte man den Spieler nicht vor vollendete Tatsachen stellen, bzw. wenn man nur 2 Möglichkeiten hat, das man bei einer gleich kaputt ist oder bei 3 Möglichkeiten, bei 2en kaputt ist!! Man sollte dem Spieler schon die Möglichkeit einräumen, die Situation erstmals zu kennen bzw. zu lösen aber das ist ja nur ein Beispiel! Kritik muß sein, weil es wirklich Mist ist! Es gibt viel schönere Ideen als immer nur Monster, Gewalt und so weiter... Aber nun zum eigentlichen, wieso packst du den gesamten Text nicht in Datazeilen bzw. in Dateien? Da gibt es sicher ein paar Beispiele im BlitzBasic Buch von Rene Mayer bzw. unter dem Begriff Textadventures kannst auch googeln nach Tutorials! Das man nicht immer von vorne beginnen muß/soll erübrigt sich, wenn man Game Over ist, wo soll man denn dann starten? Es gibt ja auch keine Wegpunkte und auch kein Ziel. Ist irgendwie ein Glücksspiel...! Bitte nicht falsch verstehen, aber zum lernen, wie du sagst ist dein Beispiel nicht ganz so gut, da gibt es schönere Beispiele!!! lg. Jamagin |
||
Bevor du etwas neues beginnst, erledige das alte |
![]() |
PSY |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey,
du musst einfach jeden raum solange abfragen, bis das ergebnis "OK" ist. das funzt zb mit der repeat-until-loop: Code: [AUSKLAPPEN] local ok%
; Labyrinth-Text Repeat ok=False Print "Du gehst in ein Labyrinth hinein." Print "" Print "Du hast nun 2 Möglichkeiten" Print "" Print "1 - Links oder 2 - Rechts" Print "" Weg1% = Input("Wähle deinen Weg aus. (1/2): ") Print "" Select Weg1 Case 1 Print "Du gehst ein Stück und ... " Print "" Print "Nichts passiert" Print "" Print "Es geht weiter !" ok=True Case 2 Print "Du gehst ein Stück und ..." Print "" Print "Oh nein !!.Du bist in eine Falle getappt. Print "" Print "Du stirbst !" Print "" Print "GAME OVER" WaitKey Default Print "Ungültige Wahl." End Select Until ok=True Repeat ok=False Print "Nun hast du 3 Wege vor dir." Print "" Print "1 - Links , 2 - Geradeaus , 3 - Rechts" Weg2% = Input("Wähle deinen Weg aus. (1/2/3): ") Print "" Select Weg2 Case 1 Print "Du gehst ein Stück und ..." Print "Oh nein.Ein Monster hat dich angegriffen." Print "Du stirbst an deinen Wunden." Print "" Print "GAME OVER" WaitKey Case 2 Print "Du gehst ein Stück und ..." Print "Zack! Die Pfeile fliegen dir um die Ohren" Print "Ein Pfeil erwischt dich !" Print "Du stirbst." Print "" Print "GAME OVER" WaitKey Case 3 Print "Du gehst ein Stück und ..." Print "Nichts passiert" Print "Glück gehabt.Du kannst weiter gehen" ok=True Default Print "Ungültige Entscheidung" End Select Until ok=True Repeat ok=False Print "" Print "Deine letzte Entscheidung liegt vor dir." Print "Entscheide gut !" Print "" Print "Du hast 2 Wege zur Auswahl." Print "" Print "1 - Links oder 2 - Rechts" Weg3% = Input("Wähle deinen Weg aus. (1/2): ") Print "" Select Weg3 Case 1 Print "Du gehst ein Stück und ... " Print "" Print "BOOM !! " Print "Eine Bombe explodiert" Print "Du bist Tod !" Print "" Print "GAME OVER" WaitKey Case 2 Print "Du gehst ein Stück und ... " Print "" Print "Du hast den Ausgang gefunden !" Print "Herzlichen Glückwunsch" ok=True Default Print "Ungültige Wahl" End Select Until ok=True WaitKey End l8er, PSY |
||
PSY LABS Games
Coders don't die, they just gosub without return |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ah ![]() Also für so ein Programm bietet sich Goto ![]() ![]() Möchtest du jedoch es "Wie ein Profi" lösen, würde ich direkt vom Hardgecodeten Eingabe/Ausgabe System wegehen und das ganze Extern ausführen (durch eine Simple Datei mit den Fragen und Zweigen oder aber Durch Lua-Script). Machs aber erstmal mit Sub-Programmen ![]() mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Jamagin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich nochmals!
Hier ein link zur Programmierung von Textadventures http://en.wikibooks.org/wiki/P...s_In_Basic lg. Jamagin |
||
Bevor du etwas neues beginnst, erledige das alte |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
100% Hardcoden ist halt - wie das Wort schon sagt - nicht eben Variabel. Code, der sich wiederholt packt man in Funktionen ![]() ![]() Überlege dir erst eine Strukur für dein Spiel, und wenn die engine steht, kannst du dich daran machen, den Inhalt zu produzieren. So wie es jetzt ist, kann man daraus kaum etwas durchschaubares oder wiederverwendbares machen. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Budikotch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Jamagin
Natürlich ist das Spiel nicht gut ![]() Ich bin ja auch noch nicht so weit.Das war eher als Test gedacht.Mir ist klar das ich da viel mehr Möglichkeiten,Lösungen etc. einprogrammieren muss. @Psy Danke. |
||
![]() |
Jamagin |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie Xeres schon sagte!
lg. Jamagin |
||
Bevor du etwas neues beginnst, erledige das alte |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group