Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
Delphi 12 Athens
|
AW: Memory Zufallsgenerator (Procedure)
27. Apr 2015, 10:22
Sollte zumindest ohne Fehler funktionieren:
Delphi-Quellcode:
function TForm3.holeBild(AValue: Integer): string;
begin
{case ist übersichtlicher}
{die Zahlen 1..8 kommen im Feld vor}
case AValue of
1: Result := 'eins.png';
2: Result := 'zwei.png';
3: Result := 'drei.png';
4: Result := 'vier.png';
5: Result := 'fünf.png';
6: Result := 'sechs.png';
7: Result := 'sieben.png';
8: Result := 'acht.png';
else Result := '';
end;
end;
procedure ListeFuellen(AList: TList; AMin, AMax: Integer);
var
i: Integer;
begin
for i := AMin to AMax do
begin
AList.Add(Pointer(i));
AList.Add(Pointer(i));
end;
end;
procedure ListeMischen(AList);
var
i: Integer;
begin
for i := AList.Count - 1 downto 1 do
AList.Exchange(i, Random(i + 1));
end;
procedure TForm3.FeldAusListeFuellen(AList);
var
i, j: Integer;
begin
for i := 0 to 3 do
begin
for j := 0 to 3 do
begin
Feld[i, j] := Integer(AList[i * 4 + j]);
end;
end;
end;
procedure TForm3.Bild();
var
Perm: TList;
begin
Perm := TList.Create;
try
ListeFuellen(Perm, 1, 8);
ListeMischen(Perm);
FeldAusListeFuellen(Perm);
finally
Perm.Free;
end;
end;
procedure TForm3.Umdrehen(x, y: Integer; image: TImage);
begin
image.Picture.LoadFromFile(holeBild(Feld[x,y]));
end;
|
|
Zitat
|