' RANDOM.BS1
' Connect a button to I/O pin 7 as shown in the figure in the RANDOM
' command description and run this program. This program uses RANDOM to
' simulate a coin toss. After 100 trials, it reports the total number of
' heads and tails thrown.
' {$STAMP BS1}
' {$PBASIC 1.0}
SYMBOL Btn = 7 ' button input
SYMBOL flip = W0 ' a random number
SYMBOL coin = BIT0 ' a bit from random number
SYMBOL trials = B2 ' number of flips
SYMBOL heads = B3 ' throws that come up heads
SYMBOL tails = B4 ' throws that come up tails
SYMBOL btnWrk = B5 ' workspace for BUTTON
Start:
DEBUG CLS, "Press the button to toss coin.", CR
Main:
FOR trials = 1 TO 100 ' flip coin 100 times
Hold:
RANDOM flip ' randomize while waiting
BUTTON Btn, 0, 250, 100, btnWrk, 0, Hold ' wait for button press
BRANCH coin, (Head, Tail) ' 0 = heads, 1 = tails
Head:
DEBUG CR, "Heads!"
heads = heads + 1 ' increment heads counter
GOTO Next_Toss
Tail:
DEBUG CR, "Tails..."
tails = tails + 1 ' increment heads counter
Next_Toss:
NEXT
DEBUG CR, CR, "Heads: ", #heads, CR, "Tails: ", #tails
END
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.
' RANDOM.BS2
' Connect a button to I/O pin 7 as shown in the figure in the RANDOM
' command description and run this program. This program uses RANDOM to
' simulate a coin toss. After 100 trials, it reports the total number of
' heads and tails thrown.
' {$STAMP BS2}
' {$PBASIC 2.5}
Btn PIN 7 ' button input
flip VAR Word ' a random number
coin VAR flip.BIT0 ' Bit0 of the random number
trials VAR Byte ' number of flips
heads VAR Byte ' throws that come up heads
tails VAR Byte ' throws that come up tails
btnWrk VAR Byte ' workspace for BUTTON
Start:
DEBUG CLS, "Press button to start"
Main:
FOR trials = 1 TO 100 ' flip coin 100 times
Hold:
RANDOM flip ' randomize while waiting
BUTTON Btin, 0, 250, 100, btnWrk, 0, Hold ' wait for button press
IF (coin = 0) THEN ' 0 = heads, 1 = tails
DEBUG CR, "Heads!"
heads = heads + 1 ' increment heads counter
ELSE
DEBUG CR, "Tails..."
tails = tails + 1 ' increment tails counter
ENDIF
NEXT
Done:
DEBUG CR, CR, "Heads: ", DEC heads, " Tails: ", DEC tails
END
BASIC Stamp Help Version 2.5.4
Copyright © Parallax Inc.
8/8/2012