Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Memory (https://www.delphipraxis.net/64171-memory.html)

Informatik_Doppelstundler 28. Feb 2006 14:33


Memory
 
Hi! Ich möchte gerne ein Memory-Spiel programmieren. Ich hatte mir überlegt, die bilder halt mit random auf beispielsweise 8 felder zu verteilen, nu hab ich aber das problem, dass ja jedes bild nur 2 mal vorkommen darf und ich habe keine ahnung und auch keinen ansatz, wie man das programmieren könnte.
Könnt ihr mir da helfen?

mkinzler 28. Feb 2006 14:37

Re: Memory
 
Z.B. mit einem array in dem du für jede Karte/Bild du vermerkst wie oft sie schon zugeordnet worden ist.

Informatik_Doppelstundler 1. Mär 2006 09:38

Re: Memory
 
öhm...danke...aber wie??

Klaus01 1. Mär 2006 09:45

Re: Memory
 
.. indem Du die Bilder eindeutig kenntlich machst und wenn Du die Bidler verteilst
Du nachschaust ob das Bild schon zweimal vorhanden ist.
Oder Du machst Dir ein Array für jedes Bild ein Feld und in dem Feld vermerkst
Du wenn das Bild in das Memoryfeld verteilt wurde.

Grüße
Kalus

marabu 1. Mär 2006 10:05

Re: Memory
 
Hallo.

Ich würde mir im Abschnitt private der Form eine Liste deklarieren:

Delphi-Quellcode:
uses // ...
  Contnrs;

type
  TGameForm = class(TForm)
    // ...
    procedure FormCreate(Sender: TObject);
  private
    Cards: TObjectList;
  end;
Im Ereignis OnCreate() der Form würde ich alle Image-Komponenten auf der Form einsammeln:

Delphi-Quellcode:
procedure TGameForm.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  Cards := TObjectList.Create;
  for i := 0 to Pred(ControlCount) do
    if Controls[i] is TImage then
      Cards.Add(Controls[i]);
end;
Mit einer Shuffle-Routine (hint) würde ich diese Liste durchmischen. In einer ImageList habe ich 4 Bilder (Index 0 bis 3) für meine 8 Karten und vielleicht ein zusätzliches (index 4) für den Kartenrücken. Der TImage-Komponente mit dem Index i ordne ich dann das Bild mit dem Index i mod 4 zu. Ich höre hier mal auf - du willst das Programm bestimmt selber schreiben...

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 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