Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type
- TRandomValues = array[1..4] of Integer;
- procedure GetRandomValues(out Values: TRandomValues);
- var
- IntSum: Integer;
- function GetIntFromRange(Low, High: Integer): Integer;
- begin
- Result := Low + Random(High - Low + 1);
- end;
- begin
- IntSum := 0;
- Values[1] := GetIntFromRange(2, 7);
- IntSum := IntSum + Values[1];
- Values[2] := GetIntFromRange(Max(2, 8 - Values[1]), 7);
- IntSum := IntSum + Values[2];
- Values[3] := GetIntFromRange(Max(2, Min(7, 15 - IntSum)), Max(2, Min(7, 20 - IntSum)));
- IntSum := IntSum + Values[3];
- Values[4] := 22 - IntSum;
- end;
- procedure TForm1.Button1Click(Sender: TObject);
- var
- I, J: Integer;
- IntSum: Integer;
- Values: TRandomValues;
- begin
- for I := 1 to 10000 do
- begin
- GetRandomValues(Values);
- IntSum := 0;
- for J := 1 to 4 do
- begin
- if (Values[J] < 2) or (Values[J] > 7) then
- raise Exception.CreateFmt('Value out of range! [%d,%d,%d,%d]',
- [Values[1], Values[2], Values[3], Values[4]]);
- IntSum := IntSum + Values[J];
- end;
- if IntSum <> 22 then
- raise Exception.CreateFmt('Sum differs from 22! [%d,%d,%d,%d]',
- [Values[1], Values[2], Values[3], Values[4]]);
- end;
- end;
Advertisement
Add Comment
Please, Sign In to add comment