10 ' ---------------------------------------------- 20 ' AUSTRALIAN BLACKJACK 30 ' ---------------------------------------------- 40 ' Program by G C Lindridge 6/12/90 50 ' Hole card conditions 19/11/92 60 ' Double on any 2 cards 1/12/93 70 ' 80 'When a satisfactory time delay setting has been found it ought to 90 'be entered into the code and then the TIME DELAY SETTING subroutine 100 'can be isolated from the normal running of the program. 110 CLEAR :KEY OFF :CLS :SCREEN 0 :WIDTH 80 120 DEFINT A-Z 130 DIM BET(2), PLHAND(2), PLSOFT(2), PLCARD(15), DLCARD(15) 140 DIM SOFT(21,11), HARD(27,11), DOUB(11,11), PAIR(22,11) 150 TD = 600 'TIME DELAY 160 GOSUB 850 'TIME DELAY SETTING - put behind a REM when not needed 170 CLS 180 GOSUB 290 'INPUT SCREEN 190 SCREEN 1 'LARGE DISPLAY - change to SCREEN 2 for small display 200 GOSUB 1440 'PLAY THE GAME 210 WIDTH 80 :SCREEN 0 220 IF BANK < MIN THEN PRINT "GONE BROKE !! ";BANK;"in the kitty." :PRINT 230 PRINT "END BLACKJACK" 240 PRINT :PRINT "Do you want to play again?" :PRINT 250 CH$ = INKEY$ :IF CH$ = "" THEN 250 260 IF CH$ = "Y" THEN 100 ELSE SYSTEM 270 END 280 ' ---------------------------------------------- 290 ' INPUT SCREEN 300 ' ---------------------------------------------- 310 WHILE (CH$ <> "5") 320 LOCATE 1,31 :PRINT "AUSTRALIAN BLACKJACK" 330 PRINT TAB(31);"--------------------" 340 LOCATE 6,26 :PRINT "< 1 > How to play Blackjack" 350 PRINT TAB(26);"< 2 > To see the User Guide" 360 PRINT TAB(26);"< 3 > To see BASIC Strategy" 370 PRINT TAB(26);"< 4 > To see HI-LO Strategy" 380 PRINT TAB(26);"< 5 > Play Blackjack" 390 CH$=INKEY$ 400 ON VAL(CH$) GOSUB 4190,4630,5090,5550 410 WEND 420 CLS 430 PRINT TAB(31);"AUSTRALIAN BLACKJACK" 440 PRINT TAB(31);"--------------------" 450 LOCATE 6,27 :INPUT "Preferred MINIMUM bet..";MIN 460 MIN = INT(MIN/10)*10 :IF MIN < 10 THEN LET MIN = 10 470 PRINT TAB(27);"TABLE MINIMUM BET IS....";MIN 480 MAX = 50*MIN 490 PRINT :PRINT TAB(27);"TABLE MAXIMUM BET IS....";MAX 500 PRINT :PRINT TAB(27);"HOW MUCH IS YOUR BANK..";:INPUT BANK 510 WHILE BANK < MIN*5 520 PRINT :PRINT TAB(27);"SPLITS, DOUBLES & INSURANCE" 530 PRINT TAB(27);"NEED A BANK OF AT LEAST......";MIN*5 540 PRINT :PRINT TAB(27);"HOW MUCH IS YOUR BANK..";:INPUT BANK 550 WEND 560 PRINT :PRINT TAB(21);"You can play every hand or only the hands" 570 PRINT TAB(21);"where the HI-LO count is TRUE 2 or better." 580 PRINT :PRINT TAB(21);"Do you want to play on the count? Y/N "; 590 WHILE ONCOUNT$="" :ONCOUNT$=INKEY$ :WEND 600 PRINT ONCOUNT$ 610 IF ONCOUNT$="Y" THEN LET TRUTOBET= 2 ELSE TRUTOBET= -50 620 GOSUB 1020 'CREATE PACK 630 PRINT TAB(21);"Do you want to inspect the cards? Y/N "; 640 WHILE INSPECT$="" :INSPECT$=INKEY$ :WEND 650 PRINT INSPECT$ 660 SNEAK$="" :GOSUB 1160 'SHOW PACK 670 RANDOMIZE TIMER 680 GOSUB 1270 'SHUFFLE CARDS 690 SNEAK$="SNEAK PREVIEW" :GOSUB 1160 'SHOW SHUFFLED PACK 700 SHU=1 'FIRST SHOE 710 RETURN 720 ' ---------------------------------------------- 730 ' PRESS ANY KEY 740 ' ---------------------------------------------- 750 LOCATE 25,1 :PRINT ,,,"Press any key to continue"; 760 WHILE INKEY$ = "" :WEND 770 CLS 780 RETURN 790 ' ---------------------------------------------- 800 ' TIME DELAY 810 ' ---------------------------------------------- 820 FOR K=1 TO TD :FOR L=1 TO TD :NEXT L :NEXT K 830 RETURN 840 ' ---------------------------------------------- 850 ' ADJUST TIME DELAY 860 ' ---------------------------------------------- 870 PRINT :PRINT "Do you want to change the display time? Y/N "; 880 CHOICE$ ="" :WHILE CHOICE$="" :CHOICE$=INKEY$ :WEND 890 PRINT CHOICE$ 900 IF CHOICE$<>"Y" THEN 1000 910 PRINT :PRINT "Increase time delay? Y/N "; 920 CHOICE$ ="" :WHILE CHOICE$="" :CHOICE$=INKEY$ :WEND 930 PRINT CHOICE$ 940 IF CHOICE$="Y" THEN LET TD= TD+10 ELSE TD=TD-10 950 PRINT :PRINT "Time delay now ";TD 960 PRINT :PRINT "More change? Y/N "; 970 CHOICE$ ="" :WHILE CHOICE$="" :CHOICE$=INKEY$ :WEND 980 PRINT CHOICE$ 990 IF CHOICE$="Y" THEN 910 1000 RETURN 1010 ' ---------------------------------------------- 1020 ' CREATE PACK 1030 ' ---------------------------------------------- 1040 PRINT :PRINT TAB(27);"HOW MANY DECKS.........";:INPUT DECKS 1050 PRINT 1060 IF DECKS < 1 OR DECKS > 8 THEN LET DECKS = 8 :PRINT TAB(32);"8 DECK SHOE" 1070 PACK = DECKS * 52 'NUM OF CARDS 1080 DIM CARD(PACK) 1090 ' 'GIVE GAME VALUES TO CARDS 1100 FOR K = 1 TO PACK 1110 CARD(K) = K MOD 13 + 2 1120 IF CARD(K) > 11 THEN LET CARD(K) = 10 1130 NEXT K 1140 RETURN 1150 ' ---------------------------------------------- 1160 ' SHOW CARDS 1170 ' ---------------------------------------------- 1180 IF INSPECT$ <> "Y" THEN 1250 'DON'T SHOW PACK 1190 PRINT SNEAK$ 1200 FOR K = PACK TO 1 STEP -1 1210 IF CARD(K) < 11 THEN PRINT USING "####";CARD(K); ELSE PRINT " A"; 1220 NEXT K 1230 PRINT :PRINT 1240 GOSUB 730 'PRESS ANY KEY 1250 RETURN 'END DISPLAY 1260 ' ---------------------------------------------- 1270 LOCATE 25,1 : PRINT "[SHUFFLE] "; 1280 ' ---------------------------------------------- 1290 FOR K = PACK TO 2 STEP -1 1300 X = INT(RND(1)*K)+1 1310 SWAP CARD(K),CARD(X) 1320 NEXT K 1330 SHOE = PACK 'PUT CARDS IN SHOE 1340 RETURN 1350 ' ---------------------------------------------- 1360 ' RESHUFFLE 1370 ' ---------------------------------------------- 1380 CLS 1390 DEALT=0 :COUNT=0 :TRU=0 :TEN=0 'INITIALISE COUNTS 1400 SHU = SHU+1 1410 GOSUB 1270 'SHUFFLE 1420 RETURN 1430 ' ---------------------------------------------- 1440 ' PLAY THE GAME 1450 ' ---------------------------------------------- 1460 WHILE (BET$ <> "Q") AND (BANK >= MIN) 'CONTINUE PLAY 1470 GOSUB 1520 'PLAY ONE HAND 1480 IF (SHOE < 6*DECKS+5) OR (BET$="R") THEN GOSUB 1360 'RESHUFFLE POINT 1490 WEND 1500 RETURN 1510 ' ---------------------------------------------- 1520 ' PLAY ONE HAND 1530 ' ---------------------------------------------- 1540 P=0 :D=0 :ROW=0 :COL=0 :BET$="0" :INSBET=0 'INITIALISE 1550 DLHAND=0 :DLSOFT=0 :PLBLACK=0 :DLBLACK=0 1560 FOR K = 1 TO 15 1570 PLCARD(K)=0 :DLCARD(K)=0 1580 NEXT K 1590 FOR K = 1 TO 2 1600 PLHAND(K)=0 :PLSOFT(K)=0 :BET(K)=0 1610 NEXT K 1620 CHIPS = BANK 1630 GOSUB 2110 'COUNT DISPLAYS 1640 IF TRU < TRUTOBET THEN 1740 1650 CLS 1660 GOSUB 2110 'COUNT DISPLAYS 1670 LOCATE 25,15 :PRINT "BET Q to Quit "; 1680 LOCATE 25, 1 :INPUT;"MAKE BET $",BET$ 1690 IF (BET$="Q") OR (BET$="R") THEN 1850 'QUIT OR RE-SHUFFLE 1700 IF (BET$="T") THEN GOSUB 850 'ADJUST TIME DELAY 1710 BET(1)= INT(ABS(VAL(BET$))/5)*5 'BET IN UNITS OF 5 1720 IF BET(1) > BANK THEN LET BET(1)=INT(BANK/5)*5 'BET THE LOT 1730 IF BET(1) > MAX THEN LET BET(1)=MAX 'MAX LIMIT BET 1740 IF BET$="0" THEN LET BET(1)=0 ELSE IF BET(1) < MIN THEN LET BET(1)=MIN 1750 INITBET = BET(1) 'INITIAL BET 1760 CLS 1770 GOSUB 1950 'CALC BANK 1780 GOSUB 2210 'PLAYER'S FIRST CARD 1790 GOSUB 3350 'DEALER'S FIRST CARD 1800 GOSUB 2210 'PLAYER'S SECOND CARD 1810 IF BET$="0" THEN GOSUB 6740 ELSE GOSUB 2340 'PLAYER OPTIONS 1820 GOSUB 3510 'COMPLETE DEALER'S HAND 1830 GOSUB 800 'TIME DELAY 1840 GOSUB 3620 'SETTLE BETS 1850 RETURN 'END DEALING 1860 ' ---------------------------------------------- 1870 ' DEAL A CARD 1880 ' ---------------------------------------------- 1890 CARD = CARD(SHOE) 'THE TOP CARD 1900 SHOE = SHOE - 1 'REMOVE CARD FROM PACK 1910 DEALT = PACK - SHOE 'NUM CARDS DEALT 1920 GOSUB 2020 'SHOW COUNTS 1930 RETURN 'DEAL CARD 1940 ' ---------------------------------------------- 1950 ' CALC BANK 1960 ' ---------------------------------------------- 1970 CHIPS=CHIPS-BET(1) 1980 LOCATE 24, 1 :PRINT "BANK";CHIPS; 1990 LOCATE 25,15 :PRINT "B=";BET(1); 2000 RETURN 2010 ' ---------------------------------------------- 2020 ' HI-LO & INSURANCE COUNT CALCS 2030 ' ---------------------------------------------- 2040 IF CARD >= 10 THEN LET COUNT=COUNT-1 'NEGATIVE CARD 2050 IF CARD <= 6 THEN LET COUNT=COUNT+1 'POSITIVE CARD 2060 TRU = INT(COUNT/SHOE*52) 'TRUE COUNT 2070 IF CARD = 10 THEN LET TEN=TEN-2 ELSE TEN=TEN+1 'TEN COUNT 2080 GOSUB 2110 'COUNT DISPLAYS 2090 RETURN 2100 ' ---------------------------------------------- 2110 ' HI-LO & INSURANCE COUNT DISPLAY 2120 ' ---------------------------------------------- 2130 LOCATE 24,1 :PRINT "BANK";CHIPS; 2140 LOCATE 24,15 :PRINT "C=";:PRINT USING "###";COUNT; 'RUNNING COUNT 2150 LOCATE 24,24 :PRINT "T=";:PRINT USING "###";TRU; 'TRUE COUNT 2160 LOCATE 24,33 :PRINT "I=";:PRINT USING "###";TEN; 'INSURANCE COUNT 2170 LOCATE 25,24 :PRINT "S=";:PRINT USING "###";SHU; 'SHOE NUMBER 2180 LOCATE 25,33 :PRINT "D=";:PRINT USING "###";DEALT; 'CARDS DEALT 2190 RETURN 2200 ' ---------------------------------------------- 2210 ' PLAYER'S FIRST 2 CARDS 2220 ' ---------------------------------------------- 2230 H=1 'PLAYER'S FIRST HAND 2240 GOSUB 1870 'DEAL A CARD 2250 P=P+1 'COUNT PLAYER'S CARDS 2260 PLCARD(P) = CARD 2270 PLHAND(H) = PLHAND(H) + PLCARD(P) 2280 PLSOFT(H) = PLSOFT(H) + PLCARD(P) 2290 IF CARD=11 THEN LET PLSOFT(H)=PLSOFT(H)-10 2300 IF PLHAND(H) > 21 AND PLSOFT(H) < PLHAND(H) THEN LET PLHAND(H)=PLHAND(H)-10 2310 ROW = 80 :COL = P*32 - 32 :GOSUB 3770 'SHOW CARDS IN BOX 2320 RETURN 2330 ' ---------------------------------------------- 2340 ' PLAYER'S OPTIONS 2350 ' ---------------------------------------------- 2360 LEGAL=1 :COL = 32 'INITIALISE DRAW CARDS 2370 IF DLCARD(1) = 11 THEN GOSUB 2440 'INSURANCE 2380 IF PLCARD(1) + PLCARD(2) = 21 THEN GOSUB 2540 'BLACKJACK 2390 IF PLCARD(1) = PLCARD(2) THEN GOSUB 2600 'SPLIT PAIR 2400 IF LEGAL AND ((PLHAND(1) < 12) OR (PLSOFT(1) < 11)) THEN GOSUB 2920 'DOUBLE 2410 IF LEGAL THEN GOSUB 3080 'DRAW CARDS 2420 RETURN 2430 ' ---------------------------------------------- 2440 LOCATE 25,1: PRINT "INS Y/N "; 2450 ' ---------------------------------------------- 2460 CH$ = "" :WHILE CH$="" :CH$=INKEY$ :WEND 2470 IF CH$ <> "Y" THEN 2520 2480 LOCATE 25,1 :INPUT;"INS= $ ";INSBET 2490 IF (INSBET < 1) OR (INSBET > BET(1)/2) THEN LET INSBET=BET(1)/2 2500 IF INSBET > CHIPS THEN LET INSBET=CHIPS 2510 CHIPS=CHIPS-INSBET :LOCATE 24,1 :PRINT "BANK";CHIPS; 2520 RETURN 2530 ' ---------------------------------------------- 2540 LOCATE 13,31: PRINT "BLACKJACK" 2550 ' ---------------------------------------------- 2560 PLBLACK=1 2570 LEGAL=0 'INHIBIT DRAW CARDS 2580 RETURN 2590 ' ---------------------------------------------- 2600 LOCATE 25,1 : PRINT "SPLIT Y/N"; 2610 ' ---------------------------------------------- 2620 CH$ = "" :WHILE CH$="" :CH$=INKEY$ :WEND 2630 IF CH$ <> "Y" OR CHIPS < BET(1) THEN 2830 2640 PLHAND(1) = PLCARD(1) :PLSOFT(1) = PLCARD(1) 2650 PLHAND(2) = PLCARD(2) :PLSOFT(2) = PLCARD(2) 2660 GOSUB 4090 'MOVE SPLIT CARD IN BOX 2670 BET(2) = BET(1) 'BET ON EACH SPLIT CARD 2680 GOSUB 1950 'CALC BANK 2690 FOR H = 1 TO 2 2700 LEGAL=1 'ALLOW TO DRAW CARDS 2710 P=P+1 2720 GOSUB 1870 'DEAL A CARD 2730 PLCARD(P) = CARD 2740 PLHAND(H) = PLHAND(H) + PLCARD(P) 2750 PLSOFT(H) = PLSOFT(H) + PLCARD(P) 2760 IF CARD = 11 THEN LET PLSOFT(H) = PLSOFT(H)-10 2770 ROW = H*48+32 :COL = 32 :GOSUB 3770 'SHOW SPLIT PAIR DRAW 2780 IF PLCARD(1) = 11 THEN GOSUB 2850 'SPLIT ACES 2790 IF LEGAL AND ((PLHAND(H) <12) OR (PLSOFT(H) <11)) THEN GOSUB 2920 'DOUBLE 2800 IF LEGAL THEN GOSUB 3080 'DRAW CARDS 2810 NEXT H 2820 LEGAL=0 'INHIBIT DRAW CARDS 2830 RETURN 2840 ' ---------------------------------------------- 2850 ' SPLIT ACES 2860 ' ---------------------------------------------- 2870 IF PLHAND(H) > 21 THEN LET PLHAND(H) = PLHAND(H) - 10 'DRAW ANOTHER ACE 2880 LOCATE H*6+7,30 :PRINT USING "###";PLHAND(H) 'SHOW HAND TOTAL 2890 LEGAL=0 'INHIBIT DRAW CARDS 2900 RETURN 2910 ' ---------------------------------------------- 2920 LOCATE 25,1 : PRINT "DOUBLE Y/N"; 2930 ' ---------------------------------------------- 2940 CH$ = "" :WHILE CH$="" :CH$=INKEY$ :WEND 2950 IF CH$ <> "Y" OR CHIPS < BET(1) THEN 3060 2960 GOSUB 1950 'CALC BANK 2970 BET(H) = 2*BET(H) 'DOUBLE THE BET 2980 GOSUB 1870 'DEAL A CARD 2990 P=P+1 3000 PLCARD(P) = CARD 3010 PLHAND(H) = PLHAND(H) + PLCARD(P) 3020 ROW = H*48+32 :COL = 64 :GOSUB 3770 'SHOW CARD 3030 IF PLHAND(H) > 21 THEN LET PLHAND(H) = PLHAND(H) - 10 3040 LOCATE H*6+7,30 :PRINT PLHAND(H) 'SHOW HAND TOTAL 3050 LEGAL=0 'INHIBIT DRAW CARDS 3060 RETURN 3070 ' ---------------------------------------------- 3080 ' DRAW CARDS 3090 ' ---------------------------------------------- 3100 WHILE PLHAND(H) < 12 3110 GOSUB 3230 'COMPULSORY DRAW 3120 WEND 3130 CH$="Y" 'INITIALISE WHILE 3140 WHILE (PLHAND(H) < 21) AND (CH$ = "Y") 3150 LOCATE 25,1 :PRINT "A CARD Y/N"; 3160 CH$ = "" :WHILE CH$="" :CH$=INKEY$ :WEND 3170 IF CH$ = "Y" THEN GOSUB 3230 'DRAW ANOTHER CARD 3180 WEND 3190 LOCATE H*6+7,30 :PRINT PLHAND(H); 'SHOW HAND TOTAL 3200 IF PLHAND(H) > 21 THEN PRINT "BUST" 3210 RETURN 3220 ' ---------------------------------------------- 3230 ' CARDS AS NEEDED 3240 ' ---------------------------------------------- 3250 GOSUB 1870 'DEAL A CARD 3260 P=P+1 3270 PLCARD(P) = CARD 3280 PLHAND(H) = PLHAND(H) + PLCARD(P) 3290 PLSOFT(H) = PLSOFT(H) + PLCARD(P) 3300 IF CARD=11 THEN LET PLSOFT(H)=PLSOFT(H)-10 3310 IF PLHAND(H) > 21 AND PLSOFT(H) < PLHAND(H) THEN LET PLHAND(H)=PLHAND(H)-10 3320 ROW = H*48+32 :COL = COL+32 :GOSUB 3770 'SHOW CARD IN BOX 3330 RETURN 3340 ' ---------------------------------------------- 3350 ' DEALER'S HAND 3360 ' ---------------------------------------------- 3370 GOSUB 1870 'DEAL A CARD 3380 D=D+1 3390 DLCARD(D) = CARD 3400 IF DLCARD(1) + DLCARD(2) = 21 THEN LET DLBLACK = 1 3410 DLHAND = DLHAND + CARD 3420 DLSOFT = DLSOFT + CARD 3430 IF CARD=11 THEN LET DLSOFT=DLSOFT-10 3440 IF DLHAND > 21 AND DLSOFT < DLHAND THEN LET DLHAND = DLHAND-10 3450 ROW = 16 :COL = D*32-32 :GOSUB 3830 'SHOW CARD 3460 IF DLHAND > 16 THEN LOCATE 5,30 :PRINT DLHAND; 'SHOW HAND TOTAL 3470 IF DLHAND > 21 THEN PRINT "BUST" 3480 IF DLBLACK THEN LOCATE 5,31 :PRINT "BLACKJACK" 3490 RETURN 3500 ' ---------------------------------------------- 3510 ' COMPLETE DEALER'S HAND 3520 ' ---------------------------------------------- 3530 IF (PLBLACK AND DLCARD(1) >= 10) OR (INSBET >= 1 AND DLCARD(2) = 0) THEN GOSUB 3350 'TO DEALER'S HAND 3540 IF PLBLACK THEN 3600 3550 IF PLHAND(1) > 21 AND (PLHAND(2) = 0 OR PLHAND(2) > 21) THEN 3600 3560 WHILE DLHAND < 17 3570 GOSUB 3350 'GO FOR COMPULSORY DRAW 3580 GOSUB 800 'TIME DELAY 3590 WEND 3600 RETURN 3610 ' ---------------------------------------------- 3620 ' SETTLEMENT OF BETS 3630 ' ---------------------------------------------- 3640 IF DLBLACK THEN LET BANK = BANK + 2*INSBET ELSE BANK = BANK - INSBET 3650 IF PLHAND(1) > 21 THEN LET PLHAND(1) = 0 3660 IF H > 1 AND PLHAND(2) > 21 THEN LET PLHAND(2) = 0 3670 IF H=1 THEN LET PLHAND(2) = DLHAND 3680 IF PLBLACK THEN LET PLHAND(1) = 22 3690 IF DLHAND > 21 THEN LET DLHAND = 1 3700 IF DLBLACK THEN LET DLHAND = 22 :BET(1) = INITBET :BET(2) = 0 3710 IF PLHAND(1) > DLHAND THEN LET BANK = BANK + BET(1): IF PLBLACK THEN LET BANK = BANK + .5*BET(1) 3720 IF PLHAND(2) > DLHAND THEN LET BANK = BANK + BET(2) 3730 IF PLHAND(1) < DLHAND THEN LET BANK = BANK - BET(1) 3740 IF PLHAND(2) < DLHAND THEN LET BANK = BANK - BET(2) 3750 RETURN 3760 ' ---------------------------------------------- 3770 ' PICTURE PLAYER'S CARDS 3780 ' ---------------------------------------------- 3790 PICTURE = PLCARD(P) 3800 GOSUB 3890 'DRAW PICTURE 3810 RETURN 3820 ' ---------------------------------------------- 3830 ' PICTURE DEALER'S CARDS 3840 ' ---------------------------------------------- 3850 PICTURE = DLCARD(D) 3860 GOSUB 3890 'DRAW PICTURE 3870 RETURN 3880 ' ---------------------------------------------- 3890 ' DRAW CARD AND VALUE 3900 ' ---------------------------------------------- 3910 LINE (COL+4,ROW+4)-(COL+30,ROW+44),,B 'DRAW CARD BORDER 3920 IF PICTURE = 11 THEN LET PIP$ = "A " 3930 IF PICTURE = 10 THEN GOSUB 4000 '1O, J, Q OR K 3940 IF PICTURE < 10 THEN LET PIP$ = RIGHT$(STR$(PICTURE),1)+" " 3950 SUIT$ = CHR$(INT(RND*4+3)) 'CARD SUIT 3960 LOCATE ROW/8+2,COL/8+2 :PRINT PIP$; 'DRAW PIPS 3970 LOCATE ROW/8+4,COL/8+3 :PRINT SUIT$; 'DRAW SUIT 3980 RETURN 3990 ' ---------------------------------------------- 4000 ' 10 VALUE CARDS 4010 ' ---------------------------------------------- 4020 X = INT (RND(1)*4) 4030 IF X = 0 THEN LET PIP$ = "1O" 4040 IF X = 1 THEN LET PIP$ = "J " 4050 IF X = 2 THEN LET PIP$ = "Q " 4060 IF X = 3 THEN LET PIP$ = "K " 4070 RETURN 4080 ' ---------------------------------------------- 4090 ' BLANK OUT AND REDRAW SPLIT CARD 4100 ' ---------------------------------------------- 4110 LINE (COL+4,ROW+4)-(COL+30,ROW+44),0,B 'BLANK OUT CARD BORDER 4120 LOCATE ROW/8+2,COL/8+2 :PRINT" "; 'BLANK OUT PIPS 4130 LOCATE ROW/8+4,COL/8+3 :PRINT" "; 'BLANK OUT SUIT 4140 LINE (COL-28,ROW+52)-(COL-2 ,ROW+92),,B 'REDRAW CARD BORDER 4150 LOCATE ROW/8+8, COL/8-2 :PRINT PIP$; 'REDRAW PIPS 4160 LOCATE ROW/8+10,COL/8-1 :PRINT SUIT$; 'REDRAW SUIT 4170 RETURN 4180 ' ---------------------------------------------- 4190 CLS : PRINT ,,"HOW TO PLAY BLACKJACK" :PRINT 4200 ' ---------------------------------------------- 4210 PRINT ,"A hand is the total of the values of two or more cards." 4220 PRINT ,"Numeric cards count their pip values. Face cards count 10." 4230 PRINT ,"Aces count 11 or 1. If any hand totals more than 21 when" 4240 PRINT ,"an Ace is counted as 11, its value changes to 1. Suits" 4250 PRINT ,"have no meaning. Several decks are shuffled together." 4260 PRINT ,"Players must place their bets before any cards are dealt." 4270 PRINT ,"One card is dealt to each player and one to the dealer." 4280 PRINT ,"A second card is then dealt to each player." :PRINT 4290 PRINT ,"The players, in turn, are then offered options." 4300 PRINT ," If a player's first 2 cards are an Ace and a 10 value" 4310 PRINT ," card then that hand is a Blackjack." 4320 PRINT ," If a hand total is less than 21 the player can draw" 4330 PRINT ," additional cards or can stay any time (minimum 12)." 4340 PRINT ," If the first 2 cards are a pair they may be split into" 4350 PRINT ," 2 hands, each with a bet and played as normal except" 4360 PRINT ," that split Aces are dealt only one card each." 4370 PRINT ," A player on his first 2 cards (but not blackjack) may" 4380 PRINT ," double his bet and be dealt one card only to the hand." 4390 PRINT ," Split pair hands (but not Aces) have this same option." 4400 PRINT ,"If a player's hand exceeds 21 the hand has 'busted'." 4410 GOSUB 730 'PRESS ANY KEY 4420 CLS :PRINT ,,"HOW TO PLAY BLACKJACK page 2" :PRINT 4430 PRINT ,"Insurance wager. If the dealer has an Ace, the player may" 4440 PRINT ,"place a separate bet of up to half of his original bet. If" 4450 PRINT ,"the dealer blackjacks the bet wins 2/1. If not, it is lost.":PRINT 4460 PRINT ,"Dealer's hand:" 4470 PRINT ,"When all players' hands are completed, the dealer takes" 4480 PRINT ,"cards to her hand but stops once 17 or greater is reached." 4490 PRINT ,"If the dealer's hand exceeds 21 the hand has 'busted'." :PRINT 4500 PRINT ,"Player wins:" 4510 PRINT ," 1. The player has not busted but the dealer has." 4520 PRINT ," 2. The player's hand is more the dealer's hand." :PRINT 4530 PRINT ,"Player loses:" 4540 PRINT ," 1. The player has busted his hand." 4550 PRINT ," 2. The dealer's hand is more the player's hand." :PRINT 4560 PRINT ,"Winning hands win 'evens'. Player blackjacks win 1"; CHR$(171);"." 4570 PRINT ,"Losing hands lose the bets they carry, excepting that" 4580 PRINT ,"the original bet only loses to a dealer's blackjack." 4590 PRINT ,"ALL tied hands are a Standoff. No money is won or lost." 4600 GOSUB 730 'PRESS ANY KEY 4610 RETURN 4620 ' ---------------------------------------------- 4630 CLS : PRINT ,,"USER GUIDE":PRINT 4640 ' ---------------------------------------------- 4650 PRINT "LOCAL RULES" 4660 PRINT ,"8 Deck shoe (some 6 Deck). No hole card." 4670 PRINT ,"Double down on any first 2 cards (including after splitting)." 4680 PRINT ,"No re-splitting of pairs." 4690 PRINT ,"Original bet only is lost to a Dealer's Blackjack." :PRINT 4700 PRINT "BET OPTIONS" 4710 PRINT ,"(a) Make a bet of your choice and press [Enter]." 4720 PRINT ,"(b) Press [Enter] to make a minimum bet (units of 5)." 4730 PRINT ,"(c) Bet 0 and [Enter] to make no bet. Hand plays automatically." 4740 PRINT ,"(d) Bet R and [Enter] to Re-shuffle any time." 4750 PRINT ,"(d) Bet T and [Enter] to adjust time delay." 4760 PRINT ,"(e) Bet Q and [Enter] to Quit Blackjack session." 4770 PRINT "INSURANCE" 4780 PRINT ,"(a) Make Insurance bet of your choice and press [Enter]." 4790 PRINT ,"(b) Press [Enter] to make a maximum Insurance bet." :PRINT 4800 PRINT "OPERATING KEYS 4810 PRINT ,"(a) Press Y for a 'YES' response." 4820 PRINT ,"(b) Press N for a 'NO ' response." 4830 PRINT ,"(c) Press [Enter] for an alternative 'NO' response." 4840 GOSUB 730 'PRESS ANY KEY 4850 CLS :PRINT ,,"USER GUIDE page 2" :PRINT 4860 PRINT "STATUS LINES" 4870 PRINT ,"The screen's 2 bottom lines are the Status lines" 4880 PRINT ,"and remain active while the program is running." 4890 PRINT "LINE 1" 4900 PRINT ,"BANK status." 4910 PRINT ,"C= HI-LO running count." 4920 PRINT ,"T= HI-LO true count." 4930 PRINT ,"I= Insurance 10 count." 4940 PRINT "LINE 2" 4950 PRINT ,"Left entry (a) The Bet question. 4960 PRINT ,"Left entry (b) The current playing option which" 4970 PRINT ," requires a 'Yes' or 'No' response." 4980 PRINT ,"B= Bet units." 4990 PRINT ,"S= Number of the shoe being dealt." 5000 PRINT ,"D= Number of cards dealt so far." :PRINT 5010 PRINT "2 KEY OPERATION" 5020 PRINT ,"IT IS POSSIBLE TO PLAY THE GAME USING 2 KEYS ONLY" 5030 PRINT ,"(1) The 'Y' key for a 'Yes' response." 5040 PRINT ,"(2) The [Enter] key for a 'No' response" 5050 PRINT ," and also for making minimum bets." 5060 GOSUB 730 'PRESS ANY KEY 5070 RETURN 5080 ' ---------------------------------------------- 5090 CLS : PRINT ,," BASIC STRATEGY":PRINT:PRINT 5100 ' ---------------------------------------------- 5110 PRINT ,"SOFT HANDS * = STAND otherwise DRAW" 5120 GOSUB 6690 'HEADER 5130 PRINT ,"19 * * * * * * * * * * 19 & OVER" 5140 PRINT ,"18 * * * * * * * 18" 5150 PRINT ,"17 17 & UNDER" :PRINT 5160 PRINT ,"HARD HANDS * = STAND otherwise DRAW" 5170 GOSUB 6690 'HEADER 5180 PRINT ,"17 * * * * * * * * * * 17 & OVER" 5190 PRINT ,"16 * * * * * 16" 5200 PRINT ,"15 * * * * * 15" 5210 PRINT ,"14 * * * * * 14" 5220 PRINT ,"13 * * * * * 13" 5230 PRINT ,"12 * * * 12" 5240 PRINT :PRINT ,"DON'T TAKE INSURANCE" 5250 GOSUB 730 'PRESS ANY KEY 5260 PRINT ,"SOFT DOUBLE * = DOUBLE otherwise STAND" 5270 GOSUB 6690 'HEADER 5280 PRINT ,"A7 * * * * A7" 5290 PRINT ,"A6 * * * * A6" 5300 PRINT ,"A5 * * * A5" 5310 PRINT ,"A4 * * * A4" 5320 PRINT ,"A3 * * A3" 5330 PRINT ,"A2 * A2" :PRINT 5340 PRINT ,"HARD DOUBLE * = DOUBLE otherwise STAND" 5350 GOSUB 6690 'HEADER 5360 PRINT ,"11 * * * * * * * * * 11" 5370 PRINT ,"10 * * * * * * * * 10" 5380 PRINT ,"09 * * * * 09" 5390 GOSUB 730 'PRESS ANY KEY 5400 PRINT ,"SPLIT PAIR * = SPLIT otherwise Alternative Play" 5410 GOSUB 6690 'HEADER 5420 PRINT ,"AA * * * * * * * * * * AA" 5430 PRINT ,"TT TT" 5440 PRINT ,"99 * * * * * * * 99" 5450 PRINT ,"88 * * * * * * * * * * 88" 5460 PRINT ,"77 * * * * * * 77" 5470 PRINT ,"66 * * * * * 66" 5480 PRINT ,"55 55" 5490 PRINT ,"44 * * 44" 5500 PRINT ,"33 * * * * * * 33" 5510 PRINT ,"22 * * * * * * 22" 5520 GOSUB 730 'PRESS ANY KEY 5530 RETURN 5540 ' ---------------------------------------------- 5550 CLS : PRINT ,," HI-LO STRATEGY (WONG A4)":PRINT:PRINT 5560 ' ---------------------------------------------- 5570 PRINT ,"SOFT HANDS TRUE STAND (inc. *) otherwise DRAW" 5580 GOSUB 6690 'HEADER 5590 PRINT ,"19 * * * * * * * * * * 19 & OVER" 5600 PRINT ," * * * * * * * * "; 5610 COLOR 0,7 :PRINT " 1 "; 5620 COLOR 7,0 :PRINT " 18" 5630 PRINT ,"17 17 & UNDER" :PRINT 5640 PRINT ,"HARD HANDS TRUE STAND (inc. *) otherwise DRAW" 5650 GOSUB 6690 'HEADER 5660 PRINT ,"18 * * * * * * * * * * 18 & OVER" 5670 PRINT ,"17 * * * * * * * * * * 17" 5680 PRINT ,"16 * * * * * "; 5690 COLOR 0,7 :PRINT " 5 0 "; 5700 COLOR 7,0 :PRINT " 16" 5710 PRINT ,"15 * * * * * "; 5720 COLOR 0,7 :PRINT " 4 "; 5730 COLOR 7,0 :PRINT " 15" 5740 PRINT ,"14 * * * * * "; 5750 COLOR 7,0 :PRINT " "; 5760 COLOR 7,0 :PRINT " 14" 5770 PRINT ,"13 -0 -1 * * * "; 5780 COLOR 7,0 :PRINT " 13" 5790 PRINT ,"12 "; 5800 COLOR 0,7 :PRINT " 3 2 "; 5810 COLOR 7,0 :PRINT " -0 -1 -0 12" 5820 GOSUB 730 'PRESS ANY KEY 5830 PRINT ,"SOFT DOUBLE TRUE DOUBLE otherwise DRAW" 5840 GOSUB 6690 'HEADER 5850 PRINT ,"A9 "; 5860 COLOR 0,7 :PRINT " 6 5 4 "; 5870 COLOR 7,0 :PRINT " "; 5880 COLOR 7,0 :PRINT " A9" 5890 PRINT ,"A8 "; 5900 COLOR 0,7 :PRINT " 5 3 1 1 "; 5910 COLOR 7,0 :PRINT " "; 5920 COLOR 7,0 :PRINT " A8" 5930 PRINT ,"A7 "; 5940 COLOR 0,7 :PRINT " 0 "; 5950 COLOR 7,0 :PRINT " * * * * "; 5960 COLOR 7,0 :PRINT " "; 5970 COLOR 7,0 :PRINT " A7" 5980 PRINT ,"A6 "; 5990 COLOR 0,7 :PRINT " 1 "; 6000 COLOR 7,0 :PRINT " * * * * "; 6010 COLOR 7,0 :PRINT " "; 6020 COLOR 7,0 :PRINT " A6" 6030 PRINT ,"A5 "; 6040 COLOR 0,7 :PRINT " 4 "; 6050 COLOR 7,0 :PRINT " * * * "; 6060 COLOR 7,0 :PRINT " "; 6070 COLOR 7,0 :PRINT " A5" 6080 PRINT ,"A4 "; 6090 COLOR 7,0 :PRINT " -0 * * "; 6100 COLOR 7,0 :PRINT " "; 6110 COLOR 7,0 :PRINT " A4" 6120 PRINT ,"A3 "; 6130 COLOR 0,7 :PRINT " 1 "; 6140 COLOR 7,0 :PRINT " -1 * "; 6150 COLOR 7,0 :PRINT " "; 6160 COLOR 7,0 :PRINT " A3" 6170 PRINT ,"A2 "; 6180 COLOR 0,7 :PRINT " 3 0 "; 6190 COLOR 7,0 :PRINT " -1 "; 6200 COLOR 7,0 :PRINT " "; 6210 COLOR 7,0 :PRINT " A2" :PRINT 6220 PRINT ,"HARD DOUBLE TRUE DOUBLE otherwise DRAW" 6230 GOSUB 6690 'HEADER 6240 PRINT ,"11 * * * * * * * * * "; 6250 COLOR 0,7 :PRINT " 1 "; 6260 COLOR 7,0 :PRINT " 11" 6270 PRINT ,"10 * * * * * * * -1 "; 6280 COLOR 0,7 :PRINT " 4 4 "; 6290 COLOR 7,0 :PRINT " 10" 6300 PRINT ,"09 "; 6310 COLOR 0,7 :PRINT " 1 "; 6320 COLOR 7,0 :PRINT " -0 * * * "; 6330 COLOR 0,7 :PRINT " 3 "; 6340 COLOR 7,0 :PRINT " 09" 6350 PRINT ,"08 "; 6360 COLOR 0,7 :PRINT " 5 3 1 "; 6370 COLOR 7,0 :PRINT " "; 6380 COLOR 7,0 :PRINT " 08" 6390 GOSUB 730 'PRESS ANY KEY 6400 PRINT ,"SPLIT PAIR TRUE SPLIT (inc. *) otherwise Alternative Play" 6410 GOSUB 6690 'HEADER 6420 PRINT ,"AA * * * * * * * * * * AA" 6430 PRINT ,"TT "; 6440 COLOR 0,7 :PRINT " 6 5 4 "; 6450 COLOR 7,0 :PRINT " TT" 6460 PRINT ,"99 * * * * * "; 6470 COLOR 0,7 :PRINT " 3 "; 6480 COLOR 7,0 :PRINT " * * "; 6490 COLOR 0,7 :PRINT " 3 "; 6500 COLOR 7,0 :PRINT " 99" 6510 PRINT ,"88 * * * * * * * * * * 88" 6520 PRINT ,"88 * * * * * * * * 88" 6530 PRINT ,"77 * * * * * * "; 6540 COLOR 0,7 :PRINT " 5 "; 6550 COLOR 7,0 :PRINT " 77" 6560 PRINT ,"66 -1 * * * * 66" 6570 PRINT ,"55 55" 6580 PRINT ,"44 "; 6590 COLOR 0,7 :PRINT " 6 1 "; 6600 COLOR 7,0 :PRINT " -1 * 44" 6610 PRINT ,"33 -0 * * * * * "; 6620 COLOR 0,7 :PRINT " 4 "; 6630 COLOR 7,0 :PRINT " 33" 6640 PRINT ,"22 * * * * * * "; 6650 COLOR 0,7 :PRINT " 5 "; 6660 COLOR 7,0 :PRINT " 22" 6670 GOSUB 730 'PRESS ANY KEY 6680 RETURN 6690 PRINT ,"-----------------------------------------------" 'HEADER 6700 PRINT ," 2 3 4 5 6 7 8 9 T A" 6710 PRINT ,"-----------------------------------------------" 6720 RETURN 6730 ' ---------------------------------------------- 6740 ' AUTOMATIC HAND 6750 ' ---------------------------------------------- 6760 WHILE PLHAND(1) < 17 6770 GOSUB 3230 'CARDS AS NEEDED 6780 WEND 6790 LOCATE H*6+7,30 :PRINT PLHAND(H); 'SHOW HAND TOTAL 6800 IF PLHAND(H) > 21 THEN PRINT "BUST" 6810 RETURN |