Compucolor.org – Virtual Media

Listing of file='12P11.BAS;01' on disk='vmedia/color_graphics_1_suits-sector.ccvf'

5 REM  PROGRAM 12.11
6 REM  DICE -- THE FAST WAY
9
10 CLEAR 500:REM  (YOU'LL NEED IT)
19
20 DIM D$(6):REM  ONE DIE FACE FOR EACH POSSIBLE NUMBER
28
29 REM  SET UP THE CONSTANTS
30 FG= 23:REM  FOREGROUND COLOR OF DIE
40 BG= 16:REM  COLOR OF BACKGROUND AGAINST WHICH DIE IS PRINTED
50 SP= 16:REM  COLOR OF THE SPOTS ON THE DIE
59
60 X(1)= 26:Y(1)= 3:REM  CURSOR X AND Y OF FIRST DIE
70 X(2)= 33:Y(2)= 3:REM  CURSOR X AND Y OF SECOND DIE
78
79 REM  ESTABLISH THE SIX DIE FACES
80 GOSUB 9000
88
89 REM  SET UP THE SCREEN
90 PLOT 15:REM  REGULAR HEIGHT.  DOUBLE HEIGHT WORKS, TOO, BUT
91         REM  THE DIE WON'T BE AS WELL PROPRTIONED
92
100 PLOT 6,6,12,29
109
110 PLOT 3,18,15
120 INPUT "PRESS RETURN TO ROLL THE DICE  ";A$
130 PLOT 28,11:REM  ERASE THE PROMPT
138
139 REM  ROLL THE DICE A RANDOM NUMBER OF TIMES
140 FOR ROLL= 1TO 20* RND (1)+ 5:GOSUB 8000:NEXT
148
149 REM  BACK FOR MORE
150 GOTO 110
7998
7999 REM  ----- PRINT THE TWO DICE
8000 FOR DIE= 1TO 2
8010   N= INT (6* RND (1))+ 1:REM RANDOM NUMBER (1-6) FOR THE DIE
8020   PLOT 3,X(DIE),Y(DIE):REM  POSITION THE CURSOR
8030   PRINT D$(N):REM  PRINT IT
8040 NEXT
8049
8050 RETURN
8998
8999 REM ----- ESTABLISH THE SIX DIE FACES AS CHARACTER STRINGS
9000 RESTORE 9500
9009
9010 FOR FACE= 1TO 6
9019   REM  TOP ROW OF DIE
9020   D$(FACE)= CHR$ (30)+ CHR$ (BG)+ CHR$ (29)+ CHR$ (FG)+ CHR$ (116)
9030   D$(FACE)= D$(FACE)+ CHR$ (30)+ CHR$ (FG)+ CHR$ (29)+ CHR$ (SP)
9040   GOSUB 9300
9050   D$(FACE)= D$(FACE)+ " "
9060   GOSUB 9300
9070   D$(FACE)= D$(FACE)+ CHR$ (30)+ CHR$ (BG)+ CHR$ (29)+ CHR$ (FG)+ CHR$ (117)
9078
9079   REM  BACK DOWN FOR SECOND ROW
9080   GOSUB 9400
9088
9089   REM  NOW FOR THE SECOND ROW
9090   D$(FACE)= D$(FACE)+ CHR$ (30)+ CHR$ (FG)+ CHR$ (29)+ CHR$ (SP)+ " "
9100   FOR K= 1TO 3:GOSUB 9300:NEXT
9110   D$(FACE)= D$(FACE)+ " "
9118
9119   REM  BACK DOWN FOR THIRD (AND FINAL) ROW
9120   GOSUB 9400
9128
9129   REM  THE THIRD ROW
9130   D$(FACE)= D$(FACE)+ CHR$ (30)+ CHR$ (BG)+ CHR$ (29)+ CHR$ (FG)+ CHR$ (118)
9140   D$(FACE)= D$(FACE)+ CHR$ (30)+ CHR$ (FG)+ CHR$ (29)+ CHR$ (SP)
9150   GOSUB 9300
9160   D$(FACE)= D$(FACE)+ " "
9170   GOSUB 9300
9180   D$(FACE)= D$(FACE)+ CHR$ (30)+ CHR$ (BG)+ CHR$ (29)+ CHR$ (FG)+ CHR$ (119)
9190 NEXT
9199
9200 RETURN
9298
9299 REM  -----
9300 READ A:D$(FACE)= D$(FACE)+ CHR$ (A):RETURN
9398
9399 REM  -----
9400 FOR K= 1TO 5:D$(FACE)= D$(FACE)+ CHR$ (26):NEXT
9410 D$(FACE)= D$(FACE)+ CHR$ (10)
9420 RETURN
9498
9499 REM  1
9500 DATA 32,32,32,100,32,32,32
9504 REM  2
9505 DATA 32,100,32,32,32,100,32
9509 REM  3
9510 DATA 100,32,32,100,32,32,100
9514 REM  4
9515 DATA 100,100,32,100,32,100,100
9519 REM  5
9520 DATA 100,100,32,100,32,100,100
9524 REM  6
9525 DATA 100,100,100,32,100,100,100