Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Frage nicht erneut wählen!

  Alt 23. Jun 2004, 15:24
Angenommen, du hast 100 Fragen (0-99).
Dann füllst du zuerst ein dynamisches Array mit diesen Zahlen und tauscht zufällig immer 2 Einträge aus.

Delphi-Quellcode:
var
   QIndex:array of Integer; // globales Array
   AktuelleFrage:integer;

procedure SetupQIndex;
var
   i, randomIndex,tmp : integer;
begin
   SetLength(QIndex, 100); // 100 Elemente


   for i:=0 to 99 do
      QIndex[i] := i; // Vorbelegung

   // durcheinander bringen
   // zufällig zwei Einträge vertauschen
   for i:=0 to 99 do
   begin
      tmp := QIndex[i];
      randomIndex := Random(100);
      QIndex[i] := QIndex[randomIndex];
      QIndex[randomindex] := tmp;
   end;
   AktuelleFrage := 99;
end;

// hole die Nummer der Frage
function GetNextQIndex:integer;
begin
   if AktuelleFrage < 0 then raise Exception.Create('keine Fragen mehr');
   result := QIndex[AktuelleFrage];
   Dec(AktuelleFrage);
end;
Andreas
  Mit Zitat antworten Zitat