5 CLS:CLEAR1000
7 DIM S$(5),N$(13),D(52),P(5),C(5),AC(5),C$(3)
10 DATA 1,1,1,1,1
20 DATA "ace","two","three","four","five","six","seven","eight","nine","ten","jack","queen","king"
30 FORX=1TO5:READS:S$(X)=CHR$(143+S):NEXTX
35 GOSUB7000
40 FORX=1TO13:READN$
41 IFLEN(N$)=3THENN$(X)=LEFT$(" "+CHR$(128)+N$+CHR$(128),6):GOTO44
42 N$(X)=LEFT$(" "+N$+CHR$(128)+CHR$(128),6)
44 NEXTX
45 CLS:NG=0:PT=0:CT=0
50 GOSUB8000
75 REM PRINT PLAYER'S HAND
80 L=257
90 FORM=1TO2:GOSUB1000:P(M)=Z:C=P(M):GOSUB500:PT=PT+T:NEXT
100 REMFORM=1TO3:S=5:GOSUB2000:NEXT
105 REM PRINT COMPUTER'S HAND
110 L=1
120 GOSUB1000:C(1)=Z:C=C(1):GOSUB500:CT=CT+T
130 S=5:GOSUB2000
150 PRINT@1,"COMPUTER'S HAND";
160 PRINT@257,"YOUR HAND";
170 GOSUB6000
200 L=269:K=3
205 PRINT@481,"ANOTHER CARD (Y/N)?           ";
210 R$=INKEY$:R=RND(10):IFR$=""THEN210
220 IFR$="N"THENGOSUB7050:GOTO242
225 IFR$<>"Y"THEN210
230 GOSUB1000:P(K)=Z:C=P(K):GOSUB500
240 PT=PT+T
242 FORX=1TOK
244 IFPT>21AND(P(X)-1)/13=INT((P(X)-1)/13)ANDAC(X)<>1THENPT=PT-10:AC(X)=1
246 NEXTX
247 IFPT>21THENPRINT@481,"YOU BUSTED!!!       ";:GOTO385
250 K=K+1:IFK<6AND R$<>"N"THEN205
255 L=7:K=2:FORX=1TO5:AC(X)=0:NEXTX
260 GOSUB1000:C(K)=Z:C=C(K):GOSUB500
270 CT=CT+T
272 FORX=1TOK
274 IFCT>21AND(C(X)-1)/13=INT((C(X)-1)/13)ANDAC(X)<>1THENCT=CT-10:AC(X)=1
276 NEXTX
277 IF CT>=PT THEN 360
280 IFCT<17ANDK<5THENK=K+1:GOTO260
360 IF CT<22 AND PT<=CT THEN 380
370 PRINT@481,"CONGRATULATIONS WINNER!";
375 GW=GW+1:GOTO390
380 PRINT@481,"TOUGH LUCK, KID.              ";
385 GL=GL+1
390 GOSUB6000
400 PRINT@225,"ANOTHER GAME (Y/N)?           ";
410 R$=INKEY$:IFR$=""THEN410
420 IFR$="Y"THEN45
430 IFR$="N"THEN900
440 GOTO410
500 GOSUB4000:GOSUB2000
510 GOSUB3000
520 RETURN
900 PRINT@225,"ARE YOU SURE YOU WANT TO QUIT?";
910 R$=INKEY$:IFR$=""THEN910
920 IFR$="Y"THENEND
930 IFR$="N"THEN45
940 GOTO910
1000 REM PICK A CARD
1002 IFKC=0THENGOSUB7000
1005 Z=RND(52)
1010 IFD(Z)=0THEN1005
1020 D(Z)=0
1025 KC=KC-1
1030 RETURN
2000 REM PRINT SUITS
2005 L1=L
2010 FORX=1TO6
2015 L1=L1+32
2020 FORY=1TO5
2030 PRINT@L1+(Y-1),S$(S);
2040 NEXTY:NEXTX
2046 ONSGOSUB5000,5010,5020,5030,5040
2050 REM
2060 FORX=1TO3:PRINT@L+(32*X)+2,RIGHT$(C$(X),3);:PRINT@L+(32*X)+96,RIGHT$(C$(X),3);:NEXTX
2070 L1=0:L=L+6
2080 RETURN
3000 REM PRINT NUMBERS
3005 L1=L-7
3010 FORX=1TO6
3020 L1=L1+32
3030 PRINT@L1,MID$(N$(N),X,1);
3035 L1=L1+1
3040 NEXTX
3045 L1=0
3050 RETURN
4000 REM COMPUTE NUMBER AND SUIT
4005 S=INT((C-1)/13)+1
4010 N=C-(S*13-13)
4015 REM COMPUTE POINT VALUE
4020 IFN=11ORN=12ORN=13THENT=10:GOTO4030
4025 T=N
4030 IFN=1THENT=11
4040 RETURN
5000 C$(1)=CHR$(128)+CHR$(177)+CHR$(177)+CHR$(176)
5001 C$(2)=CHR$(128)+CHR$(191)+CHR$(191)+CHR$(186)
5002 C$(3)=CHR$(128)+CHR$(180)+CHR$(190)+CHR$(176)
5003 RETURN
5010 C$(1)=CHR$(128)+CHR$(176)+CHR$(178)+CHR$(176)
5011 C$(2)=CHR$(128)+CHR$(183)+CHR$(191)+CHR$(178)
5012 C$(3)=CHR$(128)+CHR$(180)+CHR$(190)+CHR$(176)
5013 RETURN
5020 C$(1)=CHR$(128)+CHR$(176)+CHR$(162)+CHR$(176)
5021 C$(2)=CHR$(128)+CHR$(167)+CHR$(175)+CHR$(162)
5022 C$(3)=CHR$(128)+CHR$(172)+CHR$(174)+CHR$(168)
5023 RETURN
5030 C$(1)=CHR$(128)+CHR$(161)+CHR$(163)+CHR$(176)
5031 C$(2)=CHR$(128)+CHR$(167)+CHR$(175)+CHR$(162)
5032 C$(3)=CHR$(128)+CHR$(172)+CHR$(174)+CHR$(168)
5033 RETURN
5040 C$(1)=CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)
5041 C$(2)=CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)
5042 C$(3)=CHR$(128)+CHR$(128)+CHR$(128)+CHR$(128)
5043 RETURN
6000 PRINT@21,"WINS:";GL;:PRINT@277,"WINS:";GW;
6010 RETURN
7000 PRINT@224,"           SHUFFLING...       ";
7010 FORDE=1TO52:D(DE)=DE:NEXTDE
7015 KC=52
7020 FORDE=1TO5
7022 IFC(DE)<>0THEN D(C(DE))=0:KC=KC-1
7024 IFP(DE)<>0THEN D(P(DE))=0:KC=KC-1
7026 NEXTDE
7028 SOUND50,1:FORDE=1TO100:NEXT:SOUND50,1:FORDE=1TO100:NEXT:SOUND50,1
7030 PRINT@224,"                              ";
7040 RETURN
7050 PRINT@481,"                              ";
7060 RETURN
8000 FORDE=1TO5:P(DE)=0:C(DE)=0:AC(DE)=0:NEXTDE
8010 RETURN

