Thema: Delphi Hilfe mit Textadventure

Einzelnen Beitrag anzeigen

MW28

Registriert seit: 8. Jan 2015
5 Beiträge
 
#13

AW: Hilfe mit Textadventure

  Alt 9. Jan 2015, 13:51
Vielen Dank für die Hilfe. Ich hab den Code jetzt auf das hier verändert:
Delphi-Quellcode:
unit DelphiSpiel;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, URaum, ExtCtrls, StdCtrls, JPEG ;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Edit1: TEdit;
    Button1: TButton;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    
  public

  end;

var
  Form1: TForm1;
  info_aktuellerRaum : string ;
  info_startRaum : string ;
  info_raum1 : string ;
  info_raum2 : string ;
  info_raum3 : string ;
  aktuellerRaum , startRaum , raum1 , raum2 , raum3 : TRaum ;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
image1.canvas.create ;

startRaum := TRaum.Create ;
raum1 := TRaum.Create ;
raum2 := TRaum.Create ;
raum3 := TRaum.Create ;
aktuellerRaum := TRaum.Create ;

startRaum.setAusgang(raum1,nil,nil,nil,'Dies ist der Start. Hier geht es nur in eine Richtung');
raum1.setAusgang(raum2,nil,raum3,nil,'dies ist raum1');
raum2.setAusgang(nil,raum1,nil,nil,'dies ist raum2');
raum3.setAusgang(nil,nil,nil,raum1,'dies ist raum3');
aktuellerRaum.setAusgang(nil,nil,nil,nil,'fehler');

info_startRaum := 'Dies ist der Start. Hier geht es nur in eine Richtung' ;
info_raum1 := 'dies ist raum1' ;
info_raum2 := 'dies ist raum2' ;
info_raum3 := 'dies ist raum3' ;
info_aktuellerRaum := 'fehler'  ;

aktuellerRaum := startRaum ;
info_aktuellerRaum := info_startRaum ;

Memo1.Clear ;
Memo1.Lines.add(aktuellerRaum.Finfo) ;
if aktuellerRaum.Fnorth <> nil then Memo1.Lines.add('---->Norden') ;
if aktuellerRaum.Fsouth <> nil then Memo1.Lines.add('---->Süden') ;
if aktuellerRaum.Feast <> nil then Memo1.Lines.add('---->Osten') ;
if aktuellerRaum.Fwest <> nil then Memo1.Lines.add('---->Westen') ;
if startRaum.Fnorth = nil then Memo1.Lines.add('attribute wurden nicht richtig festgelegt');


end;

procedure TForm1.Button1Click(Sender: TObject);
var eingabe : string;
begin
eingabe := edit1.Text ;
if (eingabe = 'Norden')and (aktuellerRaum.Fnorth <> nil) then aktuellerRaum := aktuellerRaum.Fnorth ;
if (eingabe = 'Süden')and (aktuellerRaum.Fsouth <> nil) then aktuellerRaum := aktuellerRaum.Fsouth ;
if (eingabe = 'Osten')and (aktuellerRaum.Feast <> nil) then aktuellerRaum := aktuellerRaum.Feast ;
if (eingabe = 'Westen')and (aktuellerRaum.Fwest <> nil) then aktuellerRaum := aktuellerRaum.Fwest ;

Memo1.clear ;
Memo1.Lines.add(aktuellerRaum.Finfo);

if aktuellerRaum.Fnorth <> nil then Memo1.Lines.add('---->Norden') ;
if aktuellerRaum.Fsouth <> nil then Memo1.Lines.add('---->Süden') ;
if aktuellerRaum.Feast <> nil then Memo1.Lines.add('---->Osten') ;
if aktuellerRaum.Fwest <> nil then Memo1.Lines.add('---->Westen') ;

end;

end.
Delphi-Quellcode:
unit URaum;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, JPEG;

type
  TRaum = class
   Fnorth,Fsouth,Feast,Fwest : TRaum;
   Finfo : string;
   procedure setAusgang(Anorth,Asouth,Aeast,Awest: TRaum; Ainfo :string);
   Constructor Create;

   private

   public

end;

implementation
Constructor TRaum.Create;
begin

end;

procedure TRaum.setAusgang(Anorth,Asouth,Aeast,Awest : TRaum ; Ainfo :string) ;
begin
self.Fnorth := Anorth;
self.Fsouth := Asouth;
self.Feast := Aeast;
self.Fwest := Awest;
self.Finfo := Ainfo;
end;
end.
Funktioniert gut soweit. Ich komm vermutlich jetzt wieder alleine weiter. Nochmal vielen Dank.
  Mit Zitat antworten Zitat