Listing of file='CMDICE.BAS;01' on disk='vmedia/chip_12-sector.ccvf'
100 REM ************************************************** 110 REM * * 120 REM * C O M P U D I C E * 130 REM * * 140 REM * PROGRAMMER: J MENTLEY * 150 REM * * 160 REM * LANGUAGE: BASIC * 170 REM * * 180 REM * * 190 REM * V2$(I)- DISPLAY SECTIONS FOR DICE * 200 REM * D(I) - VALUES FOR DICE AFTER ROLL * 210 REM * R(I) - KEY TO SELECT DICE FOR ROLLING * 220 REM * RD(I) - VALUES FOR DICE DURING ROLLS * 230 REM * P(I) - ARRAY OF DICE VALUES FOR ROLL * 240 REM * S(I,0)- USE KEY FOR SCORING COMBINATIONS * 250 REM * S(I,1)- SCORES FOR THE 12 COMBINATIONS * 260 REM * * 270 REM * NOTE: THIS PROGRAM REQUIRES THE DISPLAY FILE * 280 REM * "PLATO.DSP;01" TO BE ON THE SAME DISK. * 290 REM * * 300 REM ************************************************** 310 PLOT 15,12,27,4 320 PRINT "LOA CMDICE.DSP" 330 PLOT 27,27:FOR I= 0TO PEEK (33209):X= RND (1):NEXT 340 DEF FN R(X)= INT (6* RND (1)+ 1) 350 DIM V2$(4),D(4),R(4),RD(4),P(5),S(11,1) 360 FOR I= 0TO 11:S(I,0)= 0:S(I,1)= 0:NEXT I 370 REM ---DICE UTILITY FROM MONOPOLY 380 V2$(0)= " " 390 V2$(1)= " d" 400 V2$(2)= "d " 410 V2$(3)= "d d" 420 V2$(4)= " d " 430 GOTO 490 440 PRINT V2$(0):RETURN 450 PRINT V2$(1):RETURN 460 PRINT V2$(2):RETURN 470 PRINT V2$(3):RETURN 480 PRINT V2$(4):RETURN 490 FOR I= 0TO 4:R(I)= 0:NEXT I 500 FOR A= 1TO 3 510 PLOT 3,52,19,6,25,14:PRINT A:PLOT 6,27,15 520 SS= PEEK (33209):FOR I= 0TO SS:RR= FN R(0):NEXT 530 FOR II= 0TO RR 540 RD(0)= FN R(0):RD(1)= FN R(0):RD(2)= FN R(0):RD(3)= FN R(0):RD(4)= FN R(0) 550 FOR R0= 0TO 4 560 XX= 8* R0+ 15 570 IF R(R0)= 1GOTO 650 580 PLOT 3,XX,25 590 ON RD(R0)GOSUB 440,450,460,470,470,470 600 PLOT 3,XX,26 610 ON RD(R0)GOSUB 480,440,480,440,480,470 620 PLOT 3,XX,27 630 ON RD(R0)GOSUB 440,460,450,470,470,470 640 D(R0)= RD(R0) 650 NEXT R0 660 FOR W= 0TO 9:NEXT W:REM ---PAUSE BETWEEN ROLLS 670 NEXT II 680 REM ---INITIALIZE AND CALCULATE VALUE ARRAY P(I) 690 FOR I= 0TO 4:R(I)= 1:NEXT I 700 FOR I= 0TO 5:P(I)= 0:NEXT I 710 FOR K= 0TO 4 720 DD= D(K)- 1 730 P(DD)= P(DD)+ 1 740 NEXT K 750 REM ---BLANK OUT *'S FOR FIRST ROLL 760 PLOT 6,27,3,14,24:PRINT " " 770 REM ---KEYBOARD SEARCH ROUTINE 780 PLOT 6,27,3,64,64 790 POKE 33278,0 800 KEY= PEEK (33278) 810 REM ---SCORING KEYS 820 IF KEY= 65THEN NN= 0:GOTO 1230 830 IF KEY= 66THEN NN= 1:GOTO 1230 840 IF KEY= 67THEN NN= 2:GOTO 1230 850 IF KEY= 68THEN NN= 3:GOTO 1230 860 IF KEY= 69THEN NN= 4:GOTO 1230 870 IF KEY= 70THEN NN= 5:GOTO 1230 880 IF KEY= 71THEN MM= 2:GOTO 1300 890 IF KEY= 72THEN MM= 3:GOTO 1300 900 IF KEY= 73GOTO 1410 910 IF KEY= 74GOTO 1510 920 IF KEY= 75GOTO 1590 930 IF KEY= 76GOTO 1670 940 IF A= 3GOTO 800:REM ---ALLOW ONLY SCORING AFTER 3RD ROLL 950 REM ---DI SELECTION KEYS 960 IF KEY= 49THEN R(0)= 0:PLOT 6,25,3,16,24:PRINT "*":GOTO 1120 970 IF KEY= 50THEN R(1)= 0:PLOT 6,25,3,24,24:PRINT "*":GOTO 1120 980 IF KEY= 51THEN R(2)= 0:PLOT 6,25,3,32,24:PRINT "*":GOTO 1120 990 IF KEY= 52THEN R(3)= 0:PLOT 6,25,3,40,24:PRINT "*":GOTO 1120 1000 IF KEY= 53THEN R(4)= 0:PLOT 6,25,3,48,24:PRINT "*":GOTO 1120 1010 IF KEY= 45THEN GOTO 1050 1020 IF KEY= 8GOTO 1130 1030 GOTO 800 1040 REM ----CORRECTION ROUTINE FOR DI "UNSELECTION" 1050 KEY= PEEK (33278) 1060 IF KEY= 49THEN R(0)= 1:PLOT 6,27,3,16,24:PRINT " ":GOTO 1120 1070 IF KEY= 50THEN R(1)= 1:PLOT 6,27,3,24,24:PRINT " ":GOTO 1120 1080 IF KEY= 51THEN R(2)= 1:PLOT 6,27,3,32,24:PRINT " ":GOTO 1120 1090 IF KEY= 52THEN R(3)= 1:PLOT 6,27,3,40,24:PRINT " ":GOTO 1120 1100 IF KEY= 53THEN R(4)= 1:PLOT 6,27,3,48,24:PRINT " ":GOTO 1120 1110 GOTO 1050 1120 POKE 33278,0:GOTO 780 1130 NEXT A 1140 REM ----MESSAGE THAT SCORING COMBINATION ALREADY USED 1150 PLOT 6,1,14,3,18,18 1160 PRINT " I L L E G A L " 1170 FOR I= 0TO 500:NEXT I 1180 PLOT 6,7,14,3,18,18 1190 PRINT " C O M P U D I C E " 1200 PLOT 6,27,15 1210 GOTO 780 1220 REM ----SCORING FOR A THRU F 1230 IF S(NN,0)= 1GOTO 1150 1240 S(NN,0)= 1 1250 S(NN,1)= (NN+ 1)* P(NN) 1260 LL= 2* NN+ 4 1270 PLOT 6,2,3,20,LL:PRINT S(NN,1) 1280 GOTO 1850 1290 REM ----SCORING FOR G AND H 1300 IF S(MM+ 4,0)= 1GOTO 1150 1310 S(MM+ 4,0)= 1 1320 FOR I= 0TO 5 1330 IF P(I)> MMGOTO 1360 1340 NEXT I 1350 S(MM+ 4,1)= 0:GOTO 1380 1360 RD= 0:FOR J= 0TO 4:RD= RD+ D(J):NEXT J 1370 S(MM+ 4,1)= RD 1380 PLOT 6,2,3,50,MM* 2:PRINT S(MM+ 4,1) 1390 GOTO 1850 1400 REM ----SCORING FOR I 1410 IF S(8,0)= 1GOTO 1150 1420 S(8,0)= 1 1430 IF P(0)= 2OR P(1)= 2OR P(2)= 2OR P(3)= 2OR P(4)= 2OR P(5)= 2GOTO 1450 1440 GOTO 1460 1450 IF P(0)= 3OR P(1)= 3OR P(2)= 3OR P(3)= 3OR P(4)= 3OR P(5)= 3GOTO 1470 1460 S(8,1)= 0:GOTO 1480 1470 S(8,1)= 30 1480 PLOT 6,2,3,50,8:PRINT S(8,1) 1490 GOTO 1850 1500 REM ----SCORING FOR J 1510 IF S(9,0)= 1GOTO 1150 1520 S(9,0)= 1 1530 IF P(2)> = 1AND P(3)> = 1AND ((P(4)> = 1AND P(1)> = 1)OR (P(5)> = 1AND P(4)> = 1)OR (P(0)> = 1AND P(1)> = 1))GOTO 1550 1540 S(9,1)= 0:GOTO 1560 1550 S(9,1)= 30 1560 PLOT 6,2,3,50,10:PRINT S(9,1) 1570 GOTO 1850 1580 REM ----SCORING FOR K 1590 IF S(10,0)= 1GOTO 1150 1600 S(10,0)= 1 1610 IF P(1)= 1AND P(2)= 1AND P(3)= 1AND P(4)= 1AND (P(0)= 1OR P(5)= 1)GOTO 1630 1620 S(10,1)= 0:GOTO 1640 1630 S(10,1)= 40 1640 PLOT 6,2,3,50,12:PRINT S(10,1) 1650 GOTO 1850 1660 REM ----SCORING FOR L 1670 IF S(11,0)= 1AND S(11,1)= 0GOTO 1150 1680 IF S(11,0)> 0GOTO 1770 1690 S(11,0)= 1 1700 FOR I= 0TO 5 1710 IF P(I)= 5GOTO 1740 1720 NEXT I 1730 S(11,1)= 0:GOTO 1750 1740 S(11,1)= 50 1750 PLOT 6,2,3,50,14:PRINT S(11,1) 1760 GOTO 1850 1770 FOR I= 0TO 5 1780 IF P(I)= 5GOTO 1810 1790 NEXT I 1800 GOTO 1150 1810 S(11,1)= S(11,1)+ 100 1820 PLOT 6,2,3,50,14:PRINT S(11,1) 1830 IF S(I,0)= 0GOTO 1240 1840 REM ----CHECK FOR END OF GAME 1850 FOR I= 0TO 11 1860 IF S(I,0)= 0GOTO 490 1870 NEXT I 1880 SC= 0 1890 FOR I= 0TO 11 1900 SC= SC+ S(I,1) 1910 NEXT I 1920 PLOT 6,7,3,18,18 1930 PRINT "TOTAL SCORE = ";SC 1940 PLOT 6,3,3,18,19 1950 PRINT "PLAY AGAIN ?,Y OR N" 1960 PLOT 6,27,3,64,64 1970 POKE 33278,0 1980 KEY= PEEK (33278) 1990 IF KEY= 78GOTO 2020 2000 IF KEY= 89GOTO 2030 2010 GOTO 1980 2020 PLOT 1 2030 FOR I= 4TO 14STEP 2 2040 PLOT 6,0,3,20,I:PRINT " " 2050 PLOT 3,50,I:PRINT " " 2060 NEXT I 2070 PLOT 6,7,14,3,18,18 2080 PRINT " C O M P U D I C E " 2090 PLOT 6,27,15 2100 GOTO 360