Delphi-PRAXiS

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

Daniel 1337 4. Mai 2006 07:55


Memory Spiel
 
Hallo erstmal!

In der Schule machen wir gerade Projektarbeit. Wir ( ich und mein kollege ) haben uns entschieden ein Memory Spiel zu programmieren. Dabei haben wir uns überlegt mit Images zu arbeiten. Die Bilder sollen am Anfang zufällig in diese Images geladen werden , d.h bei jeden Spielstart sollen sie an einer anderen Stelle sitzen. Wir haben die Bilder schon in die Images geladen uns wollen jetzt einfach nur , das diese beim Programmstart sotiert werden. Wie machen wir das? Und wie können wir überprüfen ob 2 Images gleich sind(Memory Prinzip).

Danke im vorraus.

mkinzler 4. Mai 2006 07:59

Re: Memory Spiel
 
Zitat:

wie können wir überprüfen ob 2 Images gleich sind
Ich würde die eigentlichen Karten-Imgaes in eine ImageList speichern und in den Karten nur den Index in der Liste hinterlegen.
Am Start einer Runde würde ich durch Zufall die Werte in den einzelnen Karten setzen.

ToFaceTeKilla 17. Mai 2006 16:12

Re: Memory Spiel
 
Hallo erstmal!
Bei mir is die selbe situation wie beim ersteller des threads ^^.
Zitat:

Ich würde die eigentlichen Karten-Imgaes in eine ImageList speichern und in den Karten nur den Index in der Liste hinterlegen.
Am Start einer Runde würde ich durch Zufall die Werte in den einzelnen Karten setzen.
Wie kann ich auf die einzelnen Bilder in der imagelist zugreifen?
Kannst du das mal bitte in code formulieren?
Achso und wie mach ich dass das die Bilder immer zufällig geordnet werden aber nicht den selben platz belegen?

Thx & MfG

DP-Maintenance 18. Mai 2006 06:30

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Datenbanken" nach "Sonstige Fragen zu Delphi" verschoben.
Das ist ja eigentlich keine Datenbankfrage.

toms 18. Mai 2006 06:48

Re: Memory Spiel
 
Hallo

Ich würde keine TImageList verwenden sondern die Bilder direkt aus einzelnen Bild Dateien laden.
Dann kann jeder noch eigene Bilder hinzufügen und z.B neue Sets erstellen.

Ihr könntet so vorgehen:
1. Die Pfade zu den Bilden zuerst in eine TStringList laden (jeweils 2 Mal den gleichen Pfad da Paare)
2. Dann TStringList mischeln.

Delphi-Quellcode:
procedure ShuffleList(L: TStrings);
var
  i, j: integer;
begin
  Randomize;
  for i := 0 to L.Count - 1 do
  begin
    j := Random(L.Count);
    if i <> j then
      L.Exchange(i, j);
  end;
end;
3. Dynamisch die TImages erstellen. (Je nach Grösse)
Dem Hint könntet Ihr den Pfad zuweisen. Dann kann man einfach überprüfen, ob 2 Bilder gleich sind.

Klaus01 18. Mai 2006 06:57

Re: Memory Spiel
 
So kannst Du ein Bild (hier Icon)aus einer ImageList in einer
Imagekomponente darstellen.

Delphi-Quellcode:
Imagelist1.GetIcon(0,Image1.picture.Icon);
Um den Index (hier 0) zufällig zu wählen
solltest Du etwas mit random machen.

Wenn Dein Spielfeld mit images ausgelegt ist
hilf Dir findComponent richtig auf ein Imagex zuzugreifen.
Wie damit zu arbeiten ist, ist hier beschrieben: http://www.delphipraxis.net/internal...=findcomponent

In einem Array (spielfeldgröße) kannst Du hinterlegen welcher Bildindex auf welchem
Spielfeld liegt.

Grüße
Klaus

[edit] oder so wie toms geschrieben hat [/edit]


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