Hallo,
ich soll demnächst ein Memory-Spiel mit sechs Karten programmieren. Die Karten sollen als Image dargestellt werden. Dazu habe ich ein paar Hilfestellungen bekommen (Im Anhang). Aber irgenwie verwirrt mich das alles. So eine Aufgabenstellung für Anfänger finde ich persönlich ziemlich übertrieben...
Hier erstmal mein bisheriger Quellcode:
1. Bei dem Spiel muss ich zuerst die Karten festlegen
Code:
var
Form1: TForm1;
Bild0, Bild1, Bild2, Anzahl, zufall, Nummer, i, k: Integer;
Bild: Array[0..2] of String; //Bildernamen
Platz: Array[0..5] of Integer; //Bildnummer
Name0, Name1, Name2: String; //Imagename für Deckblatt
procedure TForm1.FormCreate(Sender: TObject);
begin
// verdeckt
Image1.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
Image2.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
Image3.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
Image4.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
Image5.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
Image6.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
// offen
Bild[0]:= 'Bilder/Bild1.BMP';
Bild[1]:= 'Bilder/Bild2.BMP';
Bild[2]:= 'Bilder/Bild3.BMP';
...
2. Die Karten kontrollieren
Code:
...
Platz[0]:= 0;
Platz[1]:= 1;
Platz[2]:= 2;
Platz[3]:= 0;
Platz[4]:= 1;
Platz[5]:= 2;
end;
3. Die Karten mischen > "auslegen"
Code:
randomize; // Zufallszahlengenerator aktivieren
while Anzahl > 0 do { Die Karten mischen }
begin
zufall := random(Anzahl)+1; // eine Karte aus dem Stapel ziehen
Nummer[Anzahl] := Platz[zufall]; // und auf letzten freien Platz auslegen
for k := zufall to Anzahl-1 do // restliche Karten einen Platz nach vorn
begin
Platz[k] := Platz[k+1];
end;
Anzahl := Anzahl - 1; // Der Stapel ist nun kleiner geworden
end;
4. Spielen (Gewünschte Karten umdrehen und danach auswerten [OK/Karten wieder umdrehen])
Komme ich nun zur Hilfestellungen:
- Wie verwende ich z.B. den Image.Tag wie auf Seite 4 gefordert?
- Was bedeutet das "i:= StrToInt(TImage(sender).Name[6]);"?
"Name" ist doch überhaupt nicht definiert, sondern nur "Name1, Name2: String;" auf Seite 2
Gibt es auch eine einfachere verständlichere Variante oder könnt ihr es mir besser erklären, was die Hilfestellung mir sagen soll?
Gruß Saul