Z80-21 Yet Another "BlackJack"
Re: Z80-21 Yet Another "BlackJack"
I am not sure what you are asking me. Go back to working with Z8021Beta4_2b and I'll play with the multiple decks this weekend. IF CD=number of decks then DIM C(13,4) would become DIM C(13*CD,4) and so on. So if 6 decks was a choice it would be equivalent to C(78,4). Quite a lot. So I'll have to see if it will fit. I am guessing 4 decks would be plenty though.
It looks pretty fantastic as it is, though. I must say WOW again.
It looks pretty fantastic as it is, though. I must say WOW again.
-sanello
Re: Z80-21 Yet Another "BlackJack"
C(78,4)
1 568 Bytes only for the VARS allocation.
Error 4 !

1 568 Bytes only for the VARS allocation.
Error 4 !
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
Re: Z80-21 Yet Another "BlackJack"
Reverse release: (with left scrolling)
[Edit: have a look to the next messages]
[Edit: have a look to the next messages]
Last edited by XavSnap on Thu Aug 04, 2022 4:37 am, edited 1 time in total.
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
Re: Z80-21 Yet Another "BlackJack"
Hi Sanello,
I worked on the split display, and diet the program again.
The display seem to be ok now.
Start with the lower value and code the main routine, we will the lower value to 16kb, others value should be used on a 32kb memory RAMpack.
Just code a standard code able to host 1 to 6 options with an adaptative DIM (value,4) : 1-2 = 16k & 3-6=32k
We can code cards display in ASM to reduce the memory used.
I worked on the split display, and diet the program again.
The display seem to be ok now.
Depending on memory resources.Maybe 6 is too lofty a goal. How about 1 2 or 3? ....4?
Start with the lower value and code the main routine, we will the lower value to 16kb, others value should be used on a 32kb memory RAMpack.
Just code a standard code able to host 1 to 6 options with an adaptative DIM (value,4) : 1-2 = 16k & 3-6=32k
We can code cards display in ASM to reduce the memory used.

Xavier ...on the Facebook groupe : "Zx81 France"(fr)
Re: Z80-21 Yet Another "BlackJack"
I added 4 decks and it works, but I want to be able to ask how many decks 1-4. I can't work with it well since i cannot scroll through the lines of code. I have to specifically list a line number and can't scroll up and down the list like normal. Here is the proof of concept although I don't want it to work like this. Tell me how to get it to list properly so I can do it right.
Also, your e version is not turning over the dealers hole card at times
Also, your e version is not turning over the dealers hole card at times
-sanello
Re: Z80-21 Yet Another "BlackJack"
Hi Sanello,
Better take this release to move cursor in the program:
Done : POKE 16514,0: POKE 16515,0
Updated P from the "Z8021Beta4_2me.P" release: -----------------------------------
to
-----------------------------------
to
-----------------------------------
to
PS: Can't target the missing dealer's card...
Better take this release to move cursor in the program:
Done : POKE 16514,0: POKE 16515,0
Updated P from the "Z8021Beta4_2me.P" release: -----------------------------------
Code: Select all
202 FOR I=1 TO 5
204 LET P(I)=0
206 LET D(I)=0
208 NEXT I
Code: Select all
204 DIM P(5)
208 DIM D(5)
Code: Select all
# 9030 IF Q$="Y" THEN GOTO 9070
# 9040 IF Q$="N" THEN GOTO 9081
# 9060 GOTO 9010
Code: Select all
9040 GOTO 9010+(60 AND Q$="Y")+(71 AND Q$="N")
Code: Select all
# 9930 IF H$="Y" THEN RUN
# 9950 IF H$="N" THEN GOTO 9999
# 9960 GOTO 9920
Code: Select all
9930 RUN (9999 AND NOT H$="Y")
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
Re: Z80-21 Yet Another "BlackJack"
Original code show dealer card
3001 through 3003 check status of player's finished hand then
3005 GOSUB 9800
9800 through 9870 show dealers hole card
3001 through 3005 missing
3001 through 3003 check status of player's finished hand then
3005 GOSUB 9800
9800 through 9870 show dealers hole card
3001 through 3005 missing
-sanello
Re: Z80-21 Yet Another "BlackJack"
Hi Sanello,
I put the original listing here : viewtopic.php?p=47793#p47793
The Z value is displayed, but the box is overwrite by a blank string ?
Something's wrong, Z is the dealer value, it's display in the player box... true? (my add)
is it the missing score ?
I put the original listing here : viewtopic.php?p=47793#p47793
The Z value is displayed, but the box is overwrite by a blank string ?
Code: Select all
3000 GOSUB 9096
3006 PRINT AT 8,0;Y;TAB 4;"’bust’" AND Y>21;"´´´´´´´´´"
3008 IF U=1 THEN GOSUB 8160
3010 IF U=2 THEN GOSUB 8260
3012 GOSUB 9800
(...)
9800 LET A=15
9810 LET J=0
9820 LET C(G,H)=G
9830 LET S=H
9840 LET T=G
9850 GOSUB 2000
9860 PRINT AT 13,0;N$;AT 13,0;Z
9870 RETURN
is it the missing score ?
Code: Select all
9078 IF Z=21 THEN PRINT AT 8,0;Z;TAB 4;"ins–«won"
9080 IF Z<>21 THEN PRINT AT 8,0;Z;TAB 4;"ins–«lost"
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
Re: Z80-21 Yet Another "BlackJack"
Hi,
A little reminder:
length 12700 bytes. (We had to add the D_file and the vars=14175 bytes)
Memory left : 2074 bytes.
A little reminder:
length 12700 bytes. (We had to add the D_file and the vars=14175 bytes)
Memory left : 2074 bytes.
Code: Select all
0 REM [HEX:\
00,00,E7,CD,92,0D,CD,F5,\
0B,68,61,CD,D8,09,01,05,\
00,09,EB,2A,0C,40,23,FD,\
36,7C,01,1A,CB,77,CB,B7,\
FD,77,7B,28,0A,13,1A,FD,\
77,7C,FE,01,CA,5B,00,ED,\
4B,7B,40,71,23,CB,76,28,\
01,23,10,F7,13,18,D8,21,\
3D,40,36,20,2A,0C,40,0E,\
16,23,7E,06,1F,F5,23,7E,\
2B,77,23,10,F9,F1,36,88,\
23,0D,20,ED,21,3D,40,35,\
3E,00,BE,20,DF,C9 ]
1 REM [HEX:\
00,81,82,0A,43,04,07,0A,\
06,03,86,0A,06,03,86,4A,\
04,06,03,84,4A,02,81,0A,\
06,86,03,04,83,C0,02,8A,\
4A,03,06,4A,02,05,0A,85,\
0A,05,0A,85,4A,06,06,0A,\
02,C5,02,40,03,85,C0,04,\
4A,02,06,4A,03,84,80,07,\
0A,05,0A,85,0A,87,8A,4A,\
02,06,4A,03,85,0A,86,00,\
87,01,02,84,07,01,0A,06,\
4A,04,05,0A,85,0A,05,0A,\
85,4A,04,06,4A,04,85,4A,\
02,86,01,40,02,43,02,0A,\
81,CA,04,0A,82,8A,81,0A,\
86,8A,06,4A,04,82,CA,02,\
4A,02,81,8A,4A,22,40,42,\
06,C3,1E,86,85,4A,1E,05,\
85,00,2A,33,39,2A,37,00,\
39,26,27,31,2A,00,37,3A,\
31,2A,38,00,87,1D,00,2B,\
34,37,00,1E,0E,1D,00,05,\
85,40,03,2B,34,37,00,1E,\
1D,00,35,26,3E,34,3A,39,\
40,03,87,1E,00,2B,34,37,\
00,1F,0E,1E,00,05,85,40,\
13,87,1F,00,2B,34,37,00,\
22,0E,21,00,05,85,49,1E,\
05,86,43,1E,06,40,42,04,\
40,1E,06,02,04,40,19,87,\
82,00,06,40,02,02,04,40,\
17,87,C0,02,82,02,04,00,\
06,40,18,02,C0,02,07,00,\
02,06,40,02,35,37,34,2C,\
37,26,72,02,2A,29,00,27,\
3E,0E,00,38,1B,26,33,2A,\
71,02,34,00,87,82,40,41,\
40,01 ]
2 REM [HEX:\
CA,05,88,CA,05,88,CA,05,\
88,CA,05,88,CA,05,88,07,\
84,05,40,03,85,88,05,40,\
03,85,88,05,40,03,85,88,\
05,40,03,85,88,05,40,03,\
85,88,05,85,05,40,03,85,\
88,05,40,03,85,88,05,40,\
03,85,88,05,40,03,85,88,\
05,40,03,85,88,05,85,05,\
40,03,85,88,05,40,03,85,\
88,05,40,03,85,88,05,40,\
03,85,88,05,40,03,85,88,\
05,85,05,40,03,85,88,05,\
40,03,85,88,05,40,03,85,\
88,05,40,03,85,88,05,40,\
03,85,88,05,85,05,40,03,\
85,88,05,40,03,85,88,05,\
40,03,85,88,05,40,03,85,\
88,05,40,03,85,88,05,85,\
C9,05,88,C9,05,88,C9,05,\
88,C9,05,88,C9,05,88,05,\
85,CA,04,C8,1A,82,81,40,\
03,80,C9,16,B5,B1,A6,BE,\
AA,B7,CA,03,80,CA,1C,3C,\
26,71,02,2A,39,8D,40,05,\
85,40,16,27,2A,39,8D,40,\
05,85,40,13,C9,03,80,C9,\
1C,40,03,80,CA,14,A8,B7,\
B4,BA,B5,AE,AA,B7,43,04,\
40,1A,07,84,8F,C8,03,8F,\
00,C8,05,00,C8,05,00,C8,\
05,00,C8,05,00,05,85,C8,\
05,00,C8,05,00,C8,05,00,\
C8,05,00,C8,05,00,05,85,\
C8,05,00,C8,05,00,C8,05,\
00,C8,05,00,C8,05,00,05,\
85,C8,05,00,C8,05,00,C8,\
05,00,C8,05,00,C8,05,00,\
05,85,C8,05,00,C8,05,00,\
C8,05,00,C8,05,00,C8,05,\
00,05,85,C8,05,00,C8,05,\
00,C8,05,00,C8,05,00,C8,\
05,00,05,85,8F,C8,03,8F,\
00,C8,05,00,C8,05,00,C8,\
05,00,C8,05,00,82,81,40,\
40,40,01 ]
3 REM [HEX:\
C8,08,40,02,0E,16,40,02,\
87,C9,03,04,40,02,16,0E,\
00,C8,0F,40,03,0E,40,03,\
85,1B,0B,1B,05,40,03,0E,\
40,02,C8,0D,0E,16,00,16,\
0E,40,02,81,80,0A,11,00,\
07,04,40,02,0E,16,00,16,\
C8,0C,0E,40,03,0E,00,85,\
88,02,8A,16,06,00,85,40,\
02,0E,40,03,C8,0B,00,0E,\
40,03,0E,00,81,88,04,88,\
89,18,87,00,05,00,0E,40,\
03,0E,C8,09,40,02,0E,40,\
03,0E,85,88,87,05,88,32,\
00,85,05,02,04,0E,40,03,\
0E,C8,09,00,09,0E,40,03,\
87,89,8A,81,05,88,3B,00,\
85,80,04,86,40,02,5A,02,\
0E,C8,08,00,49,02,0E,16,\
00,87,03,C4,02,80,10,88,\
0E,00,11,80,84,03,86,00,\
D8,03,00,C8,06,C9,1B,C8,\
03,40,FF,40,E0,40,01 ]
5 LET SC=16516
6 LET SD=16577
8 GOSUB 9100
9 RAND
10 DIM P(5)
20 DIM D(5)
30 DIM A$(4,3)
40 LET A$(1)="CLB"
50 LET A$(2)="SPD"
60 LET A$(3)="DMD"
70 LET A$(4)="HRT"
71 LET B$="¼¸¸¸¯"
72 LET C$="ª®®®¬"
73 LET D$="winner«"
74 LET F$="loser«"
75 LET G$="draw«"
76 LET I$="push«"
77 LET J$="µµµµµ³"
78 LET K$="º °"
79 LET L$="´´´´´³"
80 LET M$=" "
81 LET N$=" "
85 LET W=1000
90 CLS
91 IF W<2 THEN GOTO 9900
92 IF W>9999 THEN GOTO 9970
100 PRINT AT 0,0;"SHUFFLING"
110 DIM C(13,4)
120 FOR I=1 TO 4
130 FOR N=1 TO 13
140 PRINT ".";
150 LET C(N,I)=N
160 NEXT N
170 NEXT I
180 LET L=52
190 RAND USR SD
191 PRINT USR SC,VAL "3"
194 IF W<1 THEN GOTO 9900
195 IF W>9999 THEN GOTO 9970
196 LET Y1=0
197 LET Y2=Y1
198 LET P1=0
199 LET P2=P1
200 PRINT AT 10,0;"WALLET:$";M$;AT 10,8;W
204 DIM P(5)
208 DIM D(5)
210 PRINT AT 11,0;"BET ?";M$;M$
220 INPUT B
221 IF B/2=INT (B/2) THEN GOTO 224
222 PRINT AT 11,0;"EVEN BETS ONLY"
223 GOTO 270
225 LET V=0
226 LET E=V
227 LET S=V
228 LET T=V
229 LET U=V
230 LET B=INT B
240 IF B<=W AND B<501 AND B>0 THEN GOTO 315
250 IF B>W THEN GOTO 300
260 PRINT AT 11,0;"max500min1"
270 GOSUB 1300
290 GOTO 210
300 PRINT AT 11,0;"$LOW FUNDS$"
310 GOTO 270
320 RAND USR SD
340 PRINT USR SC,VAL "2"
350 PRINT AT 10,7;M$;AT 10,7;W-B;AT 11,7;M$;AT 11,7;B
360 LET W=W-B
364 LET Q=0
368 LET B1=Q
370 LET B2=Q
375 LET A=Q
380 LET J=Q
390 GOSUB 7000
400 LET F=C(T,S)
410 LET E$=A$(S)
420 IF C(T,S)>9 THEN LET P(1)=10
430 IF C(T,S)>1 AND C(T,S)<=9 THEN LET P(1)=C(T,S)
440 IF C(T,S)=1 THEN LET P(1)=11
455 GOSUB 9096
460 GOSUB 2000
462 IF U AND Y=1 THEN LET Y=11
464 IF U AND Y=11 THEN LET P(1)=11
465 PRINT AT 8,0;N$;AT 8,0;Y;
470 LET J=6
480 GOSUB 7000
490 IF NOT U THEN LET M=C(T,S)
500 IF C(T,S)>9 THEN LET P(2)=10
510 IF C(T,S)>1 AND C(T,S)<=9 THEN LET P(2)=C(T,S)
520 IF C(T,S)=1 THEN LET P(2)=11
535 GOSUB 9096
540 IF Y>21 THEN LET P(1)=1
541 GOSUB 9096
542 GOSUB 2000
545 PRINT AT 8,0;N$;AT 8,0;Y;
547 IF U>0 THEN GOTO 715
550 LET A=15
560 LET J=0
570 GOSUB 7000
575 LET H=S
576 LET G=T
580 IF C(T,S)>9 THEN LET D(1)=10
590 IF C(T,S)>1 AND C(T,S)<=9 THEN LET D(1)=C(T,S)
591 IF C(T,S)=1 THEN LET D(1)=11
595 LET C(T,S)=0
610 GOSUB 5000
620 LET J=6
630 GOSUB 7000
640 IF C(T,S)>9 THEN LET D(2)=10
650 IF C(T,S)>1 AND C(T,S)<=9 THEN LET D(2)=C(T,S)
660 IF C(T,S)=1 THEN LET D(2)=11
665 GOSUB 9092
670 IF Z>21 AND D(1)=11 THEN LET D(1)=1
685 GOSUB 9092
690 GOSUB 2000
692 PRINT AT 13,0;N$;AT 13,0;D(2)
697 IF U=1 THEN GOTO 715
700 IF F=M THEN GOSUB 8000
705 IF NOT U THEN GOSUB 9000
710 IF U=1 THEN GOTO 460
715 IF NOT U THEN LET BC=B
716 IF U=1 THEN LET BC=B1
717 IF U=2 THEN LET BC=B2
718 IF W>=B+BC THEN PRINT AT 10,13;"HIT,STAY OR DOUBLE?";TAB 14;M$;"H/S/D";M$;N$
719 IF W<B+BC THEN PRINT AT 10,13;" HIT OR STAY? H/S"
720 GOSUB 8300
730 PRINT AT 10,13;M$;M$;M$;N$;" ";TAB 13;M$;M$;M$;N$;" "
740 IF H$="S" THEN GOTO 3000
750 IF H$="H" THEN GOTO 770
755 IF H$="D" THEN GOTO 765
760 GOTO 718
765 IF W>=B+BC THEN GOTO 770
767 GOTO 715
770 LET A=0
771 LET J=12
772 IF H$<>"D" THEN GOTO 787
774 LET W=W-BC
776 LET B=B+BC
780 IF U=2 THEN LET B2=B2+B2
785 IF U=1 THEN LET B1=B1+B1
787 PRINT AT 10,7;M$;AT 10,7;W;TAB 7;B
789 IF U<>0 THEN PRINT AT 10,13;"BET1 $";B1;" BET2 $";B2
790 GOSUB 7000
800 IF C(T,S)>9 THEN LET P(3)=10
810 IF C(T,S)>1 AND C(T,S)<=9 THEN LET P(3)=C(T,S)
820 IF C(T,S)=1 THEN LET P(3)=11
825 GOSUB 9096
830 FOR I=1 TO 3
840 IF Y>21 AND P(I)=11 THEN LET P(I)=1
850 GOSUB 9096
855 NEXT I
860 GOSUB 2000
870 IF Y>21 THEN GOTO 3000
880 PRINT AT 8,0;N$;AT 8,0;Y;TAB 4;"´´´´´´´´´"
885 IF H$="D" THEN GOTO 3000
890 PRINT AT 10,14;"HIT OR STAY? H/S"
900 GOSUB 8300
910 PRINT AT 10,14;M$;M$;M$;" "
920 IF H$="S" THEN GOTO 3000
930 IF H$="H" THEN GOTO 950
940 GOTO 890
950 LET J=18
960 GOSUB 7000
970 IF C(T,S)>9 THEN LET P(4)=10
980 IF C(T,S)>1 AND C(T,S)<=9 THEN LET P(4)=C(T,S)
990 IF C(T,S)=1 THEN LET P(4)=11
995 GOSUB 9096
1000 FOR I=1 TO 4
1010 IF Y>21 AND P(I)=11 THEN LET P(I)=1
1020 GOSUB 9096
1030 NEXT I
1040 GOSUB 2000
1050 IF Y>21 THEN GOTO 3000
1060 PRINT AT 8,0;N$;AT 8,0;Y;
1070 PRINT AT 10,14;"HIT OR STAY? H/S"
1080 GOSUB 8300
1090 PRINT AT 10,14;M$;M$;M$;" "
1100 IF H$="S" THEN GOTO 3000
1110 IF H$="H" THEN GOTO 1130
1120 GOTO 1070
1130 LET J=24
1140 GOSUB 7000
1150 IF C(T,S)>9 THEN LET P(5)=10
1160 IF C(T,S)<=9 THEN LET P(5)=C(T,S)
1170 FOR I=1 TO 4
1180 IF P(I)=11 THEN LET P(I)=1
1190 NEXT I
1195 GOSUB 9096
1200 GOSUB 2000
1201 IF Y>21 AND P(5)=11 THEN LET P(5)=1
1202 GOSUB 9096
1205 IF U=1 THEN LET P1=P(5)
1207 IF U=2 THEN LET P2=P(5)
1210 IF Y>21 THEN GOTO 3000
1220 PRINT AT 8,0;N$;AT 8,0;Y;
1230 GOTO 3000
1300 FOR I=1 TO 50
1310 NEXT I
1320 RETURN
2000 GOSUB 5000+(C(T,S)*100)
2030 LET C(T,S)=0
2040 RETURN
3000 GOSUB 9096
3006 PRINT AT 8,0;Y;TAB 4;"’bust’" AND Y>21;"´´´´´´´´´"
3008 IF U=1 THEN GOSUB 8160
3010 IF U=2 THEN GOSUB 8260
3012 GOSUB 9800
3014 IF Z>16 THEN GOTO 4510
3015 LET J=12
3016 IF Y>21 THEN GOTO 4515
3017 IF Y1>21 AND Y2>21 THEN GOTO 4800
3020 GOSUB 7000
3030 IF C(T,S)>9 THEN LET D(3)=10
3040 IF C(T,S)<=9 THEN LET D(3)=C(T,S)
3050 IF C(T,S)=1 THEN LET D(3)=11
3055 GOSUB 9092
3060 FOR I=1 TO 3
3070 IF Z>21 AND D(I)=11 THEN LET D(I)=1
3080 GOSUB 9092
3085 NEXT I
3090 GOSUB 2000
3095 PRINT AT 13,0;N$;AT 13,0;Z
3100 IF Z>21 THEN GOTO 4500
3110 IF Z>16 THEN GOTO 4510
3120 LET J=18
3130 GOSUB 7000
3140 IF C(T,S)>9 THEN LET D(4)=10
3150 IF C(T,S)<=9 THEN LET D(4)=C(T,S)
3160 IF C(T,S)=1 THEN LET D(4)=11
3165 GOSUB 9092
3170 FOR I=1 TO 4
3180 IF Z>21 AND D(I)=11 THEN LET D(I)=1
3190 GOSUB 9092
3200 NEXT I
3210 GOSUB 2000
3220 PRINT AT 13,0;N$;AT 13,0;Z
3230 IF Z>21 THEN GOTO 4500
3240 IF Z>16 THEN GOTO 4510
3250 LET J=24
3260 GOSUB 7000
3270 IF C(T,S)>9 THEN LET D(5)=10
3280 IF C(T,S)<=9 THEN LET D(5)=C(T,S)
3290 IF C(T,S)=1 THEN LET D(5)=11
3295 GOSUB 9092
3300 FOR I=1 TO 5
3310 IF Z>21 AND D(I)=11 THEN LET D(I)=1
3320 GOSUB 9092
3330 NEXT I
3350 GOSUB 2000
3360 PRINT AT 13,0;N$;AT 13,0;Z
3370 IF Z>21 THEN GOTO 4500
3380 GOTO 4510
4500 PRINT AT 13,0;Z;TAB 4;"’bust’"
4510 GOSUB 9092
4515 LET K=0
4516 IF Y1>0 THEN GOTO 4800
4530 IF Y>Z AND Y<22 THEN LET K=1
4540 IF Z>21 AND Y<22 THEN LET K=1
4550 IF Z=Y AND Y<22 THEN LET K=3
4554 IF Z<22 AND Y<22 AND P(5)>0 THEN LET K=1
4556 IF Y=21 AND Z<>21 THEN LET K=2
4560 IF K=1 THEN LET W=W+B+B
4565 IF K=2 THEN LET W=INT (W+B+(B*(O/X)))
4570 IF K=3 THEN LET W=W+B
4580 IF K=1 OR K=2 THEN PRINT AT 3,0;"««";D$;D$;D$;D$;"««"
4590 IF K=3 THEN PRINT AT 3,0;"«";G$;I$;G$;I$;G$;I$;"«"
4600 IF NOT K THEN PRINT AT 3,0;"««";F$;F$;F$;F$;F$
4610 GOSUB 1300
4630 GOTO 4910
4800 LET K1=0
4801 LET K2=0
4804 IF Y1>Z AND Y1<22 THEN LET K1=1
4805 IF Y2>Z AND Y2<22 THEN LET K2=1
4810 IF Z>21 AND Y1<22 THEN LET K1=1
4815 IF Z>21 AND Y2<22 THEN LET K2=1
4820 IF Z=Y1 AND Y1<22 THEN LET K1=3
4825 IF Z=Y2 AND Y2<22 THEN LET K2=3
4830 IF Z<22 AND Y1<22 AND P1>0 THEN LET K1=1
4835 IF Z<22 AND Y2<22 AND P2>0 THEN LET K2=1
4837 IF Y1=21 AND Z<>21 THEN LET K1=2
4838 IF Y2=21 AND Z<>21 THEN LET K2=2
4840 IF K1=1 THEN LET W=W+B1+B1
4845 IF K2=1 THEN LET W=W+B2+B2
4847 IF K1=2 THEN LET W=INT (W+(B1*(O/X)))
4848 IF K2=2 THEN LET W=INT (W+(B2*(O/X)))
4850 IF K1=3 THEN LET W=W+B1
4855 IF K2=3 THEN LET W=W+B2
4860 IF K1=1 OR K1=2 THEN PRINT AT 3,0;"«««hand˜«";D$;D$;D$;"««"
4865 IF K2=1 OR K2=2 THEN PRINT AT 5,0;"«««hand™«";D$;D$;D$;"««"
4870 IF K1=3 THEN PRINT AT 3,0;"«hand˜«";I$;G$;I$;G$;I$
4875 IF K2=3 THEN PRINT AT 3,0;"«hand™«";I$;G$;I$;G$;I$
4880 IF NOT K1 THEN PRINT AT 3,0;"«hand˜«";F$;F$;F$;F$;"«"
4885 IF NOT K2 THEN PRINT AT 5,0;"«hand™«";F$;F$;F$;F$;"«"
4890 GOSUB 1300
4910 IF L>16 THEN GOTO 190
4920 GOTO 90
5000 PRINT AT A,J;"«¯¯¯¯";TAB J;"ª±±±¯";TAB J;"ª±±±¯";TAB J;"ª±±±¯";TAB J;"ª±±±¯";TAB J;"ª±±±¯";TAB J;"ªªªª«"
5040 RETURN
5100 PRINT AT A,J;B$;TAB J;"º²¸¹°";TAB J;"ºº °°";TAB J;"º¼¸¯°";TAB J;"ºº °°";TAB J;"º";A$(S);"°";TAB J;C$
5170 RETURN
5200 PRINT AT A,J;B$;TAB J;"º 2 °";TAB J;K$;TAB J;"º 2 °";TAB J;K$;TAB J;"º";A$(S);"°";TAB J;C$
5270 RETURN
5300 PRINT AT A,J;B$;TAB J;"º 3 °";TAB J;"º 3 °";TAB J;"º 3 °";TAB J;K$;TAB J;"º";A$(S);"°";TAB J;C$
5370 RETURN
5400 PRINT AT A,J;B$;TAB J;"º4 4°";TAB J;K$;TAB J;"º4 4°";TAB J;K$;TAB J;"º";A$(S);"°";TAB J;C$
5470 RETURN
5500 PRINT AT A,J;B$;TAB J;"º5 5°";TAB J;"º 5 °";TAB J;"º5 5°";TAB J;K$;TAB J;"º";A$(S);"°";TAB J;C$
5570 RETURN
5600 PRINT AT A,J;B$;TAB J;"º6 6°";TAB J;"º6 6°";TAB J;"º6 6°";TAB J;K$;TAB J;"º";A$(S);"°";TAB J;C$
5670 RETURN
5700 PRINT AT A,J;B$;TAB J;"º7 7°";TAB J;"º 7 °";TAB J;"º7 7°";TAB J;"º7 7°";TAB J;"º";A$(S);"°";TAB J;C$
5770 RETURN
5800 PRINT AT A,J;B$;TAB J;"º8 8°";TAB J;"º8 8°";TAB J;"º8 8°";TAB J;"º8 8°";TAB J;"º";A$(S);"°";TAB J;C$
5870 RETURN
5900 PRINT AT A,J;B$;TAB J;"º9 9°";TAB J;"º9 9°";TAB J;"º999°";TAB J;"º9 9°";TAB J;"º";A$(S);"°";TAB J;C$
5970 RETURN
6000 PRINT AT A,J;B$;TAB J;"ºTEN°";TAB J;"º ˜ °";TAB J;"º — °";TAB J;"ºTEN°";TAB J;"º";A$(S);"°";TAB J;C$
6070 RETURN
6100 PRINT AT A,J;B$;TAB J;"º·¯¸°";TAB J;"º ° °";TAB J;"º ° °";TAB J;"º±» °";TAB J;"º";A$(S);"°";TAB J;C$
6170 RETURN
6200 PRINT AT A,J;B$;TAB J;"º²¸¹°";TAB J;"ºº °°";TAB J;"ºº²°°";TAB J;"º·®±°";TAB J;"º";A$(S);"°";TAB J;C$
6270 RETURN
6300 PRINT AT A,J;B$;TAB J;"ºº »°";TAB J;"ºª» °";TAB J;"º¼± °";TAB J;"ºº ±°";TAB J;"º";A$(S);"°";TAB J;C$
6370 RETURN
7000 LET T=INT (RND*13+1)
7100 LET S=INT (RND*4+1)
7500 IF C(T,S)=0 THEN GOTO 7000
7540 LET L=L-1
7550 PRINT AT 14,10;"CARDS LEFT:";L;" "
7600 RETURN
8000 IF W<B+B AND NOT U THEN RETURN
8005 IF U=2 THEN RETURN
8006 GOSUB 9000
8010 PRINT AT 7,8;"splitŠ Y OR N"
8012 GOSUB 8300
8014 LET Q$=H$
8015 IF Q$="Y" THEN GOTO 8050
8020 IF Q$="N" THEN RETURN
8030 GOTO 8010
8040 RETURN
8050 LET U=1
8056 LET A=0
8058 PRINT AT 7,8;"³³³³³³³³³³³³³"
8060 PRINT AT 5,0;"hand˜"
8070 GOSUB 8400
8080 LET B1=B
8090 LET B2=B
8100 PRINT AT 11,13;"BET1 $";B1;" BET2 $";B2
8110 LET W=W-B1
8120 LET B=B+B
8130 PRINT AT 10,7;M$;AT 10,7;W;AT 11,7;M$;AT 11,7;B
8142 IF F=1 THEN LET P(1)=11
8150 RETURN
8160 LET Y1=Y
8162 GOSUB 1300
8166 PRINT AT 8,0;N$
8170 LET U=2
8180 FOR I=2 TO 5
8190 LET P(I)=0
8200 NEXT I
8210 LET C(T,S)=M
8215 PRINT AT 5,0;"hand™"
8220 LET A=0
8230 LET J=0
8235 GOSUB 8400
8240 PRINT AT 10,14;"hand˜ SUM:";Y1
8250 GOTO 470
8260 LET Y2=Y
8262 GOSUB 1300
8270 PRINT AT 10,14;"hand™ SUM:";Y2
8280 RETURN
8300 IF INKEY$<>"" THEN GOTO 8300
8310 IF INKEY$="" THEN GOTO 8310
8320 LET H$=INKEY$
8330 RETURN
8400 PRINT AT 0,6;J$;J$;J$;J$
8410 FOR I=1 TO 5
8420 PRINT TAB 6;K$;"³";K$;"³";K$;"³";K$
8430 NEXT I
8440 PRINT TAB 6;L$;L$;L$;L$
8450 RETURN
9000 IF Y=21 AND Z=21 THEN GOSUB 9800
9001 IF Y<>21 AND D(2)=11 AND W>=B/2 THEN GOTO 9019
9002 IF Y=21 AND Z<>21 THEN LET K=2
9003 IF Z=21 AND Y<>21 THEN LET K=0
9004 IF Z<>21 AND Y<>21 THEN RETURN
9005 GOSUB 9800
9006 GOTO 4560
9019 PRINT AT 7,8;"insuranceŠ Y/N"
9020 GOSUB 8300
9022 LET Q$=H$
9030 PRINT AT 7,8;"³³³³³³³³³³³³³³"
# 9030 IF Q$="Y" THEN GOTO 9070
# 9040 IF Q$="N" THEN GOTO 9081
# 9060 GOTO 9010
9040 GOTO 9010+(60 AND Q$="Y")+(71 AND Q$="N")
9070 IF Z=21 THEN LET W=W+(B/2)
9075 IF Z<>21 THEN LET W=W-(B/2)
9076 PRINT AT 10,7;M$;AT 10,7;W
9078 IF Z=21 THEN PRINT AT 13,0;Z;TAB 4;"ins–«won"
9080 IF Z<>21 THEN PRINT AT 13,0;Z;TAB 4;"ins–«lost"
9081 IF Z=21 THEN GOSUB 9800
9082 IF Z=21 THEN GOTO 4515
9090 GOTO 9002
9092 LET Z=D(1)+D(2)+D(3)+D(4)+D(5)
9094 RETURN
9096 LET Y=P(1)+P(2)+P(3)+P(4)+P(5)
9098 RETURN
9100 PRINT USR SC,VAL "1"
9200 LET MP=1
9300 GOSUB 8300
9400 LET Q$=H$
9410 IF Q$>"0" AND Q$<"4" THEN GOTO 9430
9420 GOTO 9300
9430 LET O=(2 AND Q$="1")+(3 AND Q$="2")+(6 AND Q$="3")
9440 LET X=(1 AND Q$="1")+(2 AND Q$="2")+(5 AND Q$="3")
9450 RETURN
9500 SAVE "Z802˜"
9510 RUN
9800 LET A=15
9810 LET J=0
9820 LET C(G,H)=G
9830 LET S=H
9840 LET T=G
9850 GOSUB 2000
9860 PRINT AT 13,0;N$;AT 13,0;Z
9870 RETURN
9900 PRINT AT 10,0;"WALLET EMPTY",
9910 PRINT ,,,"PLAY AGAIN? Y/N"
9920 GOSUB 8300
# 9930 IF H$="Y" THEN RUN
# 9950 IF H$="N" THEN GOTO 9999
# 9960 GOTO 9920
9930 RUN (9999 AND NOT H$="Y")
9970 PRINT AT 10,0;"YOU BEAT THE HOUSE WINNING";TAB 12;"$";W
9990 GOTO 9910
9999 PRINT ,,"THANKS FOR PLAYING"
Xavier ...on the Facebook groupe : "Zx81 France"(fr)