RosettaCodeData/Task/Loops-Break/XBasic/loops-break.basic

37 lines
755 B
Plaintext

PROGRAM "loopbreak"
IMPORT "xst" ' for XstGetSystemTime
DECLARE FUNCTION Entry()
' Pseudo-random number generator
' Based on the rand, srand functions from Kernighan & Ritchie's book
' 'The C Programming Language'
DECLARE FUNCTION Rand()
DECLARE FUNCTION SRand(seed%%)
FUNCTION Entry()
XstGetSystemTime (@msec)
SRand(INT(msec) MOD 32768)
DO
a%% = Rand() MOD 20
PRINT FORMAT$("##", a%%);
IF a%% = 10 THEN EXIT DO
b%% = Rand() MOD 20
PRINT FORMAT$(" ##", b%%)
LOOP
PRINT
END FUNCTION
' Return pseudo-random integer on 0..32767
FUNCTION Rand()
#next&& = #next&& * 1103515245 + 12345
END FUNCTION USHORT(#next&& / 65536) MOD 32768
' Set seed for Rand()
FUNCTION SRand(seed%%)
#next&& = seed%%
END FUNCTION
END PROGRAM