1 REM +++++++++++++++++++++++++++++++++ 2 REM ! Program .... BLACKJAK 3 REM ! Utg}va s 830326 4 REM ! av (c) Thomas Stebler 7 REM ! Minne 32 Kbytes 8 REM ! Ins{nt av Ferdinand Mican 9 REM +++++++++++++++++++++++++++++++++ 10 REM 11 REM Screened by CRL. 12 REM 15 REM A2%,A3% i de f|rsta 2 drag 2 {ss 20 REM W1% = summa po{ng 30 REM A1% = antal visade {ss 40 REM C% = sannolikhet 50 REM A% = antal kort som visas 60 ; CHR$(12%) 70 ; CUR(1,13)'BLACKJACK' 80 ; 90 ; 'Blackjack spelas med 52 kort.' 100 ; 110 ; 'Knekt = 2 po{ng' 112 ; 'Dam = 3 po{ng' 114 ; 'Kung = 4 po{ng' 116 ; 118 ; '[ss {r v{rda antingen "1" eller "11"' 120 ; '- det f}r spelaren best{mma.' 130 ; '[r de f|rsta tv} kort {ss s} kan man bara sl} dom n{r man ocks} f}r 2 {ss.' 150 ; 'Sl}r klockan s} p}b|rjas ett nytt paket med kort.' 160 ; 170 ; 'Startkapitalet {r 3.000 kronor.' 180 ; 'Insatserna f}r ej |verstiga 300 kronor per insats. Summan av samtliga insatser' 185 ; 'f}r inte |verstiga totalkapitalet.' 200 ONERRORGOTO 210 210 ; : ; "Tryck p} 'RETURN'"; : GET G$ 220 ONERRORGOTO 230 230 ; CHR$(12%) : ; CUR(4,8)'Hur m}nga spelare?'; : GET S$ : ; S$ : ; : ; : S%=VAL(S$) 240 FOR I%=1% TO S% : O%(I%)=3000 : NEXT I% : B%=6000% 250 ; : ; TAB(2)'Tala om spelarnas namn.' 260 ; TAB(2)"Tryck p} RETURN efter varje namn." : ; : ; : ; 270 FOR I%=1% TO S% 280 ; 'Vad heter spelare 'I%; : INPUT N$(I%) 290 NEXT I% 300 DIM K%(11%),Z%(11%) 310 K%(2%)=8% : K%(3%)=8% : K%(4%)=8% : FOR W2%=5% TO 11% : K%(W2%)=4% : NEXT W2% 320 FOR S1%=1% TO S% 330 K%=2% : W1%=0% 340 R%=0% : A1%=0% : A2%=0% : A3%=0% : F%=0% 350 A1%=0% 360 ; CHR$(12%) : ; CUR(4,9)N$(S1%)', det {r Din tur!' : FOR I=1 TO 1000 : NEXT I : ; CHR$(12%) 370 GOTO 420 380 ONERRORGOTO 400 390 ; CUR(2,0)SPACE$(35) 400 ; CUR(2,0)'Hur mycket vill Du satsa'; : INPUT O% : F%=1% 405 ONERRORGOTO 400 410 IF O%>300% OR 0%>O%(S%) THEN 390 : GOTO 450 420 A%=2% 430 GOSUB 1220 : IF A1%=2% THEN A2%=1% 440 GOTO 380 450 ; CUR(2,0)SPACE$(35) 460 IF W1%>21% AND A1%=0% THEN Q%=1% : GOTO 2110 470 ONERRORGOTO 490 480 IF W1%>21% AND A1%=0% THEN 2110 490 IF A1%=0% THEN 540 ELSE ; CUR(2,0)SPACE$(35);CUR(2,0)"Hur m}nga {ss ska vara v{rda '1'?"; : GET G1$ 500 G1=VAL(G1$) : IF A1%-G1<0% THEN 490 510 IF G1<>0 AND A1%-G1>=0% THEN A1%=A1%-G1 : W1%=W1%-10%*G1 520 IF W1%>21% AND A1%=0% THEN 2110 530 IF O%>O%(S1%) THEN O%=O%(S1%) : GOTO 590 540 IF F%=1% THEN 590 550 ; CUR(2,0)SPACE$(35) 555 ; CUR(2,0)'Vill Du satsa mera? (J/N)'; : GET G2$ : IF G2$='n' OR G2$='N' THEN 590 560 ONERRORGOTO 570 570 ; CUR(2,0)SPACE$(34)CUR(2,0)'Hur mycket'; : INPUT P% : O%=O%+P% 580 IF P%>300% THEN ; CUR(0,18)'max. kr.300.--' : FOR I=1 TO 600 : NEXT I : GOTO 570 ELSE 610 590 F%=0% : ; CUR(2,0)'Vill Du ha ett kort till? (J/N)'; : GET G$ 600 IF G$='J' OR G$='j' 610 ELSE 630 610 A%=1% : GOSUB 1220 620 GOTO 450 630 ; CHR$(12%) : ; CUR(9,5)N$(S1%)', Du har'W1% 640 W9%=W1% : IF Q%=0% AND W9%>21% AND A2%=0% GOTO 2100 650 FOR I=1 TO 1500 : NEXT I 660 REM 670 REM datorns drag................... 680 REM 690 W1%=0% : K%=2% : R%=0% : A1%=0% 700 ; CHR$(12) : ; CUR(9,10)'Nu {r det min tur!' 710 FOR I=1 TO 800 : NEXT I : ; CHR$(12%) 720 A%=2% 730 GOSUB 1220 : IF A1%=2% THEN A3%=1% : GOTO 790 740 IF W1%>=15% GOSUB 1080 ELSE A%=1% : GOSUB 1220 : GOTO 740 750 IF W1%>21% THEN 770 760 IF C%>40% THEN A%=1% : GOSUB 1220 : GOTO 740 770 IF W1%>21% AND A1%>0% THEN W1%=W1%-10% : A1%=A1%-1% ELSE 790 780 IF W1%<21% THEN 740 790 ; CUR(23,1)'Tryck p} RETURN n{r Du har r{knat'; : GET G$ : ; CHR$(12) 800 ; CUR(6,4)N$(S1%)', Du har:'; : ; TAB(13)W9% 810 ; CUR(7,4)'Jag har:'; : ; TAB(13)W1% 820 IF A2%=1% AND A3%=0% THEN ; : ; : ; 'Du har vunnit!!' : B%=B%-O% : O%(S1%)=O%(S1%)+O% : GOTO 920 830 IF A3%=1% AND A2%=0% THEN 890 840 IF A3%=1% AND A2%=1% THEN ; : ; 'Tyv{rr, banken vinner!!!' ELSE 860 850 B%=B%+O% : O%(S1%)=O%(S1%)-O% : GOTO 910 860 IF W1%=W9% ; : ; : ; 'Banken vinner - tr}kigt f|r Dig!!!' : B%=B%+O% : O%(S1%)=O%(S1%)-O% : GOTO 910 870 IF W1%>21% THEN ; : ; 'Du har vunnit!!!' : B%=B%-O% : O%(S1%)=O%(S1%)+O% : GOTO 910 880 IF W1%B% THEN ; : ; 'Gratulerar! Du har spr{ngt banken!' : GOTO 970 920 ; : ; : ; 'Du har kvar kr.'O%(S1%) 930 ; 'Banken har kvar kr.'B% 940 ; CUR(21,2)"Tryck 'RETURN'"; : GET G$ 950 W1%=0% 960 NEXT S1% 970 ; CHR$(12) 980 X=X+1 990 ; CUR(2,2)'Mellanresultat efter spel'X 1000 ; : ; : ; 1010 ; TAB(2)'Bank'TAB(12)'.............'TAB(27)B% 1020 FOR I=1 TO S% 1030 ; TAB(2)N$(I)TAB(12)'.............'TAB(27)O%(I) 1040 NEXT I 1050 ; CUR(21,2)'En omg}ng till? (J/N)'; : GET G$ 1060 IF G$='n' OR G$='N' THEN 1070 ELSE 320 1070 ; CUR(21,2)'Tack f|r idag!' : END 1080 REM 1090 REM datorns val................... 1100 REM 1110 D%=21%-W1% : D1%=0% : K1%=0% 1120 FOR I%=2% TO 11% : Z%(I%)=K%(I%) 1130 IF Z%(I%)=11% THEN Z%(I%)=1% 1140 IF Z%(I%)<=D% AND Z%(I%)>0% THEN D1%=D1%+1% 1150 IF Z%(I%)>0% THEN K1%=K1%+1% 1160 NEXT I% 1170 C%=(D1%*100%)/K1% 1180 RETURN 1190 REM 1200 REM W[HLT KARTEN.................. 1210 REM 1220 RANDOMIZE : FOR J%=1% TO A% 1230 RESTORE 1240 Z%=INT(RND*52%)+1% 1250 FOR Y%=1% TO Z%-1% 1270 READ W%,A1$,A2$,A3$,A4$,A5$,A6$,A7$,A8$,A9$ 1280 NEXT Y% 1290 IF R%>28% THEN K%=11% : R%=0% 1300 READ W% : W1%=W1%+W% : IF W%=11 THEN A1%=A1%+1 1310 K%(W%)=K%(W%)-1% 1320 IF K%(W%)<0% THEN 1330 ELSE 1350 1330 GOSUB 1430 : W1%=W1%-W% : IF W%=11% THEN A1%=A1%-1% 1340 GOTO 1230 1350 FOR I%=1% TO 9% 1360 READ A$ 1370 ; CUR(K%+I%,R%)CHR$(151)A$CHR$(135) 1380 NEXT I% 1390 R%=R%+8% 1400 NEXT J% 1410 RETURN 1420 REM 1430 REM kollar om kort finns kvar..... 1440 REM 1450 Y%=0% 1460 FOR Y1%=2% TO 11% : IF K%(Y1%)>=0% THEN Y%=Y%+1% 1470 NEXT Y1% 1480 IF Y%>0% THEN 1500 1490 ; CHR$(7) : K%(2%)=8% : K%(3%)=8% : K%(4%)=8% : FOR X1%=5% TO 11% : K%(X1%)=4% : NEXT X1% 1500 RETURN 1510 REM 1520 REM grafik - spelkort............. 1530 REM 1540 REM HJ[RTA....................... 1550 DATA 11,pppppp0,"5 5","5 5","5 p`0 5","5 )9! 5","5 5","5 5","5 5","######!" 1560 DATA 2,pppppp0,"5 p`05","5 )9!5","5 5","5 5","5#k 5","5wq 5","5 5",######! 1570 DATA 3,pppppp0,"5 p`05","5 )9!5","5 5","5 5","5c; 5","5,. 5","5 5",######! 1580 DATA 4,pppppp0,"5 p`05","5 )9!5","5 5","5 5","5ez 5","5 j 5","5 5",######! 1590 DATA 5,pppppp0,"5 p`05","5 )9!5","5 5","5 5","5ws 5","5pz 5","5 5",######! 1600 DATA 6,pppppp0,"5 p`05","5 )9!5","5 5","5 5","57# 5","5w{ 5","5 5",######! 1610 DATA 7,pppppp0,"5 p`05","5 )9!5","5 5","5 5","5#9 5","5h! 5","5 5",######! 1620 DATA 8,pppppp0,"5 p`05","5 )9!5","5 5","5 5","5w{ 5","5uz 5","5 5",######! 1630 DATA 9,pppppp0,"5 p`05","5 )9!5","5 5","5 5","5w{ 5","5pz 5","5 5",######! 1640 DATA 10, pppppp0,"5 p`05","5 )9!5","5 5","5 5","5575 5","55u5 5","5 5",######! 1650 DATA 2,pppppp0,"5 p`05","5 )9!5","5 `p 5","5(>/< 5","5 5!5 5","5 ##! 5","5 5",######! 1660 DATA 3,pppppp0,"5 p`05","5 )9!5","5 `` 5","5h..l 5",'5j""j 5','5"### 5',"5 5",######! 1670 DATA 4,pppppp0,"5 p`05","5 )9!5","5```` 5","5j..n 5",'5j""j 5',"5 o% 5","5 ! 5",######! 1680 REM SPADER............(kan man f}) 1690 DATA 11, pppppp0,"5 5","5 5","5 pt0 5","5 +?! 5","5 5","5 5","5 5","######!" 1700 DATA 2,pppppp0,"5 pt05","5 +?!5","5 5","5 5","5#k 5","5wq 5","5 5",######! 1710 DATA 3,pppppp0,"5 pt05","5 +?!5","5 5","5 5","5c; 5","5,. 5","5 5",######! 1720 DATA 4, pppppp0,"5 pt05","5 +?!5","5 5","5 5","5ez 5","5 j 5","5 5",######! 1730 DATA 5,pppppp0,"5 pt05","5 +?!5","5 5","5 5","5ws 5","5pz 5","5 5",######! 1740 DATA 6,pppppp0,"5 pt05","5 +?!5","5 5","5 5","57# 5","5w{ 5","5 5",######! 1750 DATA 7,pppppp0,"5 pt05","5 +?!5","5 5","5 5","5#9 5","5h! 5","5 5",######! 1760 DATA 8,pppppp0,"5 pt05","5 +?!5","5 5","5 5","5w{ 5","5uz 5","5 5",######! 1770 DATA 9,pppppp0,"5 pt05","5 +?!5","5 5","5 5","5w{ 5","5pz 5","5 5",######! 1780 DATA 10,pppppp0,"5 pt05","5 +?!5","5 5","5 5","5575 5","55u5 5","5 5",######! 1790 DATA 2,pppppp0,"5 pt05","5 +?!5","5 `p 5","5(>/< 5","5 5!5 5","5 ##! 5","5 5",######! 1800 DATA 3,pppppp0,"5 pt05","5 +?!5","5 `` 5","5h..l 5",'5j""j 5','5"### 5',"5 5",######! 1810 DATA 4,pppppp0,"5 pt05","5 +?!5","5```` 5","5j..n 5",'5j""j 5',"5 o% 5","5 ! 5",######! 1820 REM RUTA......................... 1830 DATA 11,pppppp0,"5 5","5 5","5 5","5 6#4 5",'5 "# 5',"5 5","5 5","######!" 1840 DATA 2,pppppp0,"5 5","5 6#45",'5 "# 5',"5 5","5#k 5","5wq 5","5 5",######! 1850 DATA 3,pppppp0,"5 5","5 6#45",'5 "# 5',"5 5","5c; 5","5,. 5","5 5",######! 1860 DATA 4,pppppp0,"5 5","5 6#45",'5 "# 5',"5 5","5ez 5","5 j 5","5 5",######! 1870 DATA 5,pppppp0,"5 5","5 6#45",'5 "# 5',"5 5","5ws 5","5pz 5","5 5",######! 1880 DATA 6,pppppp0,"5 5","5 6#45",'5 "# 5',"5 5","57# 5","5w{ 5","5 5",######! 1890 DATA 7,pppppp0,"5 5","5 6#45",'5 "# 5',"5 5","5#9 5","5h! 5","5 5",######! 1900 DATA 8,pppppp0,"5 5","5 6#45",'5 "# 5',"5 5","5w{ 5","5uz 5","5 5",######! 1910 DATA 9,pppppp0,"5 5","5 6#45",'5 "# 5',"5 5","5w{ 5","5pz 5","5 5",######! 1920 DATA 10,pppppp0,"5 5","5 6#45",'5 "# 5',"5 5","5575 5","55u5 5","5 5",######! 1930 DATA 2,pppppp0,"5 8,05","5 ),!5","5 `p 5","5(>/< 5","5 5!5 5","5 ##! 5","5 5",######! 1940 DATA 3,pppppp0,"5 8,05","5 ),!5","5 `` 5","5h..l 5",'5j""j 5','5"### 5',"5 5",######! 1950 DATA 4,pppppp0,"5 8,05","5 ),!5","5```` 5","5j..n 5",'5j""j 5',"5 o% 5","5 ! 5",######! 1960 REM KL\VER..........(borde man ha) 1970 DATA 11,pppppp0,"5 5","5 `p 5","5 j 5","5j 5","5 j 5","5 j 5","5 5","######!" 1980 DATA 2,pppppp0,"5 x05","5 * 5","5 5","5 5","5#k 5","5wq 5","5 5",######! 1990 DATA 3,pppppp0,"5 x05","5 * 5","5 5","5 5","5c; 5","5,. 5","5 5",######! 2000 DATA 4,pppppp0,"5 x05","5 * 5","5 5","5 5","5ez 5","5 j 5","5 5",######! 2010 DATA 5,pppppp0,"5 x05","5 * 5","5 5","5 5","5ws 5","5pz 5","5 5",######! 2020 DATA 6,pppppp0,"5 x05","5 * 5","5 5","5 5","57# 5","5w{ 5","5 5",######! 2030 DATA 7,pppppp0,"5 x05","5 * 5","5 5","5 5","5#9 5","5h! 5","5 5",######! 2040 DATA 8,pppppp0,"5 x05","5 * 5","5 5","5 5","5w{ 5","5uz 5","5 5",######! 2050 DATA 9,pppppp0,"5 x05","5 * 5","5 5","5 5","5w{ 5","5pz 5","5 5",######! 2060 DATA 10,pppppp0,"5 x05","5 * 5","5 5","5 5","5575 5","55u5 5","5 5",######! 2070 DATA 2,pppppp0,"5 x05","5 * 5","5 `p 5","5(>/< 5","5 5!5 5","5 ##! 5","5 5",######! 2080 DATA 3,pppppp0,"5 x05","5 * 5","5 `` 5","5h..l 5",'5j""j 5','5"### 5',"5 5",######! 2090 DATA 4,pppppp0,"5 x05","5 * 5","5```` 5","5j..n 5",'5j""j 5',"5 o% 5","5 ! 5",######! 2100 REM 2110 REM Du har mera {n 21............. 2120 REM 2130 RESTORE 2200 2140 FOR I=1 TO 8 2150 READ T% 2160 FOR K=1 TO 30 2170 OUT 6%,121% 2180 FOR J%=1% TO T% : NEXT J% 2190 OUT 6%,0% : NEXT K : NEXT I 2200 DATA 56,42,34,23,23,34,42,56 2210 B%=B%+O% : O%(S1%)=O%(S1%)-O% 2220 ; CHR$(12%) : ; : ; : ; : ; 'Ha! Du har mera {n 21.' 2230 FOR I=1 TO 1200 : NEXT I 2240 GOTO 960