📄 blkjac.bas
字号:
10 PRINT "DO YOU WANT INSTRUCTIONS";15 INPUT K$25 IF (LEFT$(K$, 1) <> "Y") AND (LEFT$(K$, 1) <> "y") THEN 8530 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: S-STAND; H-HIT; D-DOUBLE; AND"90 PRINT "P-SPLIT A PAIR."91 PRINT "THE HOUSE LIMIT IS $100"95 IF K<>1 THEN 155100 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 50,000>"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=0160 LET W1=0165 RANDOMIZE170 LET N=INT(1945*RND+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)210 DIM D(52),E(5),V(5),T(5),WA(5)215 FOR A=1 TO 52220 LET D(A)=0225 NEXT A230 DIM Q(52)235 FOR A=0 TO 39 STEP 13240 FOR C=1 TO 13245 LET Q(A+C)=C250 NEXT C255 NEXT A260 PRINT 265 LET K=K+1270 FOR P=1 TO 5275 LET E(P)=0280 LET V(P)=0285 LET T(P)=0290 NEXT P295 LET V(3)=1300 PRINT 305 PRINT 310 PRINT 315 PRINT "WAGER";320 LET P=1325 INPUT W330 LET WA(2)=W335 IF W<=0 THEN 1685340 IF W>=100 THEN 370345 IF W<>7777 THEN 360350 GOSUB 1645355 GOTO 315360 PRINT"HEY THE HOUSE LIMIT IS $100"365 GOTO 315370 PRINT375 PRINT "I SHOW",380 GOSUB 865385 IF E(1)=0 THEN 395390 LET V(4)=1395 LET V(5)=1400 GOSUB 865405 LET M=X410 LET P=2415 PRINT "FIRST CARD IS",420 GOSUB 865425 LET G=X430 PRINT "NEXT CARD IS",435 GOSUB 865440 IF V(2)>0 THEN 605445 LET S=X450 IF V(3)<>1 THEN 605455 IF T(P)<>21 THEN 505460 PRINT " ***BLACKJACK*** "465 PRINT 470 PRINT " THAT'S GETTING A BIT RIDICULOUS::::"475 PRINT 480 PRINT "MY HOLE CARD WAS ",485 LET X=M490 GOSUB 1035495 LET W1=W1+1.5*W500 GOSUB 1335505 IF V(4)=0 THEN 570510 PRINT "INSURANCE ANYONE";515 INPUT I$520 PRINT 525 IF LEFT$(I$, 1) <> "y" THEN 570530 IF T(1)<>21 THEN 555535 LET W1=W1+W540 PRINT 545 PRINT "YOU WIN $";W;" ON YOUR INSURANCE BET"550 GOTO 570555 LET W1=W1-W/2560 PRINT 565 PRINT "YOU LOST $";W/2;" ON YOUR INSURANCE BET - I DON'T HAVE BLACKJACK"570 IF T(1)<>21 THEN 605575 PRINT 580 PRINT "**I HAVE BLACKJACK**"585 PRINT "MY HOLE CARD WAS ",590 LET X=M595 GOSUB 1035600 GOTO 1300605 IF T(P)<=21 THEN 650610 IF E(P)>0 THEN 640615 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 775635 GOTO 1175640 LET E(P)=E(P)-1645 LET T(P)=T(P)-10650 IF V(1)=2 THEN 620655 LET V(3)=V(3)+1660 PRINT "WHAT DO YOU WANT TO DO: (S)TAND (H)IT (D)OUBLE S(P)LIT";661 INPUT I$: V(1) = -1662 REM CONVERT SYMBOLIC TO NUMERIC INPUT666 IF (LEFT$(I$, 1) = "S") OR (LEFT$(i$, 1) = "s") THEN V(1) = 0667 IF (LEFT$(I$, 1) = "H") OR (LEFT$(I$, 1) = "h") THEN V(1) = 1668 IF (LEFT$(I$, 1) = "D") OR (LEFT$(I$, 1) = "d") THEN V(1) = 2669 IF (LEFT$(I$, 1) = "P") OR (LEFT$(I$, 1) = "p") THEN V(1) = 3670 IF V(1) < 0 THEN PRINT "WHAT ?": GOTO 660671 IF V(1)<>3 THEN 830675 IF V(2)>0 THEN 820680 IF V(3)<>2 THEN 820685 IF Q(G)=Q(S) THEN 700690 PRINT "NOW IS THAT A PAIR?"695 GOTO 660700 LET V(2)=1705 IF Q(G)<>1 THEN 715710 LET V(1)=2715 LET P=3720 PRINT " PLAY HAND ONE NOW"725 PRINT "FIRST CARD IS ",730 LET WA(3)=W735 LET X=G740 GOSUB 750745 GOTO 430750 GOSUB 990755 GOSUB 1035760 LET V(3)=1765 LET T(P)=C770 RETURN775 LET P=2780 LET V(2)=2785 PRINT " PLAY HAND TWO NOW"790 PRINT "FIRST CARD IS",795 LET X=S800 GOSUB 750805 IF Q(G)=1 THEN 815810 LET V(1)=0815 GOTO 430820 PRINT "NO SPLITS NOW -- TRY AGAIN"825 GOTO 660830 IF V(1)<>2 THEN 855835 IF V(3)=2 THEN 850840 PRINT "TOO LATE TO DOUBLE, CHARLIE."845 GOTO 660850 LET WA(P)=2*WA(P)855 IF V(1)>0 THEN 430860 GOTO 620865 GOSUB 900870 LET T(P)=T(P)+C875 IF V(5)=0 THEN 890880 LET V(5)=0885 RETURN890 GOSUB 1035895 RETURN900 IF R>=50 THEN 945905 LET N=10*(1+ABS(COS(N+W1)))910 FOR A=1 TO N915 LET X=INT(53*RND)920 IF X=0 THEN 915925 NEXT A930 IF D(X)=0 THEN 980935 LET R=R+1940 IF R<50 THEN 900945 FOR A=1 TO 52950 IF D(A)=K THEN 960955 LET D(A)=0960 NEXT A965 LET R=0970 PRINT " I RESHUFFLED ";975 GOTO 900980 LET R=0985 LET D(X)=K990 IF Q(X)<>1 THEN 1010995 LET C=111000 LET E(P)=E(P)+11005 RETURN1010 IF Q(X)>10 THEN 10251015 LET C=Q(X)1020 RETURN1025 LET C=101030 RETURN1035 GOSUB 10501040 GOSUB 11201045 RETURN1050 IF Q(X)<>1 THEN 10651055 PRINT " ACE ";1060 RETURN1065 IF Q(X)>10 THEN 10801070 PRINT Q(X);" ";1075 RETURN1080 IF Q(X)>11 THEN 10951085 PRINT " JACK ";1090 RETURN1095 IF Q(X)>12 THEN 11101100 PRINT " QUEEN ";1105 RETURN1110 PRINT " KING ";1115 RETURN1120 IF X>39 THEN 11451125 IF X>26 THEN 11551130 IF X>13 THEN 11651135 PRINT "OF SPADES"1140 RETURN1145 PRINT "OF CLUBS"1150 RETURN1155 PRINT "OF HEARTS"1160 RETURN1165 PRINT "OF DIAMONDS"1170 RETURN1175 LET P=21180 PRINT "MY HOLE CARD WAS ",1185 LET X=M1190 GOSUB 10351195 IF T(2)<22 THEN 12101200 IF V(2)=0 THEN 13001205 IF T(3)>21 THEN 13001210 LET P=11215 IF T(1)<17 THEN 13601220 IF T(1)>17 THEN 12301225 IF E(1)>0 THEN 13601230 IF T(1)>21 THEN 13751235 LET P=21240 PRINT "MY TOTAL IS ";T(1)1245 IF T(P)>21 THEN 13001250 IF T(1)>21 THEN 12651255 IF T(1)>T(P) THEN 13001260 IF T(1)=T(P) THEN 13301265 LET W1=W1+WA(P)1270 IF C1>3 THEN 14451275 IF C1>2 THEN 14651280 IF C1>1 THEN 14851285 IF C1>0 THEN 15051290 GOTO 15251295 GOTO 13301300 LET W1=W1-WA(P)1305 IF C1>3 THEN 15451310 IF C1>2 THEN 15651315 IF C1>1 THEN 15851320 IF C1>0 THEN 16051325 GOTO 16251330 IF V(2)>0 THEN 13451335 GOSUB 14051340 GOTO 2651345 LET P=31350 LET V(2)=01355 GOTO 12451360 PRINT "I DRAW",1365 GOSUB 8651370 GOTO 12101375 IF E(1)=0 THEN 13951380 LET E(1)=E(1)-11385 LET T(1)=T(1)-101390 GOTO 12101395 PRINT "I BUSTED*****"1400 GOTO 12351405 IF W1<0 THEN 14251410 IF W1=0 THEN 14351415 PRINT "YOU'RE AHEAD $";W11420 RETURN1425 PRINT "YOU'RE BEHIND $";W11430 RETURN1435 PRINT "YOU'RE EVEN"1440 RETURN1445 PRINT 1450 PRINT "I MUST HAVE DEALT WRONG."1455 PRINT 1460 GOTO 13301465 PRINT 1470 PRINT "YOU LUCKED OUT AGAIN:"1475 PRINT 1480 GOTO 13301485 PRINT 1490 PRINT "YOU MUST HAVE BEEN PEEKING."1495 PRINT 1500 GOTO 13301505 PRINT 1510 PRINT "I COULD LOSE MY JOB THIS WAY."1515 PRINT 1520 GOTO 13301525 PRINT 1530 PRINT "THE CARDS HAVE TURNED AGAINST ME."1535 PRINT 1540 GOTO 13301545 PRINT 1550 PRINT "THE BOTTOM OF THE DECK STRIKES AGAIN."1555 PRINT 1560 GOTO 13301565 PRINT 1570 PRINT "A VICTORY FOR US GOOD GUYS."1575 PRINT 1580 GOTO 13301585 PRINT 1590 PRINT "YOU CAN'T BEAT SKILL."1595 PRINT 1600 GOTO 13301605 PRINT1610 PRINT "MUST BE MY LUCKY DAY."1615 PRINT1620 GOTO 13301625 PRINT1630 PRINT "YOU CAN'T BEAT THE BEST."1635 PRINT1640 GOTO 13301645 PRINT1650 PRINT "I'M SUPPOSED TO SHUFFLE, BUT I DON'T KNOW HOW!"1660 PRINT1665 RETURN1685 PRINT1690 PRINT "WELL, SEE YOU NEXT TIME!"1700 PRINT1710 END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -