Also mit Delphi 2 und/oder 3 kann man's nicht übersetzen, da zB keine dynamischen Arrays bekannt sind.
Dann ein Bug: '<' muss durch '<=" ersetzt werden, sonst erhält man nicht die gesamte Liste (das berüchtigte 1-mehr/weniger-Problem):
Delphi-Quellcode:
function TUniqueRandomSequenceGenerator.GetNextNumber: Integer;
begin
if FCounter <= High(FNumberList) then begin // hier <= statt <
Result := FNumberList[FCounter];
Inc(FCounter);
end
else
raise ENoMoreNumbers.Create('No more numbers');
end;
Aus Konsistenzgünden sollte statt Length(FNumberList) hier
j := i + Random(Length(FNumberList) - i);
auch TotalCount benutzt werden,
Gruß Gammatester