1' TWENT1.100[75665,1045] B L A C K J A C K 2' by Rick Perry, Villanova University, 3' Department of Electrical Engineering 4' Villanova, Pa. 19085 PH-215-645-4970 5DEFINTA,C-O,Q-Z:DIMN1(10),N2(10),N3(10):FMT$="##########":B=0:P=0 6YH$="You have:":ND=4:NC=0:DIMQ$(3),R$(3),D(ND*52):EL$=CHR$(27)+"l" 7Q$(0)="Insurance":Q$(1)="Split":Q$(2)="Double down":Q$(3)="Hit or Pass" 8R$(0)="YyNn":R$(1)=R$(0):R$(2)=R$(0):R$(3)="HhPp" 9SEED#=VAL(RIGHT$(TIME$,2))+60*VAL(MID$(TIME$,4,2))+3600*(VAL(LEFT$(TIME$,2))MOD12) 10GOTO12 11A$=INKEY$:IFA$=CHR$(27)THENGOSUB89:GOTO11ELSEIFA$<>CHR$(13)ANDA$<>" "THEN11 12CLS:GOSUB83 13IFP>2000000THENPRINT" The house is busted.":END 14IFP<-2000000THENPRINT" Your credit is no longer good.":END 15IFNC<30THENGOSUB86:GOTO18 16IFA$=" "THEN18ELSEPRINT@83,"Your bet $";:PRINTUSINGF$+".##";B;:GOTO22 17PRINT@83,EL$; 18PRINT@83,"Your bet ? ";:LINEINPUT"";A$:B=VAL(A$) 19IFINSTR(A$,"Q")ORINSTR(A$,"q")THENEND 20IFINSTR(A$,"R")ORINSTR(A$,"r")THENPOWEROFF,RESUME 21IFB<1ORB>10000ORB<>FIX(B*2)/2THENSOUND9394,10:GOTO17 22M1=0:H1$="":M2=0:H2$="":M3=0:SPLIT=0:D1=1:D3=1:GOSUB68:GOSUB64:GOSUB68 23IFINSTR(LEFT$(H1$,3),C$)THENM3=1:H3$=C$:N3(1)=N1(2) 24GOSUB64:PRINT@121,"I show:";C$;:IFM3=1THENPRINT@161,"";ELSEPRINT@201,""; 25PRINTYH$;H1$;:IFC$<>" A"THEN28 26QN=0:GOSUB85:IFINSTR("Nn",A$)THEN28 27IFS2=21THENP=P+B:BEEPELSEP=P-B/2:SOUND9394,10 28IFS1=21ORS2=21THEN61 29IFM3=0THEN40 30QN=1:GOSUB85:IFINSTR("Nn",A$)THENPRINT@161,EL$;:GOTO40 31SPLIT=1:M1=1:H1$=H3$:GOSUB68:GOSUB72:PRINT@161,EL$;:PRINT@161,YH$;H3$; 32IFN1(1)=1THENPRINT" =";S3;:GOTO46 33IFS3<>10ANDS3<>11THEN36 34QN=2:GOSUB85:IFINSTR("Nn",A$)THEN36 35GOSUB72:D3=2:GOTO39 36QN=3:GOSUB85:IFINSTR("Pp",A$)THEN39 37GOSUB72:PRINT@161,YH$;H3$;:IFS3<22THEN36 38PRINT" =";S3;" Busted!";:SOUND9394,10:P=P-B:GOTO40 39PRINT@161,YH$;H3$;" =";S3; 40PRINT@201,YH$;H1$;:IFS1<>10ANDS1<>11THEN43 41QN=2:GOSUB85:IFINSTR("Nn",A$)THEN43 42GOSUB68:D1=2:GOTO46 43QN=3:GOSUB85:IFINSTR("Pp",A$)THEN46 44GOSUB68:PRINT@201,YH$;H1$;:IFS1<22THEN43 45PRINT" =";S1;" Busted!";:SOUND9394,10:P=P-B:IFSPLIT=0ORS3>21THEN11ELSE47 46PRINT@201,YH$;H1$;" =";S1; 47PRINT@281,"I have:";H2$;:GOSUB81 48IFS2<17THENGOSUB64:GOTO47 49PRINT" =";S2; 50IFS2<=21THEN54ELSEPRINT" Busted!"; 51IFS1<22THENPRINT@201,YH$;H1$;" =";S1;" Win!";:P=P+D1*B:BEEP 52IFSPLIT=1ANDS3<22THENPRINT@161,YH$;H3$;" =";S3;" Win!";:P=P+D3*B:BEEP 53GOTO11 54IFS1>21THEN57elsePRINT@201,YH$;H1$;" =";S1; 55IFS1>S2THENPRINT" Win!";:P=P+D1*B:BEEP:GOTO57 56IFS1=S2THENPRINT" Tie!";:SOUND4697,10ELSEPRINT" Lose!";:P=P-D1*B:SOUND9394,10 57IFSPLIT<>1orS3>21THEN11elsePRINT@161,YH$;H3$;" =";S3; 58IFS3>S2THENPRINT" Win!";:P=P+D3*B:BEEP:GOTO11 59IFS3=S2THENPRINT" Tie!";:SOUND4697,10ELSEPRINT" Lose!";:P=P-D3*B:SOUND9394,10 60GOTO11 61IFS2=S1THENPRINT@281,"*** We both have Blackjack *** Tie!";:SOUND4697,10:GOTO11 62IFS2=21THENPRINT@281,"*** I have Blackjack *** You lose!";:SOUND9394,10:P=P-B:GOTO11 63PRINT@281,"*** You have Blackjack *** You win!";:BEEP:P=P+1.5*B:GOTO11 64M2=M2+1:GOSUB76 65N2(M2)=CN:H2$=H2$+C$:S2=0:FORI=1TOM2:S2=S2+N2(I):NEXTI 66IFINSTR(H2$,"A")ANDS2<12THENS2=S2+10 67RETURN 68M1=M1+1:GOSUB76 69N1(M1)=CN:H1$=H1$+C$:S1=0:FORI=1TOM1:S1=S1+N1(I):NEXTI 70IFINSTR(H1$,"A")ANDS1<12THENS1=S1+10 71RETURN 72M3=M3+1:GOSUB76 73N3(M3)=CN:H3$=H3$+C$:S3=0:FORI=1TOM3:S3=S3+N3(I):NEXTI 74IFINSTR(H3$,"A")ANDS3<12THENS3=S3+10 75RETURN 76GOSUB82:RC=CINT(1+NC*RAN#):CN=D(RC):D(RC)=D(NC):NC=NC-1 77IFCN=1THENC$=" A":RETURN 78IFCN<11THENC$=STR$(CN):RETURN 79IFCN=11THENC$=" J"ELSEIFCN=12THENC$=" Q"ELSEIFCN=13THENC$=" K" 80CN=10:RETURN 81FORI=1TO300:NEXTI:RETURN 82TMP#=25173*SEED#+13849:SEED#=TMP#-FIX(TMP#/65536)*65536:RAN#=SEED#/65536:RETURN 83IFB>ABS(P)THENG=LEN(STR$(INT(B)))ELSEG=LEN(STR$(INT(ABS(P)))) 84F$=RIGHT$(FMT$,G+1)+",":PRINT@41,"You now have: $";:PRINTUSINGF$+".##";P:RETURN 85PRINT@281,Q$(QN);" ? ";:A$=INPUT$(1):PRINT@281,EL$;:IFA$=CHR$(27)THENGOSUB89:GOTO85ELSEIFINSTR(R$(QN),A$)=0THEN85ELSERETURN 86NC=ND*52:PRINT@281,"Shuffling. Wait..."; 87FORJ=0TOND*4-1:FORI=1TO13:D(J*13+I)=I:NEXTI:NEXTJ 88PRINT@281,EL$;:RETURN 89PRINT@241,"Purse ? ";:LINEINPUT"";A$:IFA$<>""THENP=VAL(A$) 90PRINT@241,EL$;"Bet ? ";:LINEINPUT"";A$:IFA$<>""THENB=VAL(A$) 91PRINT@241,EL$;:RETURN