Text Adventure Frage (Anfänger)

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
sh0x
Beiträge: 3
Registriert: Do 19. Dez 2013, 16:51

Text Adventure Frage (Anfänger)

Beitrag von sh0x »

Vor ab ich hab morgen Informatikunterricht und wir sollen ein Textadventure machen. Es soll nicht auf visueller Basis einfach nur einen Text. Ich hab mir das so gedacht das es einen Knopf geben soll der das Spiel startet. Dann wird immer eine Textbox mit der Story ausgegeben und dann soll man wählen können über zwei Knöpfe zwischen Option 1 und Option 2, die dann jeweils wieder eine Textbox ausgeben und dann halt immer so weiter bis man zum Ende kommt.

Jetzt ist die Frage wie stell ich das an ? Unser Lehrer erklärt uns eigentlich gar nichts bis jetzt haben wir immer nur Lösungsblätter bekommen und haben das abgetippt. Wir haben weder eine Liste mit Befehlen noch können die meisten von uns welche. Es gibt 2 Leute die mit Lazarus programmieren können, aber auch eigentlich gar nicht helfen.

Würde mich über Hilfe freuen, falls bis morgen überhaupt noch einer Anwortet :(

Benutzeravatar
theo
Beiträge: 10867
Registriert: Mo 11. Sep 2006, 19:01

Re: Text Adventure Frage (Anfänger)

Beitrag von theo »

Da du bestimmt nicht möchtest, dass wir für dich die Hausaufgaben lösen, zeige ich dir wo du Informationen bekommen kannst.
http://www.lazarusforum.de/viewtopic.php?f=21&t=79

Wenn du konkretere Fragen hast, kannst du die gerne hier stellen.

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Text Adventure Frage (Anfänger)

Beitrag von Komoluna »

falls es dich interessiert, es gibt ein kleines Konsolenabenteuer in Pascal mit quellcode.
Da kannst du dir ja mal angucken, wie man z.B. eine Auswahl vom Spieler abfragt, etc...

http://www.pp4s.co.uk/main/prog-trapped01.html

Falls du am Code was nicht verstehst, kannst du ja uns fragen(dazu ist das Forum schließlich da :wink: )

MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Text Adventure Frage (Anfänger)

Beitrag von Michl »

sh0x hat geschrieben:Ich hab mir das so gedacht das es einen Knopf geben soll der das Spiel startet. Dann wird immer eine Textbox mit der Story ausgegeben und dann soll man wählen können über zwei Knöpfe zwischen Option 1 und Option 2, die dann jeweils wieder eine Textbox ausgeben und dann halt immer so weiter bis man zum Ende kommt.
Knopf heisst Button. Also diese TButtons einfach auf Deine Main-/Hauptform platzieren und als Textbox könntest Du ein TMemo auf Deine Form platzieren. Deine Story würde ich der Einfachheit halber in ein Array of String speichern, wo Du entsprechend Deiner Buttons den enstprechenden String ausliest und in dem TMemo darstellst.

Code: Alles auswählen

const
  Story: Array[0..3] of String=
    ('Es war einmal ein Lehrer, der wollte ein Adventure, soll es das geben?!',
     'Ja es gibt ein Abenteuer',
     'Nein es gibt kein Abenteuer',
     'Das wars');
...
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Text:=Story[0];  //hier den String wählen
end;

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

sh0x
Beiträge: 3
Registriert: Do 19. Dez 2013, 16:51

Re: Text Adventure Frage (Anfänger)

Beitrag von sh0x »

Ich weiß das es Button heißt :D Wir haben schon ein paar Sachen gemacht, aber da hat der Lehrer wie gesagt uns Lösungsblätter reingegeben. Der Lehrer meinte wir sollten das mit If-Schleifen machen das wäre am einfachsten. Ich möchte auch nicht das ihr für mich die Arbeit macht, ich hab nur keine Ahnung wie ich anfangen soll :(

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Text Adventure Frage (Anfänger)

Beitrag von Michl »

sh0x hat geschrieben:ich hab nur keine Ahnung wie ich anfangen soll
Michl hat geschrieben:diese TButtons einfach auf Deine Main-/Hauptform platzieren und als Textbox könntest Du ein TMemo auf Deine Form platzieren
dann doppelklickst Du auf einen Button, es wird im Quelltext eine Procedure "TForm1.Button1Click" erstellt, dort kannst Du entsprechend Deines Wunsches (mittels "if" oder "case") Dir ein String im Memo anzeigen lassen. s.O.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

sh0x
Beiträge: 3
Registriert: Do 19. Dez 2013, 16:51

Re: Text Adventure Frage (Anfänger)

Beitrag von sh0x »

Ich werde morgen Mal schauen ob ich das hinbekomme, aber das hat mir aufjedenfall schon Mal geholfen :) Ich hab den Kurs ja gewählt um Programmieren besser kennen zu lernen, aber unserer Lehrer sagt dann:" Ja programmiert einen Einarmigen Banditen, hier habt ihr die Lösungen." Dann brauchen wir nur noch den Quellcode abschreiben und das Programm läuft ... Der Lerneffekt ist davon gleich null.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2807
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Text Adventure Frage (Anfänger)

Beitrag von m.fuchs »

sh0x hat geschrieben:[...] Unser Lehrer erklärt uns eigentlich gar nichts bis jetzt haben wir immer nur Lösungsblätter bekommen und haben das abgetippt. Wir haben weder eine Liste mit Befehlen noch können die meisten von uns welche.[...]
sh0x hat geschrieben:[...] Der Lehrer meinte wir sollten das mit If-Schleifen machen das wäre am einfachsten.[...]
Wenn der Lehrer so offenkundig schlechten Unterricht macht (insbesonders wenn er den Ausdruck "If-Schleife" verwendet), solltest du dich an die Schulleitung wenden. Natürlich nur wenn du das belegen kannst und sich das ganze nicht in deiner Fantasie abspielt. Sorry, dass ich das misstrauisch bin, aber derlei Klagen schlagen hier häufig auf. Man müsste daraus schließen, dass 70% aller Informatiklehrer unfähig sind. Das fände ich schon unrealistisch.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

Re: Text Adventure Frage (Anfänger)

Beitrag von Marsmännchen »

sh0x hat geschrieben:Ich weiß das es Button heißt :D Wir haben schon ein paar Sachen gemacht, aber da hat der Lehrer wie gesagt uns Lösungsblätter reingegeben. Der Lehrer meinte wir sollten das mit If-Schleifen machen das wäre am einfachsten. Ich möchte auch nicht das ihr für mich die Arbeit macht, ich hab nur keine Ahnung wie ich anfangen soll :(
Hallo,
ich bin ja selbst in Pascal ein Anfänger. Aber wenn euer Lehrer sagt: bastelt mir mal schnell ein Adventure, dann gehe ich davon aus, dass das Ding weder veröffentlichbar noch von besonderer Spieltiefe sein muss. Interessant wäre in diesem Zusammenhang auch, euren Fach-Level zu kennen. Welche Pascal-Konstrukte habt ihr denn schon besprochen? Für ein simples Textadventure kann man mit if-Verzweigungen schon ein paar Aktionen basteln, bevor es zu unübersichtlich wird.

Mein Vorschlag wäre: Erstmal die Geschichte bzw. der Quest, der zu lösen ist. Das sollte was ganz Simples sein, schließlich geht es hier nur ums Prinzip. So nach dem Motto: Der Held muss erst Schwert und Schild finden, dann kann er den Drachen töten. Für eine simple Anwendung reicht das.

In der Hauptapplikation eine Schleife zur Texteingabe. Sobald der Spieler Text eingegeben hat, wird dieser geprüft (an eigene Prozedur auslagern?). Wenn zB 'N' eingegeben wurde, dann versucht man, den Helden einen Schritt nach oben zu bewegen (Wenn ich die Heldenposition durch zwei Integerwerte x und y darstelle, dann muss hier y = y-1 erfolgen, solange man nicht schon am Nordrand der Welt steht).
Dann muss gecheckt werden, ob auf dem neuen Feld da was ist (das Schwert oder der Drache oder nur Gras?) so zB if x = 5 and y = 6 then DracheGefunden;
Dann muss der Spieler informiert werden, was durch seine Aktion passiert ist.
Sind irgendwelche Spielende-Bedingungen erfüllt (Drache tot? Spieler tot?)
Da stecken eine Menge "if's" drin und die anderen hier im Forum wälzen sich wahrscheinlich schon auf dem Boden vor lachen, wie ich mir das so laienhaft vorstelle. Aber nachdem, was du so über das Niveau des Lehrers geschrieben hast, müsste das eigentlich reichen.

LG
Marsmännchen
Ich mag Pascal...

Antworten