home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
forth
/
compiler
/
fpc
/
source
/
p4_5bs.seq
< prev
next >
Wrap
Text File
|
1990-04-14
|
2KB
|
65 lines
\ Balraj Sidhu Set: 14D4
\ Comp 462 - Forth
\ Date: April 12, 1990
\ Problem 4.5
\ allocate memory for face cards
create face_value 14 allot
\ Variables used
variable heart
variable diamond
variable club
variable spade
\ RND function
\ ------------
\ Lesson 4 - page 4
variable seed 1234 seed !
\ Generate random number r between 0 and 65535
: (rnd) ( -- r )
seed @ 259 * 3 + 32767 and dup seed ! ;
\ Generate random number r between 0 and n
: rnd ( n -- r) \ r is a random number 0 <= r < n
(rnd) 32767 */ ;
: card ( -- suit value )
4 rnd 1+ 13 rnd 1+ ;
: suit_results ( -- )
cr
." Number of Draws: " . cr
." Heart: " heart @ . cr
." Diamond: " diamond @ . cr
." Club: " club @ . cr
." Spade: " spade @ . cr ;
: value_results ( -- )
cr
13 0 do i dup ." Card #:" 1+ 2 .r face_value + ." Drawn: " c@
. cr loop ;
: clear_variables ( -- )
0 heart !
0 diamond !
0 club !
0 spade !
face_value 14 erase ;
: cards ( n -- )
dup >r clear_variables
0 ?do
card face_value + dup c@ 1+ swap c!
dup 1 = if heart @ 1+ heart ! drop else
dup 2 = if diamond @ 1+ diamond ! drop else
3 = if club @ 1+ club ! else
spade @ 1+ spade ! then then then
loop
r> suit_results value_results ;