Compucolor.org – Virtual Media

Listing of file='BJACK.BAS;01' on disk='vmedia/blackjack-sector.ccvf'

100 REM  ** BLACKJACK - JAN 3,78 - JESSEN **
105 FOR I= 1TO PEEK (33209):X= RND (1):NEXT I
110 CLEAR 300
120 PLOT 12:GOSUB 2240:Z7= RND (1):GOSUB 2400:Y= 1:PLOT 6,3,14
130 PLOT 3,7,7:PRINT "WELCOME TO...";:PLOT 6,1:PRINT "BLACKJACK!":PLOT 15
140 K= 0:W1= 0:R= RND (1):N= INT (1945* RND (1)+ 1):X= INT (10* RND (1))
150 DIM D(52),E(5),V(5),T(5),W(5),T$(34),Q(52)
160 FOR A= 1TO 52:D(A)= 0:NEXT
170 FOR A= 0TO 39STEP 13:FOR C= 1TO 13:Q(A+ C)= C:NEXT C,A
180 K= K+ 1:FOR P= 1TO 5:E(P)= 0:V(P)= 0:T(P)= 0:NEXT :V(3)= 1
190 PLOT 3,1,13:GOSUB 2490
200 PLOT 3,15,13,6,6:IF W1= 0THEN GOSUB 2110
210 IF W1> 0THEN GOSUB 2090
220 IF W1< 0THEN GOSUB 2100
230 PLOT 3,1,13:INPUT "WAGER ?";W$:P= 1
240 IF W$= "END"THEN LOAD "MENU":RUN
250 W= VAL (W$)
260 PLOT 3,1,13:PRINT "WAGER=$";W;:IF W< = 500THEN 280
270 PLOT 3,4,11:PRINT "HOUSE LIMIT IS $500":GOSUB 2510:GOTO 190
280 IF W> 0THEN 300
290 PLOT 3,4,11,6,4:PRINT "BE SERIOUS":GOSUB 2220:GOTO 190
300 IF W< 1THEN 320
310 GOTO 350
320 PLOT 3,7,19
330 PRINT "CHEAPSKATE !";
340 GOSUB 2510:GOTO 190
350 Q3= W
360 IF Q3< 250THEN 380
370 Q3= INT (Q3/ 10)
380 FOR A4= 1TO Q3:X= RND (1):NEXT :W(2)= W:W(3)= W:GOTO 410
390 PLOT 3,14,7:PRINT "*I AM RESHUFFLING*":GOSUB 2220:GOTO 190
400 PLOT 3,4,11:PRINT "HOUSE LIMIT IS $500":GOSUB 2510:GOTO 190
410 E(5)= 1:GOSUB 2420:GOSUB 1100:IF E(1)= 0THEN 430
420 V(4)= 1
430 V(5)= 1:E(5)= 2:GOSUB 2420:GOSUB 1100:M= X:P= 3:V(3)= 1
440 GOSUB 2420:GOSUB 1100:G= X
450 V(3)= V(3)+ 1
460 GOSUB 2420:GOSUB 1100:IF V(2)> 0THEN 680
470 S= X
480 IF V(3)> 2THEN 680
490 IF T(P)< 21THEN 590
500 IF E(P)< 2THEN 520
510 E(P)= E(P)- 1:T(P)= T(P)- 10:GOTO 590
520 PLOT 3,(X9+ 8),(Y9+ 2):PRINT "*BLACKJACK*"
530 PLOT 3,10,11:PRINT "I DEALT WRONG AGAIN!"
540 E(5)= 2:P= 1:X9= 8:Y9= 3:X= M:GOSUB 1290
550 IF V(3)< 5THEN 570
560 W1= W1+ 2* W:GOTO 580
570 W1= W1+ 1.5* W
580 GOTO 2000
590 IF V(4)= 0THEN 680
600 PLOT 3,15,13:PRINT SPC( 22);""
610 PLOT 3,15,13:INPUT "INSURANCE ?";I$:PRINT
620 IF LEFT$ (I$,1)< > "Y"THEN 680
630 IF T(1)< 21THEN 660
640 W1= W1+ W:PRINT
650 PLOT 3,8,11:PRINT "YOU WIN $";W/ 2;" ON INSURANCE":GOTO 680
660 W1= W1- W/ 2:PRINT
670 PLOT 3,8,11:PRINT "YOU LOST $";W/ 2;" ON INSURANCE"
680 IF T(1)< 21THEN 730
690 IF E(1)< 2THEN 710
700 E(1)= E(1)- 1:T(1)= T(1)- 10:GOTO 730
710 PLOT 3,22,8:PRINT "**I HAVE BLACKJACK**"
720 X9= 8:Y9= 3:E(5)= 2:P= 1:X= M:GOSUB 1290:P= 3:GOTO 1910
730 IF T(P)< = 21THEN 790
740 IF E(P)> 0THEN 780
750 PLOT 3,16,8,6,6:PRINT "**YOU BUST**"
760 GOSUB 2470:C1= T(P)- 5* (INT (T(P)/ 5)):IF V(2)= 1THEN 1000
770 GOTO 1690
780 E(P)= E(P)- 1:T(P)= T(P)- 10
790 IF V(1)= 2THEN 760
800 IF V(3)> 4THEN 820
810 GOTO 830
820 IF T(P)< 21THEN 2230
830 PLOT 3,(X9+ 8),(Y9+ 2):INPUT "PLAY ";I$
840 V(1)= 0
850 IF LEFT$ (I$,1)= "H"THEN V(1)= 1
860 IF LEFT$ (I$,1)= "D"THEN V(1)= 2
870 IF LEFT$ (I$,1)= "S"THEN V(1)= 3
880 PLOT 3,(X9+ 8),(Y9+ 2):PRINT "      "
890 IF V(1)< 3THEN 1040
900 IF V(2)> 0THEN 1030
910 IF V(3)> 2THEN 1030
920 IF Q(G)= Q(S)THEN 950
930 PLOT 3,22,6,6,1:PRINT "THAT'S NO PAIR":GOSUB 2510
940 PLOT 3,22,6:PRINT "                                    ":GOTO 830
950 V(2)= 1:IF Q(G)< 1THEN 970
960 V(1)= 0
970 T(3)= 0:T(2)= 0:P= 2:X9= 2:Y9= 24:GOSUB 2460
980 X= S:GOSUB 1290:GOSUB 990:P= 3:W(3)= W:X= G:GOSUB 990:GOTO 460
990 GOSUB 1240:V(3)= 2:T(P)= C:RETURN
1000 P= 2:V(2)= 2:V(3)= 2:IF Q(G)< 1THEN 1020
1010 V(1)= 0
1020 GOTO 460
1030 PLOT 3,35,11,6,3:PRINT "NO SPLITS NOW     ":GOTO 830
1040 IF V(1)< 2THEN 1080
1050 IF V(3)= 2THEN 1070
1060 PLOT 3,35,11:PRINT "TOO LATE TO DOUBLE":GOTO 830
1070 W(P)= 2* W(P)
1080 IF V(1)> 0THEN 450
1090 GOTO 760
1100 GOSUB 1130:T(P)= T(P)+ C:IF V(5)= 0THEN 1120
1110 V(5)= 0:RETURN
1120 GOSUB 1290:RETURN
1130 IF R> = 50THEN 1180
1140 X= INT (53* RND (Y))
1150 IF X= 0THEN 1140
1160 IF D(X)= 0THEN 1220
1170 R= R+ 1:IF R< 50THEN 1130
1180 FOR A= 1TO 52:IF D(A)= KTHEN 1200
1190 D(A)= 0
1200 NEXT
1210 R= 0:PLOT 3,18,2:PRINT "*I RESHUFFLED*":GOTO 1130
1220 R= 0
1230 D(X)= K
1240 IF Q(X)> 1THEN 1260
1250 C= 11:E(P)= E(P)+ 1:RETURN
1260 IF Q(X)> 10THEN 1280
1270 C= Q(X):RETURN
1280 C= 10:RETURN
1290 GOSUB 1300:RETURN
1300 FOR I= 0TO 34:T$(I)= CHR$ (6)+ CHR$ (56)+ " ":NEXT
1310 IF X> 39THEN U$= CHR$ (6)+ CHR$ (56)+ CHR$ (99):GOTO 1350
1320 IF X> 26THEN U$= CHR$ (6)+ CHR$ (57)+ CHR$ (104):GOTO 1350
1330 IF X> 13THEN U$= CHR$ (6)+ CHR$ (57)+ CHR$ (100):GOTO 1350
1340 U$= CHR$ (6)+ CHR$ (56)+ CHR$ (115)
1350 PLOT 6,56
1360 ON Q(X)GOTO 1550,1540,1530,1520,1500,1480,1470,1460,1450,1430,1390,1380
1370 T$(17)= LEFT$ (U$,2)+ "K":GOTO 1400
1380 T$(17)= LEFT$ (U$,2)+ "Q":GOTO 1400
1390 T$(17)= LEFT$ (U$,2)+ "J"
1400 T$(8)= U$:T$(7)= U$:T$(6)= U$:T$(11)= U$:T$(16)= U$
1410 T$(21)= U$:T$(26)= U$:T$(27)= U$:T$(28)= U$:T$(23)= U$
1420 T$(18)= U$:T$(13)= U$:GOTO 1560
1430 T$(6)= U$:T$(8)= U$:T$(16)= U$:T$(18)= U$:T$(26)= U$
1440 T$(28)= U$:GOTO 1520
1450 T$(7)= U$:T$(27)= U$:GOTO 1470
1460 T$(12)= U$:T$(22)= U$:GOTO 1480
1470 T$(17)= U$
1480 T$(6)= U$:T$(8)= U$:T$(16)= U$:T$(18)= U$:T$(26)= U$
1490 T$(28)= U$:GOTO 1560
1500 T$(6)= U$:T$(8)= U$:T$(17)= U$:T$(26)= U$:T$(28)= U$
1510 GOTO 1560
1520 T$(11)= U$:T$(13)= U$:T$(21)= U$:T$(23)= U$:GOTO 1560
1530 T$(7)= U$:T$(17)= U$:T$(27)= U$:GOTO 1560
1540 T$(12)= U$:T$(22)= U$:GOTO 1560
1550 T$(17)= U$
1560 IF Q(X)> 1AND Q(X)< 11THEN T$= RIGHT$ (STR$ (Q(X)),1)
1570 IF Q(X)= 11THEN T$= "J"
1580 IF Q(X)= 12THEN T$= "Q"
1590 IF Q(X)= 13THEN T$= "K"
1600 IF Q(X)= 1THEN T$= "A"
1610 IF X> 13AND X< 40THEN T$= CHR$ (6)+ CHR$ (57)+ T$
1620 IF Q(X)< > 10GOTO 1650
1630 T$= LEFT$ (U$,2):M$= RIGHT$ (STR$ (0),1):N$= RIGHT$ (STR$ (1),1)
1640 T$(0)= T$+ N$:T$(1)= T$+ M$:T$(33)= T$(0):T$(34)= T$(1):GOTO 1660
1650 T$(0)= T$:T$(34)= T$
1660 Z9= Y9
1670 FOR I= 0TO 30STEP 5:PLOT 3,X9,Z9:FOR J= 0TO 4:PRINT T$(I+ J);:NEXT J
1680 Z9= Z9+ 1:PRINT :NEXT I:PLOT 6,2:RETURN
1690 P= 3:X= M:X9= 8:Y9= 3:GOSUB 1300
1700 IF T(3)< 22THEN 1730
1710 IF V(2)= 0THEN 1910
1720 GOTO 1910
1730 P= 1
1740 IF T(1)< 17THEN 2020
1750 IF T(1)> 17THEN 1770
1760 IF E(1)> 0THEN 2020
1770 IF T(1)> 21THEN 2030
1780 P= 3
1790 PLOT 3,(X9+ 6),5:PRINT "TOTAL:":PLOT 3,(X9+ 5),7:PRINT " ";T(1);" "
1800 IF T(P)> 21THEN 1840
1810 IF T(1)> 21THEN 1840
1820 IF T(1)> T(P)THEN 1910
1830 IF T(1)= T(P)THEN 1980
1840 W1= W1+ W(P):PRINT :PLOT 3,1,11
1850 FOR J= 1TO 61:PRINT " ";:NEXT :PRINT :PLOT 3,12,11,6,3
1860 IF C1> 3THEN 2120
1870 IF C1> 2THEN 2130
1880 IF C1> 1THEN 2140
1890 IF C1> 0THEN 2150
1900 GOTO 2160
1910 W1= W1- W(P):PRINT :PLOT 3,1,11
1920 FOR J= 1TO 61:PRINT " ";:NEXT :PRINT :PLOT 3,12,11,6,3
1930 IF C1> 3THEN 2170
1940 IF C1> 2THEN 2180
1950 IF C1> 1THEN 2190
1960 IF C1> 0THEN 2200
1970 GOTO 2210
1980 PLOT 3,24,10:PRINT "WE PUSH"
1990 IF V(2)> 0THEN 2010
2000 GOSUB 2060:GOSUB 2510:GOTO 180
2010 P= 3:V(2)= 0:GOTO 1800
2020 E(5)= E(5)+ 1:P= 1:GOSUB 2420:GOSUB 1100:GOTO 1730
2030 IF E(1)= 0THEN 2050
2040 E(1)= E(1)- 1:T(1)= T(1)- 10:GOTO 1730
2050 PLOT 3,(X9+ 13),6,6,5:PRINT "*I BUST*":GOTO 1780
2060 PLOT 3,15,13,6,6
2070 IF W1< 0THEN 2100
2080 IF W1= 0THEN 2110
2090 PRINT "YOU'RE AHEAD $";W1;"  ";:RETURN
2100 PRINT "YOU'RE BEHIND $";- W1;"  ";:RETURN
2110 PRINT "YOU'RE EVEN           ";:RETURN
2120 PRINT "I MUST HAVE DEALT WRONG":GOTO 1990
2130 PRINT "YOU'RE LUCKY AGAIN":GOTO 1990
2140 PRINT "YOU MUST HAVE BEEN PEEKING":GOTO 1990
2150 PRINT "I COULD LOSE MY JOB THIS WAY":GOTO 1990
2160 PRINT "THE CARDS HAVE TURNED AGAINST ME":GOTO 1990
2170 PRINT "*THE BOTTOM OF THE DECK STRIKES AGAIN*":GOTO 1990
2180 PRINT "A VICTORY FOR US GOOD GUYS":GOTO 1990
2190 PRINT "YOU CAN'T BEAT SKILL":GOTO 1990
2200 PRINT "YOU CAN'T WIN THEM ALL":GOTO 1990
2210 PRINT "THANKS!":GOTO 1990
2220 FOR M9= 1TO 52:D(M9)= 0:NEXT :R= 0:RETURN
2230 PLOT 3,12,11:PRINT "*YOU WIN WITH 5 CARDS*":PRINT :GOTO 540
2240 PLOT 6,2,12,15,3,39,13:PRINT "OPERATING INSTRUCTIONS:"
2250 PLOT 6,1:PRINT TAB( 40)"FOLLOW ALL INPUTS WITH"
2260 PLOT 6,6:PRINT TAB( 45)"RETURN KEY"
2270 PLOT 6,1:PRINT
2280 PRINT TAB( 40)"RESPONSE TO HIT:":PLOT 6,3
2290 PRINT TAB( 42);"<CR> = STAND":PRINT TAB( 45);"H = HIT"
2300 PRINT TAB( 45);"D = DOUBLE DOWN":PRINT TAB( 45);"S = SPLIT PAIR"
2310 PLOT 6,5:PRINT TAB( 43)"INSURANCE:"
2320 PLOT 6,3:PRINT TAB( 45);"N = NO":PRINT TAB( 45);"Y = YES"
2330 PLOT 6,1:PRINT TAB( 47)"RULES:"
2340 PLOT 6,4:PRINT TAB( 40)"DEALER MUST : HIT 16":PRINT TAB( 53)"STAY 17"
2350 PLOT 6,2
2360 PRINT TAB( 39)"HOUSE LIMIT IS $500.00"
2370 PRINT TAB( 39)"BLACKJACK PAYS 1.5 TO 1"
2380 PRINT TAB( 39);"BET END FOR NEXT GAME"
2390 PLOT 3,11,1:PRINT "DEALER":PLOT 3,11,15:PRINT "PLAYER":RETURN
2400 PLOT 6,2,2,250,0,0,127,71,75,79,127,127,127
2410 PLOT 246,0,0,127,75,79,127,127,255:RETURN
2420 ON PGOTO 2430,2440,2450
2430 X9= INT (2+ E(5)* 6- 6):Y9= 3:GOTO 2460
2440 X9= INT (2+ V(3)* 6- 6):Y9= 24:GOTO 2460
2450 X9= INT (2+ V(3)* 6- 6):Y9= 16
2460 RETURN
2470 PLOT 3,(X9+ 6),(Y9+ 2):PRINT "TOTAL";
2480 PLOT 3,(X9+ 5),(Y9+ 5):PRINT " ";T(P);" ":RETURN
2490 PLOT 6,0,2,250,4:FOR P1= 4TO 60STEP 4:PLOT P1,72:NEXT
2500 PLOT 75,72:FOR P1= 80TO 116STEP 4:PLOT P1,124:NEXT :PLOT 255:RETURN
2510 FOR P1= 1TO 1000:NEXT P1:RETURN