NOTE: The example below is written for the BS2 and will run on any of the BS2-family modules. Modify the $STAMP directive (as required) before downloading to the BS2e, BS2sx, BS2p, BS2pe, or BS2px.
' SELECT-CASE.BS2
' This program generates a series of 16-bit random numbers and tests each
' to determine odd or even, and where it falls in the possible range:
' lower third, middle third, or upper third. The program is useful for
' testing various seed values for RANDOM.
' {$STAMP BS2}
' {$PBASIC 2.5}
test VAR Byte ' counter for tests
sample VAR Word ' random number to be tested
odd VAR Byte ' odd throws
even VAR Byte ' even throws
isLo VAR Byte ' sample in lower third
isMid VAR Byte ' in middle thrid
isHi VAR Byte ' in upper third
Main:
sample = 11000 ' initialize seed
FOR test = 1 TO 100 ' "throw" 100 times
RANDOM sample ' randomize
IF (sample.BIT0) THEN ' check odd/even bit
odd = odd + 1 ' increment odd count
ELSE
even = even + 1 ' increment even count
ENDIF
SELECT sample
CASE <= 21845 ' test lower third
isLo = isLo + 1
CASE 21846 TO 43691 ' test middle third
isMid = isMid + 1
CASE ELSE ' otherwise upper third
isHi = isHi + 1
ENDSELECT
NEXT
Show_Results:
DEBUG CLS,
"Odd Throws.... ", DEC odd, "%", CR,
"Even Throws... ", DEC even, "%", CR,
"Low........... ", DEC isLo, "%", CR,
"Mid........... ", DEC isMid, "%", CR,
"High.......... ", DEC isHi, "%", CR
END
BASIC Stamp Help Version 2.5.4
Copyright © Parallax Inc.
8/8/2012