Autor Beitrag
xxx2
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Do 03.04.08 12:57 
Hoi hoi,

ich möchte ein Memory-Spiel in C# programmieren.

Doch leider bin ich noch ziemlich am Anfang von C#.

Deshalb weiß ich leider nicht wie ich bei meinem Memory Spiel die Karten mischen kann
und das so das bei jedem Spielstart die Karten an einer anderen Stelle liegen.

Mfg xxx2
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 03.04.08 14:15 
Aus meinem Delphi Memory Spiel:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TMemoryField.Shuffle;
var
  i, i2             : Integer;

  procedure Swap(i1, i2: Integer);
  var
    Help            : Integer;
  begin
    Help := TCard(FCards.Items[i1]).Value;
    TCard(FCards.Items[i1]).Value := TCard(FCards.Items[i2]).Value;
    TCard(FCards.Items[i2]).Value := Help;
  end;

begin
  for i := 0 to FCards.Count - 1 do
  begin
    i2 := Random(FCards.Count - 1);
    Swap(i, i2);
  end;
end;
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 03.04.08 14:29 
Für C# (bzw. .NET) brauchst du dann die System.Random-Klasse.

Du erstellst dir also erst ein Array deiner Memorykarten und vertauschst dann zufällig jede Karte einmal mit einer anderen (dies ist zufällig genug).
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 06.04.08 15:52 
Alternativ kann man auch Fisher-Yates nutzen ...Gibt's nen DelphiLib-Eintrag zu.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.