![]() |
AW: Memory-Spiel: Ideen
Zitat:
Also mache bitte für dein Login Problem einen neuen Thread auf. Zitat:
|
AW: Memory-Spiel: Ideen
Ja kann ich ja dann machen. Also in der Prüfung sind beim Klassen-programmieren dann immer diese schon als Klassendiagramm vorgegeben.
Deshalb weiß ich jetzt 0 womit ich anfangen soll, weil ich nur weiß das wir mit set, get und so gearbeitet haben. Aber was da im konkreten dann möglich und umsetzbar ist weiß ich auch nicht. TSpieler Zeitmessung dort mit rein oder doch bei TSpiel? Die Karten werden mit create benutzt und mit .free gelöscht? Wie mache ich das gefundene Karten nicht im Speicher rumchillen sondern wirklich weg sind. .Destroy macht ja auch nicht so das was es auf deutsch heißen soll. Noch dazu fehlt uns der Hilfekatalog bei Betriebssystemen über Windows 7 wird dieser nicht angezeigt |
AW: Memory-Spiel: Ideen
Zitat:
Zitat:
Zitat:
Zitat:
|
AW: Memory-Spiel: Ideen
Zitat:
ListBox oder die im Quelltext erstellte liste mit der man auch extern was abspeichern kann? |
AW: Memory-Spiel: Ideen
Jedes Kartenobjekt hat zum Beispiel die Eigenschaften: Grafik, Position. Verwaltet werden die mit einer Klasse TObjectList (Stellt Delphi schon zur Verfügung).
Die Klasse TSpielfeld geht jetzt die Objektliste durch und zeichnet die Grafik der Karte an die Position aus dem Karten Objekt. |
AW: Memory-Spiel: Ideen
Delphi-Quellcode:
Wo schreibt man denn die ObjectList hin, wenn sie angeblich bekannt ist?
var
FormSpiel: TFormSpiel; ObjektListe: TObjectList; Also nicht mit einem Panel Feld machen? ![]() Klassen in eine extra Unit? |
AW: Memory-Spiel: Ideen
Die KartenListe kann eine Eigenschaft von der Klasse TSpielfeld sein.
Wo und wie du die Karten anzeigst ist dir überlassen. Das können Images auf der Form sein. Das können einzelne Panels für jede Karte sein. Ob du für jede Klasse eine Unit nimmst, bleibt dir überlassen. Ich würde es aber empfehlen. |
AW: Memory-Spiel: Ideen
Wegen dem Memory was es von diesem Michael Puff gibt:
Delphi-Quellcode:
type
TCardStatus = (csBlind, csRevealed, csFound); //Wieso benötigt das keine Klasse? type TCard = class; TOnFlip = procedure(Card: TCard) of object; //Wieso benötigt das keine Klasse? Was macht OnFlip? TCard = class(TPanel) private FValue: Integer; //Bezeichnung der Karte erhalten, warum als Zahl? FStatus: TCardStatus; //verdeckt, aufgedeckt, gefunden FOnFlip: TOnFlip; //Was macht OnFlip? function GetValue: Integer; //Bezeichnung der Karte erhalten, warum als Zahl? procedure SetValue(Value: Integer); //Wieso muss der Kartenname geändert werden, warum als Zahl? function GetStatus: TCardStatus; procedure SetStatus(Value: TCardStatus); procedure Click(Sender: TObject); reintroduce; //Wird eine als virtual deklarierte Methode verdeckt (d.h. in einer abgeleiteten Klasse wird eine gleichnamige Methode deklariert, die nicht mit der override-Direktive versehen ist), gibt der Delphi-Compiler Warnungen aus. Um die Warnung zu verhindern, wird die neue Methode, die die virtuelle Methode verdecken soll, mit reintroduce gekennzeichnet. property OnFlip: TOnFlip read FOnFlip write FOnFlip; //Was macht "property" auch noch nie verwendet bisher. public constructor Create(Owner: TComponent); override; property Value: Integer read GetValue write SetValue; //Was macht "property" auch noch nie verwendet bisher. property Status: TCardStatus read GetStatus write SetStatus; //Was macht "property" auch noch nie verwendet bisher. end; |
AW: Memory-Spiel: Ideen
Vielleicht hilft das hier weiter:
![]() |
AW: Memory-Spiel: Ideen
Boah. Das Programm habe ich vor sieben oder mehr Jahren geschrieben.
Als erstes: Wenn dir Schlüsselwörter nichts sagen, guck bitte in der Hilfe oder nutze das Internet. Und hättest du dir mein Klassen Tutorial mal angeguckt, würden sich schon viele Fragen von selbst beantworten.
Delphi-Quellcode:
Weil es eine Typ-/Mengendeklaration ist.
TCardStatus = (csBlind, csRevealed, csFound); //Wieso benötigt das keine Klasse?
Delphi-Quellcode:
Weil es eine Ereignisdeklaration ist. Das Ereignis wird ausgelöst, wenn eine Karte aufgedeckt wird. Da muss ja was passieren: ist es die erste Karte oder die zweite? Sind sie gleich oder ungleich....
TOnFlip = procedure(Card: TCard) of object; //Wieso benötigt das keine Klasse? Was macht OnFlip?
Delphi-Quellcode:
Weil ich keine Lust hatte mich mit Grafiken runzuschlagen.
FValue: Integer; //Bezeichnung der Karte erhalten, warum als Zahl?
Delphi-Quellcode:
Siehe oben. Der Einfachheithalber habe ich Zahlen benutzt anstatt Grafiken.
function GetValue: Integer; //Bezeichnung der Karte erhalten, warum als Zahl?
Delphi-Quellcode:
Die Karte muss ja einen Wert erhalten bzw. eine Grafik.
procedure SetValue(Value: Integer); //Wieso muss der Kartenname geändert werden, warum als Zahl?
Delphi-Quellcode:
Ist der Kommentar von dir oder von mir? :shock: Aber Hilfe lesen hilft.
procedure Click(Sender: TObject); reintroduce; //Wird eine als virtual deklarierte Methode verdeckt (d.h. in einer abgeleiteten Klasse wird eine gleichnamige Methode deklariert, die nicht mit der override-Direktive versehen ist), gibt der Delphi-Compiler Warnungen aus. Um die Warnung zu verhindern, wird die neue Methode, die die virtuelle Methode verdecken soll, mit reintroduce gekennzeichnet.
Delphi-Quellcode:
Siehe Hilfe oder jedes beliebige Tutorial über Klassen.
property
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz