unit Schulprojektbearbeitet;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, jpeg;
type
TRaum =
class
Beschreibung :
string;
FotoReferenz :
String;
Gegenstand :
String;
Norden, Sueden, Westen, Osten : TRaum;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
procedure setAusgaenge (norden, sueden, westen, osten, hoch, runter : TRaum);
end;
TRucksack =
Class
Item :
Array [1..5]
of String;
procedure hinzufuegen (S:
String);
function ausgeben :
String;
Function voll: boolean;
end;
TForm2 =
class(TForm)
Edit1: TEdit;
Button1: TButton;
Memo1: TMemo;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form2: TForm2;
aktuellerRaum: TRaum;
Garten, Flur, Fluroben, Flur2, Flur3, Maggiesraum, Lisasraum, Bartszimmer, Elternschlafzimmer, Badezimmer, Badezimmer2, Kueche, TVRoom, Esszimmer, Wohnzimmer, Eingang : TRaum;
Norden, Sueden, Westen, Osten: TRaum;
Rucksack: TRucksack;
implementation
begin
{$R *.dfm}
procedure TRucksack.hinzufuegen ( S:
String);
var i : integer ;
begin
i := 1;
while (i <= 5)
do
begin
if (self.item[i]=S)
then
break
else
if self.item[i]= "
then
begin
self.item[i] = s;
break
end;
inc(i);
end;
end;
function TRucksack.ausgeben :
string;
var i: integer;
begin
result := " ;
i:=1;
while (i <=5)
do
begin
if(self.item[i] = ")
then
break
else
result := result + self.item[i] + '
,';
inc(i);
end;
end;
function TRucksack.voll : boolean;
var i, j : integer ;
begin
result := false;
j:= 0;
for i := 1
to 5
do
if (self.item[i]<> ")
then
inc(j);
if(j=5)
then
result := true;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
Raumwechsel('
Norden');
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
Rucksack:=TRucksack.create
memo1.lines.add('
Herzlich Willkommen in der Welt der Simpsons');
Garten := TRaum.Create;
Eingang := TRaum.Create;
Flur := TRaum.Create;
Fluroben := TRaum.Create;
Kueche := TRaum.Create;
TVRoom := TRaum.Create;
Wohnzimmer := TRaum.Create;
Esszimmer := TRaum.Create;
Flur2 := TRaum.create;
Flur3 := TRaum.Create;
Maggiesraum := TRaum.Create;
Lisasraum := TRaum.Create;
Bartszimmer :=TRaum.Create;
Badezimmer := TRaum.Create;
Badezimmer2 := TRaum.create;
Elternschlafzimmer :=TRaum.Create;
Garten.Beschreibung :=('
Nun stehen Sie vor dem Haus der Simpsons.Treten Sie doch ein');
Eingang.Beschreibung :=('
Wie Sie sehen werden Sie bereits erwartet');
Flur.Beschreibung :=('
Sie stehen nun im Flur.Wohin wollen Sie als nächstes?');
Fluroben.Beschreibung :=('
Sie haben den ersten Stock des Hauses betreten');
Kueche.Beschreibung :=('
Haben Sie Hunger? Dann sind Sie hier genau richtig, denn Sie sind in der Küche gelandet');
Esszimmer.Beschreibung :=('
Sie haben das Esszimmer betreten');
Wohnzimmer.Beschreibung := ('
Sie befinden sich nun im gemütlichstem Zimmer des Hauses , dem Wohnzimmer');
TVRoom.Beschreibung :=('
Erkennen Sie dieses Zimmer vielleicht wieder? Es ist wohl das bekannteste der Simpsonsfamilie');
Fluroben.Beschreibung :=('
Nun stehen Sie im ersten Stock. Wohin soll es nun gehen?');
Flur2.Beschreibung :=('
Nun stehen sie weiter Rechts im Flur und haben die Wahl zwischen dem Badezimmer und dem Elternschlafzimmer');
Flur3.Beschreibung :=('
Sie haben sich dazu entschieden, weiter links in den Flur hinein zu gehen und haben nun die Wahl zwischen Barts Zimmer und dem zweiten Badezimmer')
Bartszimmer.Beschreibung := ('
Hier herrscht das Chaos.Sind Sie sicher ,dass sie hier hin wollten?');
Lisaszimmer.Beschreibung :=('
Lust auf eine Runde Saxophon? Lisas Zimmer ist perfekt dafür!');
Elternschlafzimmer.Beschreibung := ('
Hier im Elternschlafzimmer haben Sie ja eigentlich nichts zu suchen , aber wir drücken mal ein Auge zu');
Badezimmer.Beschreibung := ('
Nach langem Suchen haben sie endlich das erste der zwei Badezimmer gefunden');
Badezimmer2.Beschreibung := ('
Toilette frei, hier kommt das zweite Badezimmer');
Maggieszimmer.Beschreibung := ('
Achtung, ein freilaufendes Baby, herumliegende Schnuller und Legowurfattacken gehören hier zur Standarteinrichtung');
Garten.setAusgaenge(Eingang,
nil,
nil,
nil,
nil,
nil);
Eingang.setAusgaenge(Flur, Garten,
nil,
nil,
nil,
nil);
Flur.setAusgaenge(Kueche, Eingang, Wohnzimmer, Esszimmer ,Fluroben ,
nil);
Wohnzimmer.setAusgaenge(TVRoom,
nil,
nil, Flur,
nil,
nil);
TVRoom.setAusgaenge(
nil, Wohnzimmer,
nil, Kueche,
nil,
nil);
Kueche.setAusgaenge
nil, Esszimmer, TVRoom,
nil,
nil,
nil);
Esszimmer.setAusgaenge(Kueche,
nil, Flur,
nil,
nil,
nil);
Fluroben.setAusgaenge( Maggiesraum, Lisasraum, Flur2, Flur3,
nil, Flur);
Flur2.setAusgaenge(Badezimmer, Elternschlafzimmer, Fluroben,
nil,
nil,
nil);
Flur3.setAusgaenge(Badezimmer2, Bartszimmer,
nil, Fluroben,
nil,
nil);
Flur.Gegenstand:= '
';
Fluroben.Gegenstand:= '
';
Flur2.Gegenstand:= '
';
Flur3.Gegenstand:= '
';
Maggiesraum.Gegenstand:= '
blauer Schnuller';
Lisasraum.Gegenstand:= '
Saxophon';
Bartszimmer.Gegenstand:= '
Krusty-der-Clown-Aufziehpuppe';
Elternschlafzimmer.Gegenstand:= '
';
Badezimmer.Gegenstand := '
';
Badezimmer2.Gegenstand := '
';
Garten.Gegenstand := '
';
Eingang.Gegenstand := '
';
Kueche.Gegenstand := '
Mit rosa Glassur überzogener Donut';
TVRoom.Gegenstand := '
Duffbierdose';
Esszimmer.Gegenstand := '
';
Kueche.Gegenstand := '
';
Wohnzimmer. Gegenstand := '
';
aktuellerRaum := Garten ;
Garten.Fotoreferenz := '
Bilder/Klassenraum.jpg';
Eingang.Fotoreferenz := '
Bilder/Eingang.jpg';
Flur.Fotoreferenz := '
Bilder/Flur.jpg';
Kueche.Fotoreferenz := '
Bilder/Kueche.jpg';
Esszimmer.Fotoreferenz := '
Bilder/Esszimmer.jpg';
TVRoom.Fotoreferenz := '
Bilder/TVRoom.jpg';
Wohnzimmer.Fotoreferenz := '
Bilder/Wohnzimmer.jpg';
Maggiesraum.Fotoreferenz := '
Bilder/Maggiesraum.jpg';
Lisasraum.Fotoreferenz := '
Bilder/Lisasraum.jpg';
Elternschlafzimmer.Fotoreferenz := '
Bilder/Elternschlafzimmer.jpg';
Badezimmer.Fotoreferenz := '
Bilder/Badezimmer1.jpg'
Bartszimmer.Fotoreferenz := '
Bilder/Bartszimmer.jpg';
Badezimmer2.Fotoreferenz :='
Bilder/Badezimmer2.jpg';
Image1.Picture.LoadFromFile(aktueller.Raum.Fotorefetenz);
end;
procedure TRaum.setAusgaenge (norden, sueden, westen, osten : TRaum);
begin
self.Norden := norden;
self.Sueden := sueden;
self.westen := westen;
self.osten := osten;
end;
procedure TForm2.Raumwechsel (Eingabe:
String);
begin
Memo1.clear;
Rucksack.hinzufuegen(aktuellerRaum.Gegenstand);
Eingabe := Edit1.text;
if (Eingabe = '
Norden')
and (aktuellerRaum.Norden <>
nil)
then aktuellerRaum := aktuellerRaum.Norden;
if (Eingabe = '
Sueden')
and (aktuellerRaum.Sueden <>
nil)
then aktuellerRaum := aktuellerRaum.Sueden;
if (Eingabe = '
Westen')
and (aktuellerRaum.Westen <>
nil)
then aktuellerRaum := aktuellerRaum.Westen;
if (Eingabe = '
Osten')
and (aktuellerRaum.Osten <>
nil)
then aktuellerRaum := aktuellerRaum.Osten;
Memo1.Lines.add(aktuellerRaum.Beschreibung);
Memo1.Lines.add('
');
Memo1.linesadd('
Im Rucksack enthalten:' + Rucksack.ausgeben);
if Rucksack.voll
then
Memo1.lines.add('
Glückwunsch, Sie haben alle Gegenstände gefunden');
Memo1.lines.add('
');
Memo1.Lines.add('
Wählen Sie die gewünchte Richtung in die Sie gehen möchten');
if aktuellerRaum.Norden <>
nil then memo1.lines.add('
--> Norden');
if aktuellerRaum.Sueden <>
nil then memo1.Lines.add('
--> Sueden');
if aktuellerRaum.Westen <>
nil then memo1.Lines.add('
--> Westen');
if aktuellerRaum.Osten <>
nil then memo1.lines.add ('
--> Osten');
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
Raumwechsel('
Osten');
end;
procedure TForm2.Button4Click(Sender: TObject);
begin
Raumwechsel('
Westen');
end;
procedure TForm2.Button5Click(Sender: TObject);
begin
Raumwechsel('
Sueden');
end;
procedure TForm2.Button1Click(Sender: TObject);
var Eingabe :
String;
begin
aktuellerRaum := Garten;
memo1.clear;
Eingabe := Edit1.text;
if (Eingabe = '
Norden')
and (aktuellerRaum.Norden <>
nil)
then aktuellerRaum := aktuellerRaum.Norden;
if (Eingabe = '
Sueden')
and (aktuellerRaum.Sueden <>
nil)
then aktuellerRaum := aktuellerRaum.Sueden;
if (Eingabe = '
Westen')
and (aktuellerRaum.Westen <>
nil)
then aktuellerRaum := aktuellerRaum.Westen;
if (Eingabe = '
Osten')
and (aktuellerRaum.Osten <>
nil)
then aktuellerRaum := aktuellerRaum.Osten;
Memo1.Lines.add(aktuellerRaum.Beschreibung);
if aktuellerRaum.Norden <>
nil then memo1.lines.add('
--> Norden');
if aktuellerRaum.Sueden <>
nil then memo1.Lines.add('
--> Sueden');
if aktuellerRaum.Westen <>
nil then memo1.Lines.add('
--> Westen');
if aktuellerRaum.Osten <>
nil then memo1.lines.add ('
--> Osten');
Memo1.Lines.add(aktuellerRaum.Beschreibung);
end;
end.