Entwickler-Ecke

Sonstiges (Delphi) - Memory-Spiel


teddy53 - So 01.07.07 17:00
Titel: Memory-Spiel
Hallo!

ich möchte ein Memory-Spiel programmieren und komme an einer Stelle nicht weiter.

und zwar geht es darum, dass jede zahl von 1-8 2mal zufällig erscheinen soll und somit das bild für jede karte festzulegen.

wie setze ich so etwas um? Könnt ihr mir helfen?

Gruß


ps. bin mir nicht sicher, ob ich meine frage im richtigen bereich stelle, wenn nicht -sorry!


Chryzler - So 01.07.07 17:04

Nun, du könntest ja ein Array erstellen, das die Wert 1 bis 8 zweimal enthält, also Größe 16. Dann kannst du für jede Karte ein zufälliges Element des Array per Random herauspicken, und danach aus dem Array löschen.


teddy53 - So 01.07.07 17:19

wie bekomme ich dass denn hin, dass jede zahl wirklich nur 2 mal auftaucht?
wie setzt ich das um? kannst du mir vielleicht den quelltext dazu schicken??? wäre echt super klasse!


Chryzler - So 01.07.07 17:44


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var  
  // hoffe mal, dass das syntaktisch korrekt ist :|
  a: array[1..16of Integer;
  k, i: Integer;
begin
  for i := 1 to 16 do
    a[i] := (i mod 8) + 1// füllt das Array mit den Zahlen 1, 2, 3..8, 1, 2, 3..8
  Randomize;
  for k := 1 to 16 do    // Jeder Karte nacheinander eine bestimmte Zahl (1 - 8) zuweisen
  begin
    i := Random(Length(a));
    Karten[k] := a[i];   // Karten gibts jetzt hier nicht, du musst halt der Karte k den Wert a[i] zuweisen
    Move(a[i + 1], a[i], High(a) - i);
    SetLength(a, Length(a) - 1);
  end;
end;

Kann sein, dass das ein oder andere nicht funktioniert, sollte aber von der Logik her gehen.


Narses - So 01.07.07 23:09

Moin und :welcome: im Forum!

Schau mal hier [http://www.delphi-library.de/topic_44084.html], vielleicht kommst du damit weiter. ;)

cu
Narses


Dunkel - So 01.07.07 23:15

Déjà-vu? [http://www.delphi-forum.de/viewtopic.php?t=74194]