AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Spielfeld mit Klassen als Felder

Ein Thema von freak4fun · begonnen am 16. Mai 2006 · letzter Beitrag vom 16. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Spielfeld mit Klassen als Felder

  Alt 16. Mai 2006, 07:45
Hallo ,
ich möchte einen Bomberman-Klon programmieren, allerdings steh ich jetzt vor einem Problem. Ich möchte ein Spielfeld erstellen mit verschiedenen Klassen als Feldern. In einem Array kann man ja nur gleiche Klassen verwalten. Wie kann ich das also anders anstellen?

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Spielfeld mit Klassen als Felder

  Alt 16. Mai 2006, 07:49
Zitat von freak4fun:
Spielfeld erstellen mit verschiedenen Klassen als Feldern.
Was bezeichnest Du den als Klassen?

Wie wäre es mit:

Delphi-Quellcode:

type
    TFeldtyp = (nix,Wand, Kirsche, Taler, Bombe);

var
    Feld : array[0..80,0..200] of TFeldtyp;
Frank
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Spielfeld mit Klassen als Felder

  Alt 16. Mai 2006, 07:57
Delphi-Quellcode:
type
TFeld = class
  end;
TWand = class (TFeld)
  end;

TSpielfeld = array[0..1,0..1] of TFeld;

var
  S: TSpielFeld;

S[0,0] := TWand.Create; //etc.
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Spielfeld mit Klassen als Felder

  Alt 16. Mai 2006, 07:59
Hi,

wenn du tatsächlich Klassen im OOP-Sinne meinst, dann könntest du sie sehr wohl in einem Array verwalten, wenn sie
-entweder von einer gemeinsamen Oberklasse (abstrakte "Feld"-Klasse) abstammen
-oder ein gemeinsames Interface implementieren.

Gruß
Christian

//edit:
Ja, kam ein roter Kasten. Ich lass es trotzdem mal stehen--Interface hat schließlich noch keiner gesagt
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: Spielfeld mit Klassen als Felder

  Alt 16. Mai 2006, 08:10
Zitat von Kroko1999:
Delphi-Quellcode:
type
TFeld = class
  end;
TWand = class (TFeld)
  end;

TSpielfeld = array[0..1,0..1] of TFeld;

var
  S: TSpielFeld;

S[0,0] := TWand.Create; //etc.
Ja, so hatte ich es bis jetzt auch. Allerdings hab ich mir gedacht, dass feste Steine keine Items enthalten können und auch andere Sachen nicht. Und der Spielstein wiederum hat wieder andere Eigenschaften. Daher brauchen ja nicht alle Steine auf dem Feld diese Eigenschaften. Die Klasse TFeld müsste ja dann alle Eigenschaften beinhalten, oder seh ich das falsch?

MfG
greak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Spielfeld mit Klassen als Felder

  Alt 16. Mai 2006, 08:14
Nein TFeld ist "nur" eine Dummy Klasse...

Die braucht garnix..

Frank
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Spielfeld mit Klassen als Felder

  Alt 16. Mai 2006, 08:14
Du kannst auch ein zweistufiges Veerebungsschema für die Steine entwerfen, wobei die übergeordnete Klasse die Eigenschaften des Spielsteins nicht haben. In diesem fall kannst du aber auf diesen Aufwand veruchten, da sich die Anzhal der Eigenschaften wohl im Rahemn hält.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: Spielfeld mit Klassen als Felder

  Alt 16. Mai 2006, 10:01
Zitat von Kroko1999:
Delphi-Quellcode:
type
  TFeld = class
  
    Position: TPoint;
  end;
  
  TBomb = class (TFeld)
   
    ExploTime: Integer;
  end;

TSpielfeld = array[0..1,0..1] of TFeld;

var
  S: TSpielFeld;

S[0,0] := TBomb.Create; //etc.
Wenn ich das jetzt so habe kann ich auf die ExploTime nicht zugreifen, bzw. das Objekt Bomb nicht erstellen, weil das TFeld die ExploTime nicht kennt. Oder seh ich das falsch?
ICh hab leider kein Delphi hier um das zu testen.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Spielfeld mit Klassen als Felder

  Alt 16. Mai 2006, 10:23
if S[0,0] is TBomb then TBomb(S[0,0]).ExploTime := 5;
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

Re: Spielfeld mit Klassen als Felder

  Alt 16. Mai 2006, 14:06
Das geht tatsächlich. Aber da ergibt sich ein neues Problem. Wenn ich das Spielfeld erstelle sind ja noch keine Bomben auf dem Feld. Wenn ich dann das Feld mit TFeld erstellt hab und dann ein TBomb draus mache, muss ich ja erst das Feld zerstören, das neue Feld erstellen und dann die Bumbenzeit setzen. Wenn die Bombe explodiert muss das wieder alles rückgängig gemacht werden. Geht das nicht einfacher? Ich bin für alle Ideen offen.
Danke euch schonmal.

MfG
ein ratloser freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz