File BLKJAC.BA (BASIC source file)

Directory of image this file is from
This file as a plain text file

5 REMARKABLY TRANSLATED TO OS8 BASIC BY KAY R. FISHER ....DEC
10 PRINT "DO YOU WANT INSTRUCTIONS (IF SO TYPE A 1)"; 
15 INPUT K
25 IF K<>1 THEN 85
30   PRINT
35   PRINT
40   PRINT
45   PRINT
50   PRINT"THIS IS A GAME OF BLACKJACK, LAS VEGAS STYLE." 
55   PRINT"HERE ARE THE RULES OF THE HOUSE.  THE DEALER"
60   PRINT"MUST HIT ON 16 OR LESS AND WILL STAY ON 17 OR" 
65   PRINT"MORE.  YOU MAY SPLIT TWO CARDS IF THEY ARE THE"
70   PRINT"SAME AND PLAY ONE HAND WITH EACH OF THEM.  ALSO,"
75   PRINT"YOU MAY DOUBLE YOUR BET AND RECEIVE EXACTLY ONE "
80   PRINT"MORE CARD ANY TIME ON YOUR FIRST HIT.  THE TYPING" 
85   PRINT"INSTRUCTIONS ARE: 0-NO HIT; 1-HIT; 2-DOUBLE; AND"
90 PRINT "3-SPLIT A PAIR."
95 IF K<> 1 THEN 155
100   PRINT"WHEN THE DEALER HAS AN EXPOSED ACE HE WILL ASK"
105   PRINT"YOU FOR AN INSURANCE BET.  AN INSURANCE BET WILL"
110   PRINT"RISK HALF YOUR BET FOR AN AMOUNT EQUAL TO YOUR BET"
115   PRINT"IF YOU WIN.  YOU WIN IF THE DEALER HAS A BLACKJACK"
120   PRINT"AND LOSE IF HE DOESN'T.  THE HOUSE LIMIT IS $500.00" 
125   PRINT"GOOD LUCK.  OH, BY THE WAY, THE DEALER IS NOTED FOR" 
130   PRINT"DEALING OFF THE BOTTOM OF THE DECK.  WATCH HIM VERY" 
135   PRINT"CLOSELY.  HERE HE IS NOW." 
140   PRINT
145   PRINT
150   PRINT
155    LET K=0 
160    LET W1=0
165 RANDOMIZE
170 LET N=INT(1945*RND(0)+1) 
175   PRINT
180   PRINT"ANY TIME YOU WANT ME TO RESHUFFLE THE CARDS SIMPLY"
185   PRINT"TYPE 7777 WHEN I ASK FOR YOUR WAGER AND I'LL BE VERY"
190   PRINT"HAPPY TO OBLIGE.  O.K., HERE IS THE FIRST HAND." 
200 LET X=INT(10*RND(0)) 
210 DIM D(52),E(5),V(5),T(5),W(5)
215   FOR A=1 TO 52
220    LET D(A)=0
225   NEXT A 
230   DIM Q(52)
235   FOR A=0 TO 39 STEP 13
240   FOR C=1 TO 13
245    LET Q(A+C)=C
250   NEXT C 
255   NEXT A 
260   PRINT
265    LET K=K+1 
270   FOR P=1 TO 5 
275    LET E(P)=0
280    LET V(P)=0
285    LET T(P)=0
290   NEXT P 
295    LET V(3)=1
300   PRINT
305   PRINT
310   PRINT
315   PRINT"WAGER";
320    LET P=1 
325   INPUT W
330    LET W(2)=W
335   IF W<=0 THEN 1685
340   IF W<=500 THEN 370 
345   IF W<>7777 THEN 360
350   GOSUB 1645 
355   GOTO315
360   PRINT"THAT'S TOO MUCH - HOUSE LIMIT IS $500" 
365   GOTO 315 
370   PRINT
375 PRINT "I SHOW",
380   GOSUB 865
385   IF E(1)=0 THEN 395 
390    LET V(4)=1
395    LET V(5)=1
400   GOSUB 865
405    LET M=X 
410    LET P=2 
415   PRINT"FIRST CARD IS",
420   GOSUB 865
425    LET G=X 
430   PRINT"NEXT CARD IS", 
435   GOSUB 865
440   IF V(2)>0 THEN 605 
445    LET S=X 
450   IF V(3)<>1 THEN 605
455   IF T(P)<>21 THEN 505 
460 PRINT "   ***BLACKJACK***   "
465   PRINT
470   PRINT" THAT'S GETTING A BIT RIDICULOUS::::"
475   PRINT
480 PRINT "MY HOLE CARD WAS ", 
485    LET X=M 
490   GOSUB 1035 
495    LET W1=W1+1.5*W 
500   GOSUB 1335 
505   IF V(4)=0 THEN 570 
510   PRINT"INSURANCE ANYONE   (TYPE 1 OR 0, 1 MEANS YES)";
515   INPUT I
520   PRINT
525   IF I=0 THEN 570
530   IF T(1)<>21 THEN 555 
535    LET W1=W1+W 
540   PRINT
545 PRINT "YOU WIN $";W;"ON YOUR INSURANCE BET"
550   GOTO 570 
555    LET W1=W1-W/2 
560   PRINT
565 PRINT"YOU LOST $";W/2;"ON YOUR INSURANCE BET - I DON'T HAVE BLACKJACK"
570   IF T(1)<>21 THEN 605 
575   PRINT
580   PRINT"**I HAVE BLACKJACK**"
585 PRINT "MY HOLE CARD WAS ", 
590    LET X=M 
595   GOSUB 1035 
600   GOTO 1300
605   IF T(P)<=21 THEN 650 
610   IF E(P)>0 THEN 640 
615   PRINT"YOU BUSTED, "; 
620 PRINT"YOUR TOTAL IS";T(P)
625    LET C1=T(P)-5*(INT(T(P)/5)) 
630   IF V(2)=1 THEN 775 
635   GOTO 1175
640    LET E(P)=E(P)-1 
645    LET T(P)=T(P)-10
650   IF V(1)=2 THEN 620 
655    LET V(3)=V(3)+1 
660   PRINT"HIT "; 
665   INPUT V(1) 
670   IF V(1)<>3 THEN 830
675   IF V(2)>0 THEN 820 
680   IF V(3)<>2 THEN 820
685   IF Q(G)=Q(S) THEN 700
690   PRINT"NOW IS THAT A PAIR?" 
695   GOTO 660 
700    LET V(2)=1
705   IF Q(G)<>1 THEN 715
710    LET V(1)=2
715    LET P=3 
720   PRINT"       PLAY HAND ONE NOW"
725   PRINT"FIRST CARD IS ", 
730    LET W(3)=W
735    LET X=G 
740   GOSUB 750
745   GOTO 430 
750   GOSUB 990
755   GOSUB 1035 
760    LET V(3)=1
765    LET T(P)=C
770   RETURN 
775    LET P=2 
780    LET V(2)=2
785   PRINT"       PLAY HAND TWO NOW"
790   PRINT"FIRST CARD IS",
795    LET X=S 
800   GOSUB 750
805   IF Q(G)=1 THEN 815 
810    LET V(1)=0
815   GOTO 430 
820   PRINT"NO SPLITS NOW -- TRY AGAIN"
825   GOTO 660 
830   IF V(1)<>2 THEN 855
835   IF V(3)=2 THEN 850 
840   PRINT"TOO LATE TO DOUBLE, CHARLIE."
845   GOTO 660 
850    LET W(P)=2*W(P) 
855   IF V(1)>0 THEN 430 
860   GOTO 620 
865   GOSUB 900
870    LET T(P)=T(P)+C 
875   IF V(5)=0 THEN 890 
880    LET V(5)=0
885   RETURN 
890   GOSUB 1035 
895   RETURN 
900   IF R>=50 THEN 945
905    LET N=10*(1+ABS(COS(N+W1))) 
910   FOR A=1 TO N 
915    LET X=INT(52.999999*RND(Y)) 
920   IF X=0 THEN 915
925   NEXT A 
930   IF D(X)=0 THEN 980 
935    LET R=R+1 
940   IF R<50 THEN 900 
945   FOR A=1 TO 52
950   IF D(A)=K THEN 960 
955    LET D(A)=0
960   NEXT A 
965    LET R=0 
970   PRINT"   I RESHUFFLED   "; 
975   GOTO 900 
980    LET R=0 
985    LET D(X)=K
990   IF Q(X)<>1 THEN 1010 
995    LET C=11
1000    LET E(P)=E(P)+1 
1005   RETURN 
1010   IF Q(X)>10 THEN 1025 
1015    LET C=Q(X)
1020   RETURN 
1025    LET C=10
1030   RETURN 
1035   GOSUB 1050 
1040   GOSUB 1120 
1045   RETURN 
1050   IF Q(X)<>1 THEN 1065 
1055   PRINT" ACE ";
1060   RETURN 
1065   IF Q(X)>10 THEN 1080 
1070   PRINT Q(X);" ";
1075   RETURN 
1080   IF Q(X)>11 THEN 1095 
1085   PRINT " JACK ";
1090   RETURN 
1095   IF Q(X)>12 THEN 1110 
1100   PRINT" QUEEN ";
1105   RETURN 
1110   PRINT" KING "; 
1115   RETURN 
1120   IF X>39 THEN 1145
1125   IF X>26 THEN 1155
1130   IF X>13 THEN 1165
1135   PRINT"OF SPADES" 
1140   RETURN 
1145   PRINT"OF CLUBS"
1150   RETURN 
1155   PRINT"OF HEARTS" 
1160   RETURN 
1165   PRINT"OF DIAMONDS" 
1170   RETURN 
1175    LET P=2 
1180 PRINT "MY HOLE CARD WAS ", 
1185    LET X=M 
1190   GOSUB 1035 
1195   IF T(2)<22 THEN 1210 
1200   IF V(2)=0 THEN 1300
1205   IF T(3)>21 THEN 1300 
1210    LET P=1 
1215   IF T(1)<17 THEN 1360 
1220   IF T(1)>17 THEN 1230 
1225   IF E(1)>0 THEN 1360
1230   IF T(1)>21 THEN 1375 
1235    LET P=2 
1240 PRINT"MY TOTAL IS";T(1)
1245   IF T(P)>21 THEN 1300 
1250   IF T(1)>21 THEN 1265 
1255   IF T(1)>T(P) THEN 1300 
1260   IF T(1)=T(P) THEN 1330 
1265    LET W1=W1+W(P)
1270   IF C1>3 THEN 1445
1275   IF C1>2 THEN 1465
1280   IF C1>1 THEN 1485
1285   IF C1>0 THEN 1505
1290   GOTO 1525
1295   GOTO 1330
1300    LET W1=W1-W(P)
1305   IF C1>3 THEN 1545
1310   IF C1>2 THEN 1565
1315   IF C1>1 THEN 1585
1320   IF C1>0 THEN 1605
1325   GOTO 1625
1330   IF V(2)>0 THEN 1345
1335   GOSUB 1405 
1340   GOTO 265 
1345    LET P=3 
1350    LET V(2)=0
1355   GOTO 1245
1360 PRINT "I DRAW",
1365   GOSUB 865
1370   GOTO 1210
1375   IF E(1)=0 THEN 1395
1380    LET E(1)=E(1)-1 
1385    LET T(1)=T(1)-10
1390   GOTO 1210
1395   PRINT"I BUSTED*****" 
1400   GOTO 1235
1405   IF W1<0 THEN 1425
1410   IF W1=0 THEN 1435
1415 PRINT"YOU'RE AHEAD $";W1
1420   RETURN 
1425 PRINT"YOU'RE BEHIND $";ABS(W1)
1430   RETURN 
1435   PRINT"YOU'RE EVEN" 
1440   RETURN 
1445   PRINT
1450   PRINT"I MUST HAVE DEALT WRONG."
1455   PRINT
1460   GOTO 1330
1465   PRINT
1470   PRINT"YOU LUCKED OUT AGAIN:" 
1475   PRINT
1480   GOTO 1330
1485   PRINT
1490   PRINT"YOU MUST HAVE BEEN PEEKING." 
1495   PRINT
1500   GOTO 1330
1505   PRINT
1510   PRINT"I COULD LOSE MY JOB THIS WAY." 
1515   PRINT
1520   GOTO 1330
1525   PRINT
1530   PRINT"THE CARDS HAVE TURNED AGAINST ME:" 
1535   PRINT
1540   GOTO 1330
1545   PRINT
1550   PRINT"THE BOTTOM OF THE DECK STRIKES AGAIN:" 
1555   PRINT
1560   GOTO 1330
1565   PRINT
1570   PRINT"A VICTORY FOR US GOOD GUYS." 
1575   PRINT
1580   GOTO 1330
1585   PRINT
1590   PRINT"YOU CAN'T BEAT SKILL." 
1595   PRINT
1600   GOTO 1330
1605   PRINT
1610   PRINT"YOU CAN'T WIN 'EM ALL."
1615   PRINT
1620   GOTO 1330
1625   PRINT
1630   PRINT"BABY GETS A NEW PAIR OF SHOES:"
1635   PRINT
1640   GOTO 1330
1645   FOR M9 = 1 TO 52 
1650    LET D(M9)=0 
1655   NEXT M9
1660    LET R=0 
1665   PRINT
1670   PRINT" I RESHUFFLED" 
1675   PRINT""
1680 RETURN
1685 END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search