10 REM BLACK.ECB 20 REM ...BLACK JACK...Source ??? via EAGAN 30 REM ...Revised 03-04-81 R.E.H. 40 PRINT "&K&J&J" 100 PRINT 110 PRINT TAB(10);"B L A C K J A C K" 120 REM ...VARIABLES USED IN THIS PROGRAM: 130 REM .N$=PLAYER names 140 REM .N3=# OF CARDS DEALT 150 REM .N=# OF PLAYERS 160 REM .V(X)=POINT VALUE of players hand 170 REM .L=DECK 180 REM .V9=POINT VALUE OF DEALER"S HAND 190 REM .W3=# OF PLAYERS BUSTED 200 REM .N9=# OF CARDS DEALT TO DEALER 210 REM 220 DIM N$(90),L(52),V(40) 230 FOR Z=1 TO 9: LET N$=N$+" ": NEXT Z 240 LET N3=0 250 PRINT "GOOD DAY" 260 PRINT 270 PRINT "HOW MANY MEMBERS IN YOUR PARTY (1 TO 9) ---=>"; 280 INPUT (1,0)N 290 PRINT "ENTER THE NAMES OF THE MEMBERS OF YOUR PARTY ONE TO A LINE" 300 FOR Z=1 TO N 310 INPUT " ---=>",Z$ 320 IF LEN(Z$)=0 THEN LET Z$=" Player "+CHR(Z+48)+" " 330 LET Z$=Z$+" ": LET N$(Z*10-9,Z*10)=Z$ 340 NEXT Z 350 FOR G=1 TO N: LET V(G)=0: NEXT G 390 GOSUB 1830 400 LET V9=0: LET W3=0 420 FOR P=1 TO N 430 LET Z$=N$(P*10-9,P*10) 440 PRINT : PRINT Z$;"'S CARDS ARE:" 450 PRINT 460 LET C=1: REM ...Loop 1 to 2 480 LET I=INT(52*RND(0))+1 490 LET X=L(I) 500 IF X<0 THEN 480 510 LET N3=N3+1 520 IF N3<51 THEN 550 530 PRINT " OUT OF CARD..TIME TO RESHUFFLE." 540 GOSUB 1830 550 LET L(I)=-1 560 REM ======= PRINT A CARD 570 LET S=INT(X/13) 580 LET V=X-13*S 590 LET V=V+1 600 LET S=S+1 610 ON S GOTO 620,640,660,680 620 PRINT " CLUB "; 630 GOTO 690 640 PRINT " DIAMOND "; 650 GOTO 690 660 PRINT " HEART "; 670 GOTO 690 680 PRINT " SPADE "; 690 IF V>9 THEN 720 700 PRINT V+1 710 GOTO 800 720 ON V GOTO 210,210,210,210,210,210,210,210,210,730,750,770,790 730 PRINT " JACK " 740 GOTO 800 750 PRINT " QUEEN" 760 GOTO 800 770 PRINT " KING" 780 GOTO 800 790 PRINT " ACE" 791 PRINT "Enter 'Y' (Yes) to count this ACE as a ONE --=>"; 792 INPUT (1,0)Y$: LET Y$=Y$+"Y" 793 IF Y$(1,1)="Y" THEN 797 794 IF Y$(1,1)="y" THEN 797 795 GOTO 800 797 LET V = 1 800 REM ======= CHECK WIN 810 IF V=13 THEN 830 820 GOTO 850 830 LET V=10 840 GOTO 880 850 IF V>9 THEN 870 860 GOTO 880 870 LET V=9 880 LET V(P)=V(P)+1+V 890 IF V(P)=21 THEN 910 900 GOTO 930 910 PRINT " 21 !!!" 920 GOTO 1020 930 IF V(P)<22 THEN 970 940 PRINT " YOU LOSE...." 950 LET W3=W3+1 960 GOTO 1020 970 IF C<2 THEN 1010 980 PRINT Z$;" DO YOU WANT ANOTHER CARD ---=>"; 990 INPUT (1,0)Y$: LET Y$=Y$+"N" 1000 IF Y$(1,1)="Y" THEN 480 1005 IF Y$(1,1)="y" THEN 480 1010 LET C=C+1: IF C<3 THEN 480 1020 NEXT P 1030 LET N9=0 1040 PRINT 1050 PRINT " THE DEALER HAS THESE CARDS" 1060 PRINT 1070 REM ======= DEAL A CARD 1080 LET I=INT(52*RND(0))+1 1090 LET X=L(I) 1100 LET N9=N9+1 1110 IF X<0 THEN 1080 1120 LET N3=N3+1 1130 IF N3<51 THEN 1160 1140 PRINT " OUT OF CARDS..TIME TO RESHUFFLE." 1150 GOSUB 1830 1160 LET L(I)=-1 1170 REM ======= PRINT A CARD 1180 LET S=INT(X/13) 1190 LET V=X-13*S 1200 LET V=V+1 1210 LET S=S+1 1220 ON S GOTO 1230,1250,1270,1290 1230 PRINT " CLUB "; 1240 GOTO 1300 1250 PRINT " DIAMOND "; 1260 GOTO 1300 1270 PRINT " HEART "; 1280 GOTO 1300 1290 PRINT " SPADE "; 1300 IF V>9 THEN 1330 1310 PRINT V+1 1320 GOTO 1410 1330 ON V GOTO 210,210,210,210,210,210,210,210,210,1340,1360,1380,1400 1340 PRINT " JACK " 1350 GOTO 1410 1360 PRINT " QUEEN" 1370 GOTO 1410 1380 PRINT " KING " 1390 GOTO 1410 1400 PRINT " ACE" 1410 REM ======= DEALER CHECK WIN LOSE OR MORE CARDS 1420 IF V=13 THEN 1440 1430 GOTO 1460 1440 LET V=10 1450 GOTO 1490 1460 IF V>9 THEN 1480 1470 GOTO 1490 1480 LET V=9 1490 LET V9=V9+V+1 1500 IF V9>21 THEN 1680 1510 FOR Q2=1 TO N 1520 IF W3=N THEN 1570 1530 IF V9>=V(Q2) THEN 1570 1540 NEXT Q2 1550 GOTO 1070 1560 PRINT 1570 IF N9=1 THEN 1070 1580 FOR T=1 TO N 1585 LET Z$=N$(T*10-9,T*10) 1590 IF V(T)>21 THEN 1650 1600 IF V(T)-V9<=0 THEN 1630 1610 PRINT " CONGRATULATIONS ";Z$;", You BEAT the dealer." 1620 GOTO 1660 1630 PRINT " Sorry ";Z$;", You didn't beat the dealer." 1640 GOTO 1660 1650 PRINT " Sorry ";Z$;", You BUSTED." 1660 NEXT T 1670 GOTO 1780 1680 PRINT " The DEALER BUSTED and so "; 1690 LET Q6=0 1700 FOR Q5=1 TO N 1710 IF V(Q5)>21 THEN 1740 1720 LET Q6=1 1730 PRINT N$(Q5*10-9,Q5*10);","; 1740 NEXT Q5 1750 IF Q6=1 THEN 1770 1760 PRINT " NOBODY"; 1770 PRINT " WINS!!" 1780 PRINT 1790 PRINT " DO YOU WANT TO PLAY ANOTHER ROUND ---=>"; 1800 INPUT (1,0)R$: LET R$=R$+"Y" 1810 IF R$(1,1)="Y" THEN 350 1815 IF R$(1,1)="y" THEN 350 1820 GOTO 1880 1830 FOR Z2=1 TO 52 1840 LET L(Z2)=Z2 1850 NEXT Z2 1860 LET N3=0 1870 RETURN 1880 END