47 lines
718 B
Forth
47 lines
718 B
Forth
Block 4810
|
|
VARIABLE RNG-STATE
|
|
12345 RNG-STATE !
|
|
|
|
: RAND ( -- n )
|
|
RNG-STATE @ 1103515245 * 12345 +
|
|
DUP RNG-STATE !
|
|
65535 AND ;
|
|
|
|
Block 4811
|
|
: VOLATILE-BRANCH ( -- )
|
|
100 0 DO
|
|
RAND 7 MOD CASE
|
|
0 OF 1 2 + DROP ENDOF
|
|
1 OF 10 0 DO I DROP LOOP ENDOF
|
|
2 OF 5 DUP * DROP ENDOF
|
|
3 OF 100 50 - DROP ENDOF
|
|
4 OF 42 . ENDOF
|
|
5 OF HERE @ DROP ENDOF
|
|
6 OF BASE @ BASE ! ENDOF
|
|
ENDCASE
|
|
LOOP ;
|
|
|
|
Block 4812
|
|
: NESTED-COND ( n -- )
|
|
DUP 10 < IF
|
|
DUP 5 < IF
|
|
DROP 1
|
|
ELSE
|
|
DROP 2
|
|
THEN
|
|
ELSE
|
|
DUP 20 < IF
|
|
DROP 3
|
|
ELSE
|
|
DROP 4
|
|
THEN
|
|
THEN DROP ;
|
|
|
|
Block 4813
|
|
: MAIN ( -- )
|
|
1000 0 DO
|
|
RAND 30 MOD NESTED-COND
|
|
VOLATILE-BRANCH
|
|
LOOP ;
|
|
MAIN
|