Listing of file='CRIB.BAS;01' on disk='vmedia/ncc_6-sector.ccvf'
120 TM= 53264:DA= TM+ 7:AD= 33283:GOSUB 61100:REM D000-XXXX 130 P1= 100:D1= 500:NS= 0:S1= 0:S2= 0 135 X1= 0:Y1= 18:H1= 13:W1= 37:C1= 1 140 GOSUB 64000 150 OUT 8,255:OUT 8,247 160 PLOT 6,39,12 170 DEF FN A(X)= INT (X* RND (1)) 180 DEF FN B(X)= PEEK (X)+ 256* PEEK (X+ 1)+ 1 200 PLOT 27,24,14,3,24,0:PRINT "C R I B B A G E":PLOT 15,3,8,7:A= CALL (0) 220 PRINT "+++ STANDBY - OPENING NEW DECK OF CARDS +++" 230 PLOT 8:A= CALL (0):FOR I= 1TO PEEK (33209)+ 1:K= FN A(1):NEXT I 240 DIM D(52,4),I(52),W(5,4),M(6,4),T$(34),H(8,4) 250 DIM Y(6,4),C(4,4),V(15,7),Q(11,6),R(4,5),S(4),J(52) 500 REM SET DECK 530 DATA 1,2,3,4,5,6,0,1,2,3,5,4,6,0,1,2,3,6,4,5,0,1,2,4,5,3,6,0 540 DATA 1,2,4,6,3,5,0,1,2,5,6,3,4,0,1,3,4,5,2,6,0,1,3,4,6,2,5,0 550 DATA 1,3,5,6,2,4,0,1,4,5,6,2,3,0,2,3,4,5,1,6,0,2,3,4,6,1,5,0 560 DATA 2,3,5,6,1,4,0,2,4,5,6,1,3,0,3,4,5,6,1,2,0 570 RESTORE 530 580 FOR I= 1TO 15:FOR J= 1TO 7:READ V(I,J):NEXT J:NEXT I 600 REM DATA FOR FOUR CARD RUN W/ PAIRS Q(I,J) 620 DATA 1,1,1,2,3,9,1,1,2,2,3,12,1,1,2,3,3,12 630 DATA 1,1,2,3,4,8,1,2,2,2,3,9,1,2,2,3,3,12 640 DATA 1,2,2,3,4,8,1,2,3,3,3,9,1,2,3,3,4,8 650 DATA 1,2,3,4,4,8,1,2,3,4,5,5 670 REM DATA FOR THREE CARD RUN W/ PAIRS R(I,J) 690 DATA 1,1,2,3,6,1,2,2,3,6,1,2,3,3,6,1,2,3,4,4 710 REM DATA FOR THREE CARD RUN S(I) 730 DATA 1,2,3,3 750 REM PRESET 770 SC= 0:SP= 0:BS= 0:WP= 0:YC= 0:MC= 0:BH= 0 780 GP= 0:M= 0:C= 0:GC= 0:P= 0 1000 REM 1010 REM SHUFFLE//CUT CARDS 1020 REM 1030 PLOT 3,8,10:A= CALL (0) 1040 PRINT "+++ STANDBY +++ SHUFFLING THE CARDS +++" 1050 PLOT 8:GOSUB 14500:OUT 8,255:GOSUB 17000 1060 PLOT 3,0,12,11,3,8,12:A= CALL (0) 1070 INPUT "PLEASE CUT FOR THE DEAL (1-52) ";I 1075 IF I< 1THEN GOSUB 17000:GOTO 6000 1080 IF I= INT (I)AND I> 0AND I< 53THEN 1120 1090 GOSUB 17800 1100 PRINT "BE SERIOUS NOW - THERE ARE 52 CARDS IN THE DECK" 1110 GOTO 1060 1120 OUT 8,247:PLOT 8:I1= I:VA= D(I,4):ST= D(I,3):GOSUB 22200 1130 A= CALL (0):GOSUB 17200 1140 PLOT 3,X1,Y1+ H1:PRINT "YOURS":PLOT 8 1150 J= FN A(52- I1)+ I1 1160 IF J= 0THEN J= FN A(52)+ 1 1170 IF J= I1THEN 1150 1180 J1= J:VA= D(J,4):ST= D(J,3):GOSUB 22300 1190 A= CALL (0):GOSUB 17200:I= I1:J= J1 1200 PLOT 3,X1,Y1+ H1:PRINT "MINE":PLOT 8 1210 IF D(I,4)< D(J,4)THEN M= 1:GOTO 1250 1220 IF D(J,4)< D(I,4)THEN M= 0:GOTO 1250 1230 GOSUB 17000:PRINT "YOU SURE ARE LUCKY - CUT AGAIN" 1240 PLOT 8:OUT 8,255:GOTO 1060 1250 GOSUB 23000 1260 GOSUB 17000:ON M+ 1GOTO 2050,2000 2000 REM 2010 REM START PLAY 2020 REM 2030 GOSUB 17800 2040 PRINT "YOU ARE DEALING":GOTO 2070 2050 GOSUB 17800 2060 PRINT "I AM DEALING" 2070 PLOT 8:M= 1- M:Y= 1- M 2080 FOR I= 1TO 6:K= 2* I- Y:L= 2* I- M 2090 FOR J= 1TO 4 2100 M(I,J)= D(K,J):REM COMPUTERS HAND 2110 Y(I,J)= D(L,J):REM PLAYERS HAND 2120 NEXT J 2130 M(I,0)= 0:Y(I,0)= 0 2140 NEXT I 2150 PLOT 6,39:FOR B= 1TO 6:ON M+ 1GOTO 2160,2190 2160 ON BGOSUB 22000,22100,22200,22300,22400,22500 2170 GOSUB 22600:PLOT 8 2180 ON M+ 1GOTO 2190,2230 2190 ST= Y(B,3):VA= Y(B,4) 2200 ON BGOSUB 20000,20100,20200,20300,20400,20500 2210 GOSUB 17200:PLOT 3,X1+ 2,9,B+ 48,8 2220 ON M+ 1GOTO 2230,2160 2230 NEXT B 2500 REM 2510 REM GET THE UP CARD 2520 REM 2530 UP= FN A(38)+ 8:V= 1 2540 FOR I= 1TO 6 2550 IF Y(I,1)= D(UP,1)THEN V= 0 2560 IF M(I,1)= D(UP,1)THEN V= 0 2570 NEXT I:IF V= 0THEN 2530 2580 FOR I= 1TO 4:W(5,I)= D(UP,I):NEXT I 3000 REM 3010 REM COMPUTER EVALUATE HAND 3020 REM 3030 GOSUB 17000 3040 PRINT "STANDBY - I TAKE ABOUT 2 MIN. TO SORT & DISCARD" 3045 POKE 33209,0:POKE 33210,0 3050 PLOT 8:WP= 0:A= CALL (1):A= CALL (1):FOR CN= 1TO 15:A= CALL (0) 3060 PLOT 3,8,30:PRINT "CHECK NUMBER "CN"":PLOT 8 3070 I1= V(CN,1):I2= V(CN,2):I3= V(CN,3):I4= V(CN,4) 3080 FOR J= 1TO 4 3090 W(1,J)= M(I1,J):W(2,J)= M(I2,J):W(3,J)= M(I3,J) 3100 W(4,J)= M(I4,J):W(5,J)= D(UP,J):NEXT J 3110 C= 0:GOSUB 11000:V(CN,7)= P:IF P> WPTHEN WP= P 3120 NEXT CN 3130 REM 3140 REM FIND ALL HANDS W/ MAX SCORE IN WP 3150 REM 3160 J= 0:FOR I= 1TO 15:IF V(I,7)< > WPTHEN 3180 3170 J= J+ 1:I(J)= I 3180 NEXT I:IF J> 1THEN 3260 3190 REM 3200 REM THIS IS BEST HAND 3210 REM 3220 BC= I(1):GOTO 4000 3230 REM 3240 REM NO SINGLE BEST HAND - SEARCH FOR KEY CARDS 3250 REM 3260 BH= 5:Z= 1:GOTO 3350 3270 BH= 8:Z= 2:GOTO 3350 3280 BH= 7:Z= 3:GOTO 3350 3290 BH= 11:Z= 4:GOTO 3350 3300 BH= 1:Z= 5:GOTO 3350 3310 REM 3320 REM RANDOMLY CHOOSE A HAND IF CMPTR REACHES HERE 3330 REM 3340 BC= FN A(J)+ 1:I(BC)= BC:GOTO 4000 3350 REM 3360 REM BEST HAND WILL BE WHICHEVER HAS THE MOST OF CARD BH 3370 REM 3380 WP= 0:FOR I= 1TO 15:J(I)= 0:NEXT I 3390 FOR I= 1TO J:FOR K= 1TO 4:L= V(I(I),K) 3400 IF M(L,4)= BHTHEN J(I)= J(I)+ 1 3410 NEXT K:IF J(I)> WPTHEN WP= J(I) 3420 NEXT I 3430 K= 0:FOR I= 1TO J:IF J(I)= WPTHEN K= K+ 1:BC= I(I) 3440 NEXT I:IF K= 1THEN 4000 3450 ON ZGOTO 3270,3280,3290,3300,3310 4000 REM 4001 REM PLAYER//COMPUTER DISCARDS 4002 REM 4010 GOSUB 17000:PRINT "TIME: "PEEK (33210)":"PEEK (33209) 4030 GOSUB 22700:GOSUB 22700 4040 GOSUB 17000:FOR B= 1TO 10:A= CALL (1):NEXT B:A= CALL (0) 4050 I1= V(BC,5):I2= V(BC,6):OUT 8,255 4060 GOSUB 17800:PRINT "YOUR DISCARDS PLEASE "; 4070 I3= CALL (2):PRINT CHR$ (I3)+ " ";:I4= CALL (2):PRINT CHR$ (I4):PLOT 8 4075 IF I3= 45OR I4= 45THEN 6000 4080 I3= I3- 48:I4= I4- 48 4090 IF I3< 1OR I4< 1THEN 4130 4100 IF I3< > INT (I3)OR I4< > INT (I4)THEN 4130 4110 IF I3= I4THEN 4130 4120 IF I3< 7AND I4< 7THEN OUT 8,247:GOTO 4200 4130 GOSUB 17800:PRINT "TRY A NUMBER FROM 1 TO 6":GOTO 4060 4200 REM 4210 REM SET THE CRIB 4220 REM 4230 FOR J= 1TO 4:C(1,J)= M(I1,J):C(2,J)= M(I2,J):C(3,J)= Y(I3,J):C(4,J)= Y(I4,J):NEXT J 4240 M(I1,0)= 1:M(I2,0)= 1:Y(I3,0)= 1:Y(I4,0)= 1 4400 REM 4410 REM REPACK PLAYERS HAND//SORT ASCENDING 4420 REM 4430 FOR K= 1TO 4 4440 IF Y(K,0)= 0THEN 4470 4450 FOR J= K+ 1TO 6:FOR I= 0TO 4:Y(J- 1,I)= Y(J,I):NEXT I:NEXT J 4460 Y(6,0)= 1:GOTO 4440 4470 NEXT K:Y(5,0)= 1 4480 V= 1:FOR I= 1TO 3:IF Y(I,4)< = Y(I+ 1,4)THEN 4500 4490 FOR J= 0TO 4:Y(0,J)= Y(I,J):Y(I,J)= Y(I+ 1,J):Y(I+ 1,J)= Y(0,J):NEXT J:V= 0 4500 NEXT I:IF V= 0THEN 4480 4700 REM 4710 REM REDRAW CARDS 4720 REM 4730 GOSUB 20500:FOR B= 1TO 9:PLOT 3,X1,Y1+ H1- 1:PRINT SPC( W1)"":A= CALL (1):NEXT B 4740 GOSUB 20400:FOR B= 1TO 9:PLOT 3,X1,Y1+ H1- 1:PRINT SPC( W1)"":A= CALL (1):NEXT B 4750 PLOT 8:FOR B= 1TO 4:ST= Y(B,3):VA= Y(B,4) 4760 ON BGOSUB 20000,20100,20200,20300:GOSUB 17200 4770 PLOT 3,X1+ 2,9,B+ 48,8:NEXT B:I3= 5:I4= 6 4780 REM 4790 REM GET UP CARD 4800 REM 4810 VA= D(UP,4):ST= D(UP,3):GOSUB 20600:GOSUB 17200 4820 PLOT 3,49,9:PRINT "UP CARD":PLOT 8 4830 FOR I= 1TO 4:W(5,I)= D(UP,I):NEXT I 4840 IF W(5,4)< > 11THEN 5000 4850 GOSUB 17000:IF M= 0THEN 4890 4860 PRINT "2 POINTS FOR ME":SC= SC+ 2:GOSUB 15500 4870 IF SC> 120THEN 5500 4880 GOTO 5000 4890 PRINT "2 POINTS FOR YOU":SP= SP+ 2:GOSUB 15500 4900 IF SP> 120THEN 5500 5000 REM 5010 REM PLAY CONTROL 5020 REM 5030 GOSUB 7000:PLOT 3,45,18:PRINT SPC( 11)"":PLOT 3,45,20:PRINT SPC( 11)"":PLOT 8 5035 IF CP= 45THEN 6000 5040 IF SC> 120OR SP> 120THEN 5500 5050 FOR B= 1TO 4:VA= Y(B,4):ST= Y(B,3):ON BGOSUB 20000,20100,20200,20300 5060 GOSUB 17200:NEXT B 5070 GOSUB 17000:IF M= 0THEN 5090 5080 PRINT "YOU SCORE FIRST":XI= 1:GOTO 5100 5090 PRINT "I SCORE FIRST":XI= 2 5100 PLOT 8:GOSUB 10000 5110 IF SC> 120OR SP> 120THEN 5500 5120 GOSUB 23000 5130 GOSUB 17000:PRINT "++ STANDBY ++ SHUFFLING THE CARDS" 5140 PLOT 8:GOSUB 14500:GOTO 1260 5500 REM 5510 REM SELECT WINNER//END 5520 REM 5530 GOSUB 17000:IF SC< 121THEN 5550 5540 GOSUB 17800:PRINT "+++ I WIN +++":GOTO 5570 5550 IF SP< 121THEN 5570 5560 GOSUB 17800:PRINT "+++ YOU WIN +++" 5570 GOSUB 17800:PRINT "I HAVE "SC" POINTS" 5580 GOSUB 17800:PRINT "YOU HAVE"SP" POINTS" 5590 IF SC> 120THEN SC= 121 5600 IF SP> 120THEN SP= 121 5610 IF SC- SP< = 60THEN 5630 5620 GOSUB 17800:PRINT "HA - HA - A DOUBLE SKUNK":GOTO 5690 5630 IF SC- SP< = 30THEN 5650 5640 GOSUB 17800:PRINT "HA - HA - I SKUNKED YOU":GOTO 5690 5650 IF SP- SC< = 60THEN 5670 5660 GOSUB 17800:PRINT "OOOOPS - I GOT DOUBLE SKUNKED":GOTO 5690 5670 IF SP- SC< = 30THEN 5690 5680 GOSUB 17800:PRINT "HMMMMM - I GOT SKUNKED" 5690 PLOT 8 6000 REM 6010 REM PLAY AGAIN? 6020 REM 6030 GOSUB 17800:A= CALL (1):OUT 8,255 6040 PRINT "WOULD YOU LIKE TO PLAY AGAIN? Y/N "; 6050 K= CALL (2):IF K= 78OR K= 89THEN PRINT :PLOT 8:OUT 8,247 6060 IF K= 89THEN PLOT 12:GOTO 530 6070 IF K< > 78THEN 6050 6080 OUT 8,255 6090 PLOT 6,0,27,11,12,14,3,18,16 6100 PRINT "G O O D B Y E" 6110 PLOT 6,0,15,8 6120 END 7000 REM 7010 REM PLAY THE HAND 7020 REM 7030 GOSUB 15000 7040 YC= 0:MC= 0:C= 0:BS= 0:GC= 0:GP= 0 7050 IF M= 0THEN 7830 7060 GOSUB 17000:OUT 8,255:PRINT "YOUR PLAY "; 7070 CP= CALL (2):OUT 8,247:C$= CHR$ (CP):IF CP= 71THEN C$= "GO" 7075 IF CP= 45THEN RETURN :REM ASK IF END 7080 PRINT C$:PLOT 8 7090 IF CP= 71AND BS< 22AND MC< 4THEN 7120 7100 IF CP= 71THEN 7700 7110 CP= CP- 48:IF CP> 0AND CP< 7THEN 7130 7120 GOSUB 17800:PRINT "INVALID PLAY - TRY AGAIN":GOTO 7060 7130 IF CP> 4THEN 7530 7140 IF Y(CP,0)= 1THEN 7540 7150 IF BS+ Y(CP,2)> 31THEN 7550 7160 BS= BS+ Y(CP,2):YC= YC+ 1:C= C+ 1:GOSUB 15100 7300 REM 7310 REM CHECK FOR 15/31 & PAIRS 7320 REM 7330 WS= BS:GOSUB 15300 7400 REM 7410 REM CHECK FOR RUNS//MOVE CARD 7420 REM 7430 GOSUB 16000:P= P+ PT:VA= Y(CP,4):ST= Y(CP,3) 7440 ON CGOSUB 21000,21100,21200,21300,21400,21500,21600,21700 7450 GOSUB 17200:GOSUB 17100 7460 PLOT 6,39,3,45,18:PRINT "SUM ="BS" ":REM 7470 PLOT 3,45,20:PRINT "POINTS ="P" " 7480 PLOT 8:SP= SP+ P:GOSUB 15500 7490 IF SP> 120THEN RETURN 7500 IF BS< > 31THEN 7700 7510 GP= 0:C= 0:BS= 0:GC= 0 7520 GOSUB 17700:GOTO 7700 7530 GOSUB 17800:PRINT "YOU DISCARDED THAT CARD EARLIER":GOTO 7060 7540 GOSUB 17800:PRINT "YOU ALREADY PLAYED THIS CARD":GOTO 7060 7550 GOSUB 17800:PRINT "CAN'T YOU COUNT - THAT IS MORE THAN 31":GOTO 7060 7700 REM 7710 REM CHECK GO STATUS FROM PLAYER 7720 REM 7730 IF C$= "GO"AND GC= 1THEN 8880 7740 IF C$= "GO"THEN GP= 1:C$= "" 7750 IF YC> 3THEN GP= 1 7760 IF GC= 0THEN 7830 7770 IF GP= 0AND GC= 1THEN 7060 7780 GOTO 8880 7800 REM 7810 REM COMPUTERS PLAY 7820 REM 7830 IF YC+ MC> 7THEN 8880 7840 IF GC= 1THEN 8800 7850 K= 0:WP= 0:WC= C 7860 FOR I= 0TO 37:I(I)= 0:NEXT I 7870 K= K+ 1:IF K> 6THEN 8210 7880 CC= V(BC,K) 7890 IF M(CC,0)= 1THEN 7870 7900 WS= BS+ M(CC,2) 7910 IF WS> 31THEN 7870 7920 IF M+ C= 1AND M(CC,4)= 5THEN 7870 7930 I(K+ 30)= CC 8000 REM 8010 REM CHECK FOR 15/31 & PAIRS 8020 REM 8030 C= WC+ 1:P= 0:GOSUB 15200:GOSUB 15300 8100 REM 8110 REM CHECK FOR RUNS 8120 REM 8130 GOSUB 16000:P= P+ PT:IF P> WPTHEN WP= P 8140 I(K)= WP 8150 FOR L= 0TO 8 8160 IF H(L,0)< > 2THEN 8190 8170 H(L,0)= 0:H(L,1)= 0:H(L,2)= 0:H(L,3)= 0:H(L,4)= 0 8180 L= 8 8190 NEXT L 8200 GOTO 7870 8210 WP= 0 8220 FOR K= 1TO 6 8230 IF WP< I(K)THEN WP= I(K):CC= I(K+ 30) 8240 NEXT K 8250 IF CC= 0THEN 8530 8260 IF M(CC,0)= 1THEN 8530 8270 BS= BS+ M(CC,2) 8280 C= WC+ 1:GOSUB 15200:GOTO 8620 8290 GOSUB 17000:PRINT "GO":GC= 1 8300 C= WC:WP= 0:IF GP= 0THEN 7060 8410 GOTO 8800 8500 REM 8510 REM GET CARD NO POINT VALUE 8520 REM 8530 K= 0:WP= 0 8540 K= K+ 1:IF K> 6THEN C= WC:GOTO 8290 8550 IF M(K,0)= 1THEN 8540 8560 WS= BS+ M(CC,2) 8570 IF WS> 31THEN 8540 8580 CC= K:C= WC+ 1 8590 GOSUB 15200:GOSUB 15300:GOSUB 16000:WP= WP+ P+ PT 8600 WS= BS+ M(CC,2):IF WS> 31THEN 8290 8610 BS= WS 8620 MC= MC+ 1:M(CC,0)= 1 8630 VA= M(CC,4):ST= M(CC,3) 8640 ON CGOSUB 21000,21100,21200,21300,21400,21500,21600,21700 8650 GOSUB 17200:GOSUB 22700 8660 PLOT 6,39,3,45,18:PRINT "SUM ="BS" ":REM 8670 PLOT 3,45,20:PRINT "POINTS ="WP" " 8680 PLOT 8:SC= SC+ WP:GOSUB 15500 8690 IF SC> 120THEN RETURN 8700 IF BS< > 31THEN 8800 8710 GP= 0:GC= 0:C= 0:BS= 0 8720 GOSUB 17700 8800 REM 8810 REM CHECK GO STATUS FROM COMPUTER 8820 REM 8830 IF GPAND GC= 1THEN 8940 8840 IF MC> 3THEN GC= 1 8850 IF GP= 0THEN 7060 8860 IF GC= 0AND GP= 1THEN 7830 8870 GOTO 8940 8880 GOSUB 9200 8890 IF SP> 120THEN RETURN 8900 IF YC+ MC> 7THEN RETURN 8910 IF MC> 3THEN GC= 1 8920 IF YC> 3THEN GP= 1 8930 ON GC+ 1GOTO 7830,7060 8940 GOSUB 9400 8950 IF SC> 120THEN RETURN 8960 IF MC+ YC> 7THEN RETURN 8970 IF YC> 3THEN GP= 1 8980 IF MC> 3THEN GC= 1 8990 ON GP+ 1GOTO 7060,7830 9200 REM 9210 REM PLAYERS LAST CARD 9220 REM 9230 GOSUB 17000 9240 ON FN A(3)+ 1GOTO 9250,9260,9270 9250 PRINT "YOU CAN HAVE 1 POINT FOR LAST CARD":GOTO 9280 9260 PRINT "I'LL GIVE YOU 1 POINT FOR LAST CARD":GOTO 9280 9270 PRINT "YOU GET 1 POINT FOR LAST CARD" 9280 PLOT 8:SP= SP+ 1:GOSUB 15500:GOSUB 15000 9290 GP= 0:C= 0:GC= 0:BS= 0:GOSUB 17700:PLOT 8:RETURN 9400 REM 9410 REM COMPUTERS LAST CARD 9420 REM 9430 GOSUB 17000 9440 ON FN A(3)+ 1GOTO 9450,9460,9470 9450 PRINT "I'LL TAKE 1 POINT FOR LAST CARD":GOTO 9480 9460 PRINT "1 POINT FOR ME FOR LAST CARD":GOTO 9480 9470 PRINT "I GET 1 POINT FOR LAST CARD" 9480 PLOT 8:SC= SC+ 1:GOSUB 15500:GOSUB 15000 9490 GP= 0:C= 0:GC= 0:BS= 0:GOSUB 17700:PLOT 8:RETURN 10000 REM 10010 REM SCORE THE HANDS//PLAYER AND COMPUTER 10020 REM 10050 IF XI< > 1THEN 10250 10060 K= 1:FOR I= 1TO 6 10070 IF I= I3THEN 10100 10080 IF I= I4THEN 10100 10090 FOR J= 1TO 4:W(K,J)= Y(I,J):NEXT J:K= K+ 1 10100 NEXT I 10110 FOR J= 1TO 4:W(5,J)= D(UP,J):NEXT J 10120 C= 0:GOSUB 11000 10130 GOSUB 17000:OUT 8,255 10140 GOSUB 17800:INPUT "HOW MANY POINTS DO YOU HAVE? ";WP 10150 PLOT 8:WP= INT (ABS (WP)):IF WP= 19THEN WP= 0 10160 D= P- WP:IF D= > 0THEN 10190 10170 GOSUB 17800:PRINT "YOU DO NOT HAVE "WP" POINTS WITH THAT HAND" 10180 GOTO 10140 10190 OUT 8,247:SP= SP+ WP:GOSUB 15500:IF SP> 120THEN RETURN 10200 IF D= 0THEN 10240 10210 SC= SC+ D:GOSUB 15500:GOSUB 17800 10220 PRINT "MUGGINS FOR "D" POINTS - THANK YOU" 10230 IF SC> 120THEN RETURN 10240 ON XIGOTO 10250,10340,10470 10250 FOR K= 1TO 4:L= V(BC,K):FOR J= 1TO 4:W(K,J)= M(L,J):NEXT J:NEXT K 10260 GOSUB 17000:PRINT "MY CARDS ARE :" 10270 FOR K= 1TO 4:VA= W(K,4):ST= W(K,3) 10280 ON KGOSUB 21000,21100,21200,21300 10290 GOSUB 17200:NEXT K 10300 FOR J= 1TO 4:W(5,J)= D(UP,J):NEXT J 10310 C= 0:GOSUB 11000:SC= SC+ P:GOSUB 15500:IF SC> 120THEN RETURN 10320 GOSUB 17000:PRINT "I HAVE "P" POINTS IN MY HAND" 10330 ON XIGOTO 10340,10060 10340 GOSUB 17000:PRINT "THE CRIB CARDS ARE :" 10350 FOR K= 1TO 4:VA= C(K,4):ST= C(K,3) 10360 ON KGOSUB 22000,22100,22200,22300 10370 GOSUB 17200:NEXT K 10380 FOR I= 1TO 4:FOR J= 1TO 4:W(I,J)= C(I,J):NEXT J:NEXT I 10390 C= 1 10400 FOR J= 1TO 4:W(5,J)= D(UP,J):NEXT J 10410 GOSUB 11000 10420 ON XIGOTO 10430,10460 10430 GOSUB 17000:PRINT "I HAVE "P" POINTS IN THE CRIB" 10440 PLOT 8:SC= SC+ P:GOSUB 15500:IF SC> 120THEN RETURN 10450 GOTO 10470 10460 XI= 3:GOTO 10130 10470 GOSUB 17000:PRINT "I HAVE A TOTAL SCORE OF "SC" POINTS" 10480 GOSUB 17800:PRINT "YOU HAVE A TOTAL SCORE OF"SP" POINTS" 10490 A= CALL (0):RETURN 11000 REM 11010 REM SCORE 5 CARD HAND PLAYER//COMPUTER//CRIB 11020 REM 11030 REM CHECK FOR JACK SAME SUIT AS UP CARD 11040 REM EXCEPT FOR CRIB 11050 REM 11060 P= 0:IF C= 1THEN 11100 11070 FOR I= 1TO 4 11080 IF W(I,4)= 11AND W(I,3)= W(5,3)THEN P= P+ 1 11090 NEXT I 11100 REM 11110 REM CHECK FOR 4 OR 5 CARD FLUSH 11120 REM 11130 FOR I= 1TO 3 11140 IF W(I,3)< > W(I+ 1,3)THEN 11240 11150 NEXT I 11160 REM 11170 REM CRIB SCORES ONLY FOR 5 CARD FLUSH 11180 REM 11190 IF C< > 0THEN 11220 11200 P= P+ 4:IF W(4,3)< > W(5,3)THEN 11240 11210 P= P+ 1:GOTO 11240 11220 IF W(4,3)< > W(5,3)THEN 11240 11230 P= P+ 5 11240 REM 11250 REM CHECK FOR 2 CARD SUMS OF 15 11260 REM 11270 FOR I= 1TO 4:FOR J= I+ 1TO 5 11280 IF W(I,2)+ W(J,2)= 15THEN P= P+ 2 11290 NEXT J:NEXT I 11300 REM 11310 REM CHECK FOR 3 CARD SUMS OF 15 11320 REM 11330 FOR I= 1TO 3:FOR J= I+ 1TO 4:FOR K= J+ 1TO 5 11340 IF W(I,2)+ W(J,2)+ W(K,2)= 15THEN P= P+ 2 11350 NEXT K:NEXT J:NEXT I 11360 REM 11370 REM CHECK FOR 4 CARD SUMS OF 15 11380 REM 11390 FOR I= 1TO 2:FOR J= I+ 1TO 3:FOR K= J+ 1TO 4:FOR L= K+ 1TO 5 11400 IF W(I,2)+ W(J,2)+ W(K,2)+ W(L,2)= 15THEN P= P+ 2 11410 NEXT L:NEXT K:NEXT J:NEXT I 11420 REM 11430 REM CHECK FOR 5 CARD SUM OF 15 11440 REM 11450 S= 0:FOR I= 1TO 5:S= S+ W(I,2):NEXT I 11460 IF S= 15THEN P= P+ 2 11470 REM 11480 REM CHECK FOR PAIRS//3 AND 4 A KIND 11490 REM 11500 FOR I= 1TO 4:FOR J= I+ 1TO 5 11510 IF W(I,4)= W(J,4)THEN P= P+ 2 11520 NEXT J:NEXT I 11530 REM 11540 REM SORT CARDS INTO ASCENDING SEQUENCE 11550 REM 11560 V= 1:FOR I= 1TO 4 11570 IF W(I,4)< = W(I+ 1,4)THEN 11610 11580 FOR J= 0TO 4 11590 W(0,J)= W(I,J):W(I,J)= W(I+ 1,J):W(I+ 1,J)= W(0,J) 11600 NEXT J:V= 0 11610 NEXT I:IF V= 0THEN 11560 11620 REM 11630 REM CHECK//SCORE FOR 5 CARD RUN 11640 REM 11650 GOSUB 14000:D= W(1,4)- Q(1,1) 11660 FOR I= 1TO 11:FOR J= 1TO 5:Q(I,J)= Q(I,J)+ D:NEXT J:NEXT I 11670 PT= 0:FOR I= 1TO 11:V= 1:FOR J= 1TO 5 11680 IF W(J,4)< > Q(I,J)THEN J= 5:V= 0 11690 NEXT J:IF V= 1THEN PT= PT+ Q(I,6) 11700 NEXT I:P= P+ PT:IF PT> 0THEN RETURN 11710 REM 11720 REM CHECK//SCORE FOR 4 CARD RUN 11730 REM 11740 PT= 0:FOR L= 1TO 2:GOSUB 14060:D= W(L,4)- R(1,1) 11750 FOR I= 1TO 4:FOR J= 1TO 4:R(I,J)= R(I,J)+ D:NEXT J:NEXT I 11760 FOR I= 1TO 4:V= 1:FOR K= 1TO 4:IF W(K+ L- 1,4)< > R(I,K)THEN K= 4:V= 0 11770 NEXT K:IF V= 1THEN PT= PT+ R(I,5) 11780 NEXT I:NEXT L:P= P+ PT:IF PT> 0THEN RETURN 11790 REM 11800 REM CHECK//SCORE FOR 3 CARD RUN 11810 REM 11820 PT= 0:FOR L= 1TO 3:GOSUB 14120:D= W(L,4)- S(1) 11830 FOR I= 1TO 3:S(I)= S(I)+ D:NEXT I 11840 V= 1:FOR I= 1TO 3:IF W(L+ I- 1,4)< > S(I)THEN I= 3:V= 0 11850 NEXT I:IF V= 1THEN PT= PT+ S(4) 11860 NEXT L:P= P+ PT:RETURN 14000 REM 14010 REM READ Q(I,J) 14020 REM 14030 RESTORE 620 14040 FOR I= 1TO 11:FOR J= 1TO 6:READ Q(I,J):NEXT J:NEXT I 14050 RETURN 14060 REM 14070 REM READ R(I,J) 14080 REM 14090 RESTORE 690 14100 FOR I= 1TO 4:FOR J= 1TO 5:READ R(I,J):NEXT J:NEXT I 14110 RETURN 14120 REM 14130 REM READ S(I) 14140 REM 14150 RESTORE 730 14160 FOR I= 1TO 4:READ S(I):NEXT I 14170 RETURN 14500 REM 14510 REM SHUFFLE DECK 14520 REM 14530 FOR I= 1TO 52:I(I)= 0:NEXT I 14540 FOR I= 1TO 52 14550 J= FN A(52)+ 1:IF I(J)= 1THEN 14550 14560 D(I,1)= J:D(I,3)= INT ((J- 1)/ 13)+ 1 14570 D(I,4)= J- 13* INT ((J- 1)/ 13):D(I,2)= D(I,4) 14580 IF D(I,2)> 10THEN D(I,2)= 10 14590 D(I,0)= 0:I(J)= 1:NEXT I 14600 FOR I= 1TO 15:V(I,7)= 0:NEXT I 14610 RETURN 15000 REM 15010 REM CLEAR PLAYING MATRIX 15020 REM 15030 FOR I= 0TO 8:FOR J= 0TO 4:H(I,J)= 0:NEXT J:NEXT I 15040 RETURN 15100 REM 15110 REM PLAYERS CARD INTO PLAYING FIELD 15120 REM 15130 FOR J= 1TO 4:H(C,J)= Y(CP,J):NEXT J:Y(CP,0)= 1 15140 RETURN 15200 REM 15210 REM COMPUTERS CARD INTO PLAYING FIELD 15220 REM 15230 FOR J= 1TO 4:H(C,J)= M(CC,J):NEXT J 15240 RETURN 15300 REM 15310 REM CHECK FOR 15/31 & PAIRS 15320 REM 15330 P= 0 15340 IF C< 2THEN RETURN 15350 IF H(C,4)= H(C- 1,4)THEN P= P+ 2 15360 IF P< 2OR C< 3THEN 15400 15370 IF H(C,4)= H(C- 2,4)THEN P= P+ 4 15380 IF P< 6OR C< 4THEN 15400 15390 IF H(C,4)= H(C- 3,4)THEN P= P+ 6 15400 IF WS= 15THEN P= P+ 2 15410 IF WS= 31THEN P= P+ 2 15420 RETURN 15500 REM 15510 REM PLOT SCORE 15520 REM 15530 Y9= 30 15540 IF SC< 31THEN Y9= SC 15550 PLOT 6,34,2,120,0,242,120,Y9,255 15560 PLOT 6,34,2,121,0,242,121,Y9,255 15570 IF SC< 31THEN 15720 15580 Y9= 62 15590 IF SC< 61THEN Y9= SC+ 1 15600 PLOT 6,38,2,120,32,242,120,Y9,255 15610 PLOT 6,38,2,121,32,242,121,Y9,255 15620 IF SC< 61THEN 15720 15630 Y9= 94 15640 IF SC< 91THEN Y9= SC+ 3 15650 PLOT 6,35,2,120,64,242,120,Y9,255 15660 PLOT 6,35,2,121,64,242,121,Y9,255 15670 IF SC< 91THEN 15720 15680 Y9= 126 15690 IF SC< 121THEN Y9= SC+ 5 15700 PLOT 6,33,2,120,96,242,120,Y9,255 15710 PLOT 6,33,2,121,96,242,121,Y9,255 15720 Y9= 30 15730 IF SP< 31THEN Y9= SP 15740 PLOT 6,34,2,124,0,242,124,Y9,255 15750 PLOT 6,34,2,125,0,242,125,Y9,255 15760 IF SP< 31THEN 15910 15770 Y9= 62 15780 IF SP< 61THEN Y9= SP+ 1 15790 PLOT 6,38,2,124,32,242,124,Y9,255 15800 PLOT 6,38,2,125,32,242,125,Y9,255 15810 IF SP< 61THEN 15910 15820 Y9= 94 15830 IF SP< 91THEN Y9= SP+ 3 15840 PLOT 6,35,2,124,64,242,124,Y9,255 15850 PLOT 6,35,2,125,64,242,125,Y9,255 15860 IF SP< 91THEN 15910 15870 Y9= 126 15880 IF SP< 121THEN Y9= SP+ 5 15890 PLOT 6,33,2,124,96,242,124,Y9,255 15900 PLOT 6,33,2,125,96,242,125,Y9,255 15910 IF SC> 120OR SP> 120THEN PLOT 3,60,0:PRINT "WIN" 15920 PLOT 6,39,8:RETURN 16000 REM 16010 REM MID/END PAIR CHECK FOR RUNS 16020 REM 16030 PT= 0 16040 IF C< 3THEN RETURN 16050 IF H(C,4)= H(C- 1,4)THEN RETURN 16060 IF H(C,4)= H(C- 2,4)THEN RETURN 16070 IF H(C- 1,4)= H(C- 2,4)THEN RETURN 16080 REM 16090 REM LOW END SET 16100 REM 16110 L= 1:FOR J= CTO 2STEP - 1:FOR K= J- 1TO 1STEP - 1 16120 IF H(J,4)= H(K,4)AND K> LTHEN L= K 16130 NEXT K:NEXT J 16140 REM 16150 REM CHECK RUNS 16160 REM 16170 IF C- L< 2THEN RETURN 16180 LO= 99:HI= 0:SUM= 0 16190 FOR K= LTO C 16200 IF H(K,4)< LOTHEN LO= H(K,4) 16210 IF H(K,4)> HITHEN HI= H(K,4) 16220 SUM= SUM+ H(K,4) 16230 NEXT K 16240 REM 16250 REM SCORE RUNS 16260 REM 16270 MID= (LO+ HI)/ 2 16280 CK= (C- L+ 1)* MID 16290 IF CK= SUMTHEN PT= C- L+ 1 16300 IF PT< 3THEN PT= 0 16310 IF (HI- LO+ 1)/ (C- L+ 1)< > 1THEN PT= 0 16320 IF PT= 0THEN L= L+ 1:GOTO 16170 16330 RETURN 17000 REM 17010 REM SCROLL CONTROL FOR PRINT STATEMENTS 17020 REM 17040 X1= 8:W1= 48:Y1= 26:H1= 6:C1= 1:GOSUB 64000 17050 GOSUB 17800:RETURN 17100 REM 17110 REM ERASE PLAYED CARD - PLAYER FIELD 17120 REM 17130 ON CPGOSUB 20000,20100,20200,20300,20400,20500 17140 PLOT 3,X1,Y1+ H1- 1:PRINT SPC( W1)"" 17150 FOR XX= 2TO 9:A= CALL (1):NEXT XX:RETURN 17200 REM 17210 REM CARD GRAPHICS 17220 REM 17230 FOR I= 0TO 34:T$(I)= " ":NEXT :REM 17240 IF ST= 3THEN U$= "c":GOTO 17280:REM 17250 IF ST= 4THEN U$= "h":GOTO 17280:REM 17260 IF ST= 2THEN U$= "d":GOTO 17280:REM 17270 IF ST= 1THEN U$= "s":REM 17280 PLOT 6,56 17290 ON VAGOTO 17480,17470,17460,17450,17430,17410,17400,17390,17380,17360,17320,17310 17300 T$(17)= LEFT$ (U$,2)+ "K":GOTO 17330 17310 T$(17)= LEFT$ (U$,2)+ "Q":GOTO 17330 17320 T$(17)= LEFT$ (U$,2)+ "J" 17330 T$(8)= U$:T$(7)= U$:T$(6)= U$:T$(11)= U$:T$(16)= U$ 17340 T$(21)= U$:T$(26)= U$:T$(27)= U$:T$(28)= U$:T$(23)= U$ 17350 T$(18)= U$:T$(13)= U$:GOTO 17490 17360 T$(6)= U$:T$(8)= U$:T$(16)= U$:T$(18)= U$:T$(26)= U$ 17370 T$(28)= U$:GOTO 17450 17380 T$(7)= U$:T$(27)= U$:GOTO 17400 17390 T$(12)= U$:T$(22)= U$:GOTO 17410 17400 T$(17)= U$ 17410 T$(6)= U$:T$(8)= U$:T$(16)= U$:T$(18)= U$:T$(26)= U$ 17420 T$(28)= U$:GOTO 17490 17430 T$(6)= U$:T$(8)= U$:T$(17)= U$:T$(26)= U$:T$(28)= U$ 17440 GOTO 17490 17450 T$(11)= U$:T$(13)= U$:T$(21)= U$:T$(23)= U$:GOTO 17490 17460 T$(7)= U$:T$(17)= U$:T$(27)= U$:GOTO 17490 17470 T$(12)= U$:T$(22)= U$:GOTO 17490 17480 T$(17)= U$ 17490 IF VA> 1AND VA< 11THEN T$= RIGHT$ (STR$ (VA),1) 17500 IF VA= 11THEN T$= "J" 17510 IF VA= 12THEN T$= "Q" 17520 IF VA= 13THEN T$= "K" 17530 IF VA= 1THEN T$= "A" 17540 IF ST= 2OR ST= 4THEN T$= ""+ T$:REM 17550 IF VA< > 10THEN 17580 17560 T$= LEFT$ (U$,2):M$= "0":N$= "1":IF ST= 2OR ST= 4THEN T$= ""+ T$:REM 17570 T$(0)= T$+ N$:T$(1)= T$+ M$:T$(33)= T$(0):T$(34)= T$(1):GOTO 17590 17580 T$(0)= T$:T$(34)= T$ 17590 CN= Y1+ H1- 1 17600 FOR I= 0TO 30STEP 5:PLOT 3,X1,CN:FOR J= 0TO 4:PRINT T$(I+ J);:NEXT J 17610 PRINT :A= CALL (1):NEXT I 17620 PLOT 6,39,3,X1,CN:PRINT SPC( W1)"":REM 17630 A= CALL (0):PLOT 8:RETURN 17700 REM 17710 REM ERASE CARDS - BOARD FIELD 17720 REM 17730 PLOT 6,39:FOR B= 1TO 8 17740 ON BGOSUB 21000,21100,21200,21300,21400,21500,21600,21700 17745 IF PEEK (28672+ 128* Y1+ 2* X1)= 32THEN 17770 17750 PLOT 3,X1,Y1+ H1- 1:PRINT SPC( W1)"" 17760 FOR XX= 1TO 9:A= CALL (1):NEXT XX:A= CALL (0):PLOT 8 17770 NEXT B:RETURN 17800 REM 17810 REM CALL AND PLOT 17820 REM 17830 A= CALL (1):A= CALL (0):PLOT 3,X1,Y1+ H1- 2:RETURN 20000 REM 20001 REM PLAYER CARD 1 20002 REM 20010 X1= 2:Y1= 2:W1= 5:H1= 8:C1= 1:GOSUB 64000 20020 RETURN 20100 REM 20101 REM PLAYER CARD 2 20102 REM 20110 X1= 9:Y1= 2:W1= 5:H1= 8:C1= 1:GOSUB 64000 20120 RETURN 20200 REM 20201 REM PLAYER CARD 3 20202 REM 20210 X1= 16:Y1= 2:W1= 5:H1= 8:C1= 1:GOSUB 64000 20220 RETURN 20300 REM 20301 REM PLAYER CARD 4 20302 REM 20310 X1= 23:Y1= 2:W1= 5:H1= 8:C1= 1:GOSUB 64000 20320 RETURN 20400 REM 20401 REM PLAYER CARD 5 20402 REM 20410 :X1= 30:Y1= 2:W1= 5:H1= 8:C1= 1:GOSUB 64000 20420 RETURN 20500 REM 20501 REM PLAYER CARD 6 20502 REM 20510 X1= 37:Y1= 2:W1= 5:H1= 8:C1= 1:GOSUB 64000 20520 RETURN 20600 REM 20601 REM UP CARD 20602 REM 20610 X1= 50:Y1= 2:W1= 5:H1= 8:C1= 1:GOSUB 64000 20620 RETURN 21000 REM 21001 REM COMPUTER CARD 1//BOARD CARD 1 21002 REM 21010 X1= 2:Y1= 10:W1= 5:H1= 8:C1= 1:GOSUB 64000 21020 RETURN 21100 REM 21101 REM COMPUTER CARD 2//BOARD CARD 2 21102 REM 21110 X1= 9:Y1= 10:W1= 5:H1= 8:C1= 1:GOSUB 64000 21120 RETURN 21200 REM 21201 REM COMPUTER CARD 3//BOARD CARD 3 21202 REM 21210 X1= 16:Y1= 10:W1= 5:H1= 8:C1= 1:GOSUB 64000 21220 RETURN 21300 REM 21301 REM COMPUTER CARD 4//BOARD CARD 4 21302 REM 21310 X1= 23:Y1= 10:W1= 5:H1= 8:C1= 1:GOSUB 64000 21320 RETURN 21400 REM 21401 REM COMPUTER CARD 5//BOARD CARD 5 21402 REM 21410 X1= 30:Y1= 10:W1= 5:H1= 8:C1= 1:GOSUB 64000 21420 RETURN 21500 REM 21501 REM COMPUTER CARD 6//BOARD CARD 6 21502 REM 21510 X1= 37:Y1= 10:W1= 5:H1= 8:C1= 1:GOSUB 64000 21520 RETURN 21600 REM 21601 REM BOARD CARD 7 21602 REM 21610 X1= 44:Y1= 10:W1= 5:H1= 8:C1= 1:GOSUB 64000 21620 RETURN 21700 REM 21701 REM BOARD CARD 8 21702 REM 21710 X1= 51:Y1= 10:W1= 5:H1= 8:C1= 1:GOSUB 64000 21720 RETURN 22000 REM 22001 REM COMPUTER CARD 1//CRIB CARD 1 22002 REM 22010 X1= 2:Y1= 18:W1= 5:H1= 8:C1= 1:GOSUB 64000 22020 RETURN 22100 REM 22101 REM COMPUTER CARD 2//CRIB CARD 2 22102 REM 22110 X1= 9:Y1= 18:W1= 5:H1= 8:C1= 1:GOSUB 64000 22120 RETURN 22200 REM 22201 REM COMPUTER CARD 3//CRIB CARD 3 22202 REM 22210 X1= 16:Y1= 18:W1= 5:H1= 8:C1= 1:GOSUB 64000 22220 RETURN 22300 REM 22301 REM COMPUTER CARD 4//CRIB CARD 4 22302 REM 22310 X1= 23:Y1= 18:W1= 5:H1= 8:C1= 1:GOSUB 64000 22320 RETURN 22400 REM 22401 REM COMPUTER CARD 5 22402 REM 22410 X1= 30:Y1= 18:W1= 5:H1= 8:C1= 1:GOSUB 64000 22420 RETURN 22500 REM 22501 REM COMPUTER CARD 6 22502 REM 22510 X1= 37:Y1= 18:W1= 5:H1= 8:C1= 1:GOSUB 64000 22520 RETURN 22600 REM 22601 REM DRAW BACK OF COMPUTER CARD 22602 REM 22610 FOR B1= 1TO 7:PLOT 3,X1,Y1+ H1- 1 22630 PRINT "xxxxx" 22640 A= CALL (1):NEXT B1 22660 PLOT 3,X1,Y1+ H1- 1,6,39:PRINT SPC( W1)"" 22670 A= CALL (0):PLOT 8:RETURN 22700 REM 22701 REM ERASE PLAYED CARD - COMPUTER FIELD 22702 REM 22710 PLOT 6,39:B= FN A(6)+ 1 22720 ON BGOSUB 22000,22100,22200,22300,22400,22500 22725 IF PEEK (28672+ 128* Y1+ 2* X1)= 32THEN 22710 22730 PLOT 3,X1,Y1+ H1- 1:PRINT SPC( W1)"" 22740 FOR B= 1TO 8:A= CALL (1):NEXT B:A= CALL (0) 22750 PLOT 8:RETURN 23000 REM 23001 REM SCREEN ERASE 23002 REM 23010 X1= 0:Y1= 2:W1= 58:H1= 30:C1= 1:GOSUB 64000 23020 FOR J= 0TO 30:A= CALL (1):NEXT J:A= CALL (0):PLOT 8 23030 RETURN 61000 REM 61001 REM NEW SOUND POKER 61002 REM 61010 AD= TM:DA= P1:GOSUB 61100 61020 AD= TM+ 2:DA= D1:GOSUB 61100 61030 POKE TM+ 4,NS:POKE TM+ 5,S1:POKE TM+ 6,S2 61040 RETURN 61100 REM 61101 REM COMMON SOUND/SCROLL SUBROUTINE 61102 REM 61110 Z1= INT (DA/ 256):Z2= DA- Z1* 256 61120 POKE AD,Z2:POKE AD+ 1,Z1 61130 RETURN 64000 REM 64010 REM SCROLLING SUBROUTINE 64020 REM 64030 DA= 28672+ 128* Y1+ X1+ X1:AD= TM+ 126:GOSUB 61100 64040 DA= 128- W1- W1:AD= TM+ 149:GOSUB 61100 64050 POKE TM+ 129,H1- 1:POKE TM+ 131,W1* (C1+ 1) 64060 POKE TM+ 143,35* (1- C1) 64070 RETURN