Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#7

AW: Memory Zufallsgenerator (Procedure)

  Alt 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;
  Mit Zitat antworten Zitat