home *** CD-ROM | disk | FTP | other *** search
- \ 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 ;
-
-
-