[Back to NUMBERS SWAG index] [Back to Main SWAG index] [Original]
{
> I would also like some possible suggestions on a good random generator
> function or Procedure that is easy to understand.
}
{ Given }
var Seed; {among your globals}
{ You could try seeding it with: }
Procedure Randomise;
var
hour, min, sec, sex100: word;
root: Longint;
begin
GetTime(hour,min,sec,sec100); {from Dos or WinDos unit}
root := hour shr 1;
root := root * sec * sec100;
root := root shr 16;
Seed := LoWord(root); {needs WinAPI unit}
end;
{And to get a "random" integer in the range 0 to N - 1: }
function Random(Target: Integer): Integer;
var
work: Longint;
begin
work := Seed * Seed;
work := work shr 16;
Seed := LoWord(work);
Random := Seed mod Target;
end;
[Back to NUMBERS SWAG index] [Back to Main SWAG index] [Original]