10 REM ****************** 20 REM * * 30 REM * CHAMP DOMINOES * 40 REM * * 50 REM * BY * 60 REM * * 70 REM * ATHOL MCEWAN * 80 REM * 1988 * 90 REM * * 100 REM ****************** 110 REM **INITIATE GAME** 120 POKE53265,PEEK(53265)OR16 130 POKE51,144:POKE52,148:POKE55,144:POKE56,148:CLR:DO=7:LE=1:OP=2 140 GOSUB4430:POKE53280,0:POKE53281,0 150 PRINT"[147]";:FORA=0TO8:PRINTTAB(2)DO$(A):NEXT 160 PRINT"[158]"TAB(12)"BY ATHOL MCEWAN":GOSUB4520:GOSUB5060 170 PRINT"[158]  DO YOU NEED INSTRUCTIONS [Y/N] [146] N" 180 PRINTTAB(35)"[145]";:POKE198,0:INPUTA$ 190 IFA$="N"THEN220 200 IFA$="Y"THEN4670 210 PRINT"[145][145][145]":GOTO170 220 PRINT"[147]";:FORA=0TO8:PRINTTAB(2)DO$(A):NEXT:RW=13:GOSUB2380 230 IFPEEK(251)>4ANDPEEK(251)<11THENDO=PEEK(251) 240 IFPEEK(252)>0ANDPEEK(252)<3THENLE=PEEK(252) 250 IFPEEK(253)>0ANDPEEK(253)<3THENOP=PEEK(253) 260 PRINTTAB(15)"[145][145][145][158] SELECT GAME [146]":PRINTTAB(4) 270 PRINT" HOW MANY OPPONENTS [1 OR 2]:[146] "OP:PRINTTAB(33)"[145]";:INPUTOP 280 IFOP<1OROP>2THENPRINT"[145][145]"TAB(4):GOTO270 290 PRINTTAB(4) 300 PRINT" NUMBER OF DOMINOES: [146]"DO:PRINTTAB(24)"[145]";:POKE198,0:INPUTDO 310 IFDO<5ORDO>9THENPRINT"[145][145][145]":DO=7:GOTO290 320 PRINTTAB(4)" LEVEL [146]":PRINT:PRINTTAB(4)"1. NOVICE" 330 PRINTTAB(4)"2. CHAMPIONSHIP" 340 PRINTTAB(4):PRINT" SELECT LEVEL [146] "LE:PRINTTAB(18)"[145]";:POKE198,0:INPUTLE 350 IFLE<1ORLE>2THENPRINT"[145][145][145]":GOTO340 360 TD=DO*(OP+1):PRINT"[147]":RW=11:GOSUB2380:FORA=5TO7 370 PRINTTAB(3);MID$(DO$(A),3,31):NEXT 380 REM **DEAL DOMINOES** 390 EQ=0:FORA=1TODO:EQ=EQ+1:FORI=1TO(OP+1) 400 RQ=INT(28*RND(0)+1):IFS$(RQ)=""THEN400 410 DD$(I)=S$(RQ):S$(RQ)="" 420 NEXT:IFOP=1THENM$(EQ)=DD$(1):C$(EQ)=DD$(2):NEXT:GOTO450 430 M$(EQ)=DD$(1):C$(EQ)=DD$(2):H$(EQ)=DD$(3):NEXT 440 REM **SET UP GAME SCREEN** 450 PRINT" [158]MAX":IFOP=2THENPRINT" JOE" 460 IFOP=2THENB2=DO:D2=DO:G2=DO:GOSUB2490:GOSUB2510:GOSUB2440:GOSUB3390:GOTO480 470 IFOP=1THENB2=DO:D2=DO:GOSUB2490:GOSUB2440:GOSUB3390 480 IFOP=2THENGOSUB3240:PRINT"";TAB(30)"[150]MAX[158]JOEYOU":MR=0:CR=0:GR=0:GOTO500 490 GOSUB3240:PRINT"";TAB(30)"[150]MAX YOU":MR=0:CR=0 500 PRINT" [158][176][192][192][174]":PRINT" [194][194]":PRINT" [173][192][192][189]" 510 REM **CHECK FOR HIGHEST DOMINO** 520 IFS$(28)=""THENX=6:GOTO600 530 IFS$(26)=""THENX=5:GOTO600 540 IFS$(23)=""THENX=4:GOTO600 550 IFS$(19)=""THENX=3:GOTO600 560 IFS$(14)=""THENX=2:GOTO600 570 IFS$(8)=""THENX=1:GOTO600 580 IFS$(1)=""THENX=0:GOTO600 590 GOTO690 600 FORI=1TODO:L=VAL(LEFT$(M$(I),1)):R=VAL(RIGHT$(M$(I),1)):XX=L+R 610 IFL=XANDR=XTHENPP=I:PT=3:GOTO850 620 NEXT 630 FORI=1TODO:L=VAL(LEFT$(C$(I),1)):R=VAL(RIGHT$(C$(I),1)):XX=L+R 640 IFL=XANDR=XTHENPP=I:PT=1:N$="MAX":GOTO870 650 NEXT:IFOP=1THEN690 660 FORI=1TODO:L=VAL(LEFT$(H$(I),1)):R=VAL(RIGHT$(H$(I),1)):XX=L+R 670 IFL=XANDR=XTHENPP=I:PT=2:N$="JOE":GOTO900 680 NEXT 690 IFS$(27)=""THENX=11:GOTO750 700 IFS$(25)=""THENX=10:GOTO750 710 IFS$(22)=""ORS$(24)=""THENX=9:GOTO750 720 IFS$(21)=""ORS$(18)=""THENX=8:GOTO750 730 IFS$(20)=""ORS$(17)=""THENX=7:GOTO750 740 IFS$(16)=""ORS$(12)=""ORS$(7)=""THENX=6:GOTO750 750 FORI=1TODO:XX=VAL(LEFT$(M$(I),1))+VAL(RIGHT$(M$(I),1)) 760 IFXX=XTHENPP=I:PT=3:GOTO850 770 NEXT 780 FORI=1TODO:XX=VAL(LEFT$(C$(I),1))+VAL(RIGHT$(C$(I),1)) 790 IFXX=XTHENPP=I:PT=1:N$="MAX":GOTO870 800 NEXT:IOP=1THEN840 810 FORI=1TODO:XX=VAL(LEFT$(H$(I),1))+VAL(RIGHT$(H$(I),1)) 820 IFXX=XTHENPP=I:PT=2:N$="JOE":GOTO900 830 NEXT 840 REM **PLAY HIGHEST DOMINO** 850 LC=10:RC=10:GOSUB2400 860 PRINTTAB(10)"[158][145][145]YOU HAVE FIRST DROP":FORT=1TO500:NEXT:GOTO930 870 GOSUB2400:PRINTTAB(10)"[158][145][145]"N$" HAS FIRST DROP":FORT=1TO500:NEXT 880 XX$=C$(PP):C$(PP)="":GOSUB2660:GOSUB3290:GOSUB2400:V1=VAL(LEFT$(XX$,1)) 890 V2=VAL(RIGHT$(XX$,1)):L=V1:R=V2:GOSUB3450:GOSUB3330:GOSUB2850:GOTO960 900 GOSUB2400:PRINTTAB(10)"[158][145][145]"N$" HAS FIRST DROP":FORT=1TO500:NEXT 910 XX$=H$(PP):H$(PP)="":GOSUB2750:GOSUB3310:GOSUB2400:V1=VAL(LEFT$(XX$,1)) 920 V2=VAL(RIGHT$(XX$,1)):L=V1:R=V2:GOSUB3450:GOSUB3330:GOSUB2850:GOTO960 930 XX$=M$(PP):M$(PP)="":GOSUB2530:GOSUB3270:GOSUB2400:V1=VAL(LEFT$(XX$,1)) 940 V2=VAL(RIGHT$(XX$,1)):L=V1:R=V2:GOSUB3450:GOSUB3330 950 REM **CHECK WHO PLAYS NEXT** 960 PT=PT+1 970 IFPT=1THENN$="MAX":GOTO1150 980 IFOP=1ANDPT=2THENPT=3 990 IFPT=2THENN$="JOE":GOTO1660 1000 IFPT=3THEN1030 1010 IFPT>3THENPT=1:GOTO970 1020 REM **YOU MOVE ROUTINE** 1030 XX$="":GOSUB2420:CP=0 1040 RW=12:GOSUB2380:PRINT"[158]ENTER YOUR":PRINT"MOVE":SYS39270 1050 G$=CHR$(PEEK(252)):G$=G$+CHR$(PEEK(253)) 1060 IFLEFT$(G$,1)="D"THENGOSUB3620:GOSUB2900:GOTO1120 1070 G=VAL(G$):IFG<1ORG>D2THENGOSUB3760:GOTO1030 1080 XX$=M$(G):L=VAL(LEFT$(XX$,1)):R=VAL(RIGHT$(XX$,1)) 1090 IFL<>V1ANDL<>V2ANDR<>V1ANDR<>V2THENGOSUB3760:GOTO1030 1100 M$(G)="":GOSUB3450:GOSUB2530:GOSUB3270:GOSUB1510:IFD2=0THEN3790 1110 GOTO960 1120 IFCH=1THENCH=0:GOSUB2420:GOTO960 1130 IFCH=0THEN1030 1140 REM **MAX'S MOVE ROUTINE** 1150 RW=12:GOSUB2380:PRINT"[158]MAX TO":PRINT"MOVE":FORT=1TO1000:NEXT 1160 XX$="":FORI=1TO11:PD$(I)="":NG$(I)="":Q(I)=0:NEXT:C=1:V=1:CK=0 1170 FORI=1TOB2:L=VAL(LEFT$(C$(I),1)):R=VAL(RIGHT$(C$(I),1)) 1180 IFL=V1ORR=V1THENPD$(C)=C$(I):C=C+1:GOTO1210 1190 IFL=V2ORR=V2THENPD$(C)=C$(I):C=C+1:GOTO1210 1200 NG$(V)=C$(I):V=V+1 1210 NEXT:C=C-1:V=V-1 1220 IFPD$(1)=""THENGOSUB3010:GOTO1290 1230 IFC=1THENPP=1:XX$=PD$(PP):GOSUB2070:GOSUB3450:GOTO1270 1240 IFLE=1THEN1260 1250 IFLE=2THEN1310 1260 PP=INT(C*RND(0))+1:XX$=PD$(PP):GOSUB2070:GOSUB3450 1270 IFB2=0THEN3830 1280 GOTO960 1290 IFCH=1THENCH=0:GOSUB2420:GOTO960 1300 IFCH=0THEN1160 1310 IFLC=10ANDRC=10THEN1390 1320 FORA=1TOC:L=VAL(LEFT$(PD$(A),1)):R=VAL(RIGHT$(PD$(A),1)) 1330 IFL=V1ANDR=LCTHENQ(A)=10 1340 IFL=V2ANDR=RCTHENQ(A)=10 1350 IFR=V1ANDL=LCTHENQ(A)=Q(A)+10 1360 IFR=V2ANDL=RCTHENQ(A)=Q(A)+10 1370 IFQ(A)=20THENPP=A:XX$=PD$(A):GOSUB2070:GOSUB3450:GOTO1270 1380 NEXT 1390 FORA=1TOC:L(A)=VAL(LEFT$(PD$(A),1)):R(A)=VAL(RIGHT$(PD$(A),1)) 1400 FORI=1TOV:LL(I)=VAL(LEFT$(NG$(I),1)):RR(I)=VAL(RIGHT$(NG$(I),1)) 1410 IFL(A)=V1ANDR(A)=LL(I)ORR(A)=RR(I)THENQ(A)=Q(A)+5 1420 IFR(A)=V1ANDR(A)=LL(I)ORR(A)=RR(I)THENQ(A)=Q(A)+5 1430 IFL(A)=V2ANDR(A)=LL(I)ORR(A)=RR(I)THENQ(A)=Q(A)+5 1440 IFR(A)=V2ANDR(A)=LL(I)ORR(A)=RR(I)THENQ(A)=Q(A)+5 1450 NEXT:NEXT 1460 FORA=1TOC:LT=VAL(LEFT$(PD$(A),1)):RT=VAL(RIGHT$(PD$(A),1)) 1470 Q(A)=Q(A)+LT+RT:NEXT:LC=0:RC=0:PC=0:FORA=1TOC:TQ=Q(A)+L(A)+R(A) 1480 IFPCLANDSD<>RTHEN1570 1600 IFSD=LANDL=V1THENV2=L:V3=R:V4=L:GOSUB3350:GOTO1640 1610 IFSD=LANDL=V2THENV1=L:V3=L:V4=R:GOSUB3370:GOTO1640 1620 IFSD=RANDR=V1THENV2=R:V3=L:V4=R:GOSUB3350:GOTO1640 1630 IFSD=RANDR=V2THENV1=R:V3=R:V4=L:GOSUB3370 1640 GOSUB2420: RETURN 1650 REM **JOE'S MOVE ROUTINE** 1660 RW=12:GOSUB2380:PRINT"[158]JOE TO":PRINT"MOVE":FORT=1TO1000:NEXT 1670 XX$="":FORI=1TO11:PD$(I)="":NG$(I)="":Q(I)=0:NEXT:C=1:V=1:CJ=0 1680 FORI=1TOG2:L=VAL(LEFT$(H$(I),1)):R=VAL(RIGHT$(H$(I),1)) 1690 IFL=V1ORR=V1THENPD$(C)=H$(I):C=C+1:GOTO1720 1700 IFL=V2ORR=V2THENPD$(C)=H$(I):C=C+1:GOTO1720 1710 NG$(V)=H$(I):V=V+1 1720 NEXT:C=C-1:V=V-1 1730 IFPD$(1)=""THENGOSUB3070:GOTO1800 1740 IFC=1THENPP=1:XX$=PD$(PP):GOSUB2090:GOSUB3450:GOTO1780 1750 IFLE=1THEN1770 1760 IFLE=2THEN1820 1770 PP=INT(C*RND(0))+1:XX$=PD$(PP):GOSUB2090:GOSUB3450 1780 IFG2=0THEN3830 1790 GOTO960 1800 IFCH=1THENCH=0:GOSUB2420:GOTO960 1810 IFCH=0THEN1670 1820 IFLC=10ANDRC=10THEN1900 1830 FORA=1TOC:L=VAL(LEFT$(PD$(A),1)):R=VAL(RIGHT$(PD$(A),1)) 1840 IFL=V1ANDR=LCTHENQ(A)=10 1850 IFL=V2ANDR=RCTHENQ(A)=10 1860 IFR=V1ANDL=LCTHENQ(A)=Q(A)+10 1870 IFR=V2ANDL=RCTHENQ(A)=Q(A)+10 1880 IFQ(A)=20THENPP=A:XX$=PD$(A):GOSUB2090:GOSUB3450:GOTO1780 1890 NEXT 1900 FORA=1TOC:L(A)=VAL(LEFT$(PD$(A),1)):R(A)=VAL(RIGHT$(PD$(A),1)) 1910 FORI=1TOV:LL(I)=VAL(LEFT$(NG$(I),1)):RR(I)=VAL(RIGHT$(NG$(I),1)) 1920 IFL(A)=V1ANDR(A)=LL(I)ORR(A)=RR(I)THENQ(A)=Q(A)+5 1930 IFR(A)=V1ANDR(A)=LL(I)ORR(A)=RR(I)THENQ(A)=Q(A)+5 1940 IFL(A)=V2ANDR(A)=LL(I)ORR(A)=RR(I)THENQ(A)=Q(A)+5 1950 IFR(A)=V2ANDR(A)=LL(I)ORR(A)=RR(I)THENQ(A)=Q(A)+5 1960 NEXT:NEXT 1970 FORA=1TOC:LT=VAL(LEFT$(PD$(A),1)):RT=VAL(RIGHT$(PD$(A),1)) 1980 Q(A)=Q(A)+LT+RT:NEXT:LC=0:RC=0:PC=0:FORA=1TOC:TQ=Q(A)+L(A)+R(A) 1990 IFPC=P(R)ANDL=V1THENV2=L:V3=R:V4=L:GOSUB3350:GOTO2300 2210 IFAA>=P(R)ANDL=V2THENV1=L:V3=L:V4=R:GOSUB3370:GOTO2300 2220 IFAA>=P(R)ANDR=V1THENV2=R:V3=L:V4=R:GOSUB3350:GOTO2300 2230 IFAA>=P(R)ANDR=V2THENV1=R:V3=R:V4=L:GOSUB3370:GOTO2300 2240 IFAAD2-1THENRETURN 2470 GOTO2450 2480 REM **PLAY MAX'S DOM WITH SOUND** 2490 SYSC1:GOSUB3710:FORP=1TOB2-1:SYSC2:GOSUB3710:NEXT:GOSUB2850:RETURN 2500 REM **PLAY JOE'S DOM WITH SOUND** 2510 SYSQ1:GOSUB3710:FORP=1TOG2-1:SYSQ2:GOSUB3710:NEXT:RETURN 2520 REM **REMOVE ONE OF YOUR DOM** 2530 D2=D2-1:IFD2=0THENRW=15:GOSUB2380:FORA=1TO9:PRINTLEFT$(CL$,33):NEXT:RETURN 2540 I=1:FORA=1TO(D2+1):IFM$(A)=""THEN2560 2550 ZZ$(I)=M$(A):I=I+1 2560 NEXT 2570 FORA=1TO11:M$(A)="":NEXT:FORA=1TOD2:M$(A)=ZZ$(A):NEXT 2580 RW=15:GOSUB2380:FORI=1TO9:PRINTLEFT$(CL$,34):NEXT 2590 PRINTLEFT$(CL$,34);"" 2600 M=1:POKELL,VAL(LEFT$(M$(M),1)):POKERR,VAL(RIGHT$(M$(M),1)):SYSO1 2610 IFD2=1THENGOSUB3240:RETURN 2620 M=M+1:POKELL,VAL(LEFT$(M$(M),1)):POKERR,VAL(RIGHT$(M$(M),1)):SYSO2 2630 IFM>D2-1THENGOSUB3240:RETURN 2640 GOTO2620 2650 REM **REMOVE ONE OF MAX'S DOM** 2660 B2=B2-1:IFB2=0THENPRINT"";:FORA=1TO5 2670 IFB2=0THENPRINT""LEFT$(CL$,24):NEXT:RETURN 2680 I=1:FORA=1TO(B2+1):IFC$(A)=""THEN2700 2690 ZZ$(I)=C$(A):I=I+1 2700 NEXT 2710 FORA=1TO11:C$(A)="":NEXT:FORA=1TOB2:C$(A)=ZZ$(A):NEXT 2720 PRINT"";:FORA=1TO5:PRINT""LEFT$(CL$,24):NEXT:SYSC1:IFB2=1THENRETURN 2730 FORP=1TOB2-1:SYSC2:NEXT:GOSUB2850:RETURN 2740 REM **REMOVE ONE OF JOE'S DOM** 2750 G2=G2-1:IFG2=0THENPRINT"":FORA=1TO5 2760 IFG2=0THENPRINT""LEFT$(CL$,24):NEXT:RETURN 2770 I=1:FORA=1TO(G2+1):IFH$(A)=""THEN2790 2780 ZZ$(I)=H$(A):I=I+1 2790 NEXT 2800 FORA=1TO11:H$(A)="":NEXT:FORA=1TOG2:H$(A)=ZZ$(A):NEXT 2810 PRINT"":FORA=1TO5:PRINT""LEFT$(CL$,24):NEXT 2820 SYSQ1:IFG2=1THENRETURN 2830 FORP=1TOG2-1:SYSQ2:NEXT:GOSUB2850:RETURN 2840 REM **PRINT NOS FOR COMPUTER DOM** 2850 PRINT" " 2860 DN=B2:IFG2>B2THENDN=G2 2870 RW=5:GOSUB2380:PRINT"";:FORA=1TODN:A$=STR$(A) 2880 A$=RIGHT$(A$,(LEN(A$)-1)):PRINTA$" ";:NEXT:RETURN 2890 REM **ROUTINE IF YOU CANT PLAY** 2900 LC=V1:RC=V2:IFD2<11THEN2950 2910 XX$="OUT[146]":GOSUB3270:CP=1:CH=1 2920 IFOP=1ANDCP=1ANDCK=1THEN3980 2930 IFCP=1ANDCK=1ANDCJ=1THEN3980 2940 GOSUB3710:GOSUB3710:RETURN 2950 IFTD=28THEN2910 2960 A=INT(28*RND(0)+1):IFS$(A)=""THEN2960 2970 D2=D2+1:M$(D2)=S$(A):S$(A)="":TD=TD+1:GOSUB3390 2980 POKELL,VAL(LEFT$(M$(D2),1)):POKERR,VAL(RIGHT$(M$(D2),1)):PRINT"[152]":SYSO2 2990 GOSUB3710:GOSUB3240:RETURN 3000 REM **ROUTINE IF MAX CANT PLAY** 3010 IFB2<11THEN3110 3020 XX$="OUT[146]":GOSUB3290:CK=1:CH=1 3030 IFOP=1ANDCP=1ANDCK=1THEN3980 3040 IFCK=1ANDCP=1ANDCJ=1THEN3980 3050 GOSUB3710:GOSUB3710:GOSUB2860:RETURN 3060 REM **ROUTINE IF JOE CANT PLAY** 3070 IFG2<11THEN3170 3080 XX$="OUT[146]":GOSUB3310:CJ=1:CH=1 3090 IFCK=1ANDCP=1ANDCJ=1THEN3980 3100 GOSUB3710:GOSUB3710:GOSUB2860:RETURN 3110 IFTD=28THEN3020 3120 A=INT(28*RND(0)+1):IFS$(A)=""THEN3120 3130 REM **ADD DOM TO MAX'S HAND** 3140 B2=B2+1:C$(B2)=S$(A):S$(A)="":TD=TD+1:GOSUB3390 3150 PRINT"[152]":SYSC2 3160 GOSUB3710:RETURN 3170 IFTD=28THEN3080 3180 A=INT(28*RND(0)+1):IFS$(A)=""THEN3180 3190 REM **ADD DOM TO JOE'S HAND** 3200 G2=G2+1:H$(G2)=S$(A):S$(A)="":TD=TD+1:GOSUB3390 3210 PRINT"[152]":SYSQ2 3220 GOSUB3710:RETURN 3230 REM **NOS FOR YOUR DOMINOES** 3240 RW=24:GOSUB2380:PRINTTAB(1)"1 ";:IFD2=1THENRETURN 3250 FORI=2TOD2:PRINTI;:NEXT:RETURN 3260 REM ** PRINT YOUR DOM VALUE IN COLUMN** 3270 RW=MR:MR=MR+1:GOSUB2380:PRINT"":PRINTTAB(36)XX$:RETURN 3280 REM **PRINT MAX'S DOM VALUE IN COLUMN** 3290 RW=CR:CR=CR+1:GOSUB2380:PRINT"[150]":PRINTTAB(30)XX$:RETURN 3300 REM **PRINT JOE'S DOM VALUE IN COLUMN** 3310 RW=GR:GR=GR+1:GOSUB2380:PRINT"[158]":PRINTTAB(33)XX$:RETURN 3320 REM **PRINT CENTRE DOMINOE** 3330 POKELL,V1:POKERR,V2:SYSCD:GOSUB3710:RETURN 3340 REM **PRINT CENTRE RIGHT DOMINOE** 3350 POKELL,V3:POKERR,V4:SYSCC:GOSUB3710:RETURN 3360 REM **PRINT CENTRE LEFT DOMINOE** 3370 POKELL,V3:POKERR,V4:SYSCL:GOSUB3710:RETURN 3380 REM **PRINT NO OF DOMINOES LEFT** 3390 I=28-TD:IFI<0THENI=0 3400 PRINT" ":I$=STR$(I) 3410 I$=RIGHT$(I$,(LEN(I$)-1)) 3420 IFLEN(I$)=1THENI$="0"+I$ 3430 PRINT"[156]"I$:RETURN 3440 REM **KEEP CHECK ON DOMINOES PLAYED** 3450 R=VAL(RIGHT$(XX$,1)):L=VAL(LEFT$(XX$,1)) 3460 IFR=0THENP(0)=P(0)+1 3470 IFR=1THENP(1)=P(1)+1 3480 IFR=2THENP(2)=P(2)+1 3490 IFR=3THENP(3)=P(3)+1 3500 IFR=4THENP(4)=P(4)+1 3510 IFR=5THENP(5)=P(5)+1 3520 IFR=6THENP(6)=P(6)+1 3530 IFL=0THENP(0)=P(0)+1 3540 IFL=1THENP(1)=P(1)+1 3550 IFL=2THENP(2)=P(2)+1 3560 IFL=3THENP(3)=P(3)+1 3570 IFL=4THENP(4)=P(4)+1 3580 IFL=5THENP(5)=P(5)+1 3590 IFL=6THENP(6)=P(6)+1 3600 RETURN 3610 REM **CHECK IF YOU CAN PLAY** 3620 IFLE<>1THENRETURN 3630 FORA=1TOD2:L=VAL(LEFT$(M$(A),1)):R=VAL(RIGHT$(M$(A),1)) 3640 IFL=V1ORR=V1THEN3680 3650 IFL=V2ORR=V2THEN3680 3660 NEXT 3670 RETURN 3680 FORI=1TO3:GOSUB2420:RW=12:GOSUB2380:PRINT"YOU CAN":PRINT" PLAY[158]" 3690 GOSUB3760:NEXT:FORA=1TO1000:NEXT:GOTO1030 3700 REM **SOUND ROUTINES** 3710 FORX=SSTOSS+24:POKEX,0:NEXT:POKEVO,15:POKEAD,5:POKESR,5:POKEWF,17 3720 FORTZ=1TO4:POKEWF,130:POKEHF,33:POKELF,33:POKEHF,0:POKELF,O:NEXT:RETURN 3730 FORA=1TO3:POKEVO,15 3740 POKEWF,0:POKELF,0:POKEHF,0:POKEAD,0:POKESR,240:POKEWF,17 3750 POKEHF,150:POKEWF,0:POKE53280,0:NEXT:RETURN 3760 POKEVO,15:POKEWF,0:POKELF,0:POKEHF,0:POKEAD,0:POKESR,240:POKEWF,17 3770 FORZ=60TO0STEP-1:POKEHF,Z:NEXT:RETURN 3780 REM **YOU HAVE WON** 3790 RW=18:GOSUB2380:PRINTEE$TAB(15)"WELL DONE":PRINTTAB(16)"YOU WIN" 3800 RW=24:GOSUB2380:PRINT" " 3810 W=0:F=17:T=1:GOTO3890 3820 REM **MAX OR JOE WINS** 3830 IFB2=0THENRW=3:GOSUB2380:PRINTEE$TAB(15)"HARD LUCK" 3840 IFB2=0THENPRINTTAB(16)"MAX WINS" 3850 IFOP=2ANDG2=0THENRW=8:GOSUB2380:PRINTEE$TAB(15)"HARD LUCK" 3860 IFOP=2ANDG2=0THENPRINTTAB(16)"JOE WINS" 3870 W=17:F=0:T=-1:GOTO3890 3880 REM **END OF GAME SOUND** 3890 POKEVO,15:POKEWF,0:POKESS,0:POKEHF,0:POKEAD,0:POKESR,240:POKEWF,33 3900 FORZ=WTOFSTEPT:POKE53280,Z:FORA1=1TO15:POKEHF,A*A1:NEXT:NEXT 3910 POKEWF,0:POKE53280,0:RW=23:GOSUB2380 3920 PRINTTAB(5)"[158] DO YOU WANT ANOTHER GAME: [146] Y":PRINTTAB(31)"[145]";:INPUTA$ 3930 IFLEFT$(A$,1)="Y"THENPOKE251,DO:POKE252,LE:POKE253,OP 3940 IFLEFT$(A$,1)="Y"THENCLR:GOSUB4430:GOSUB4520:GOTO220 3950 IFLEFT$(A$,1)="N"THENSTOP 3960 PRINT"[145][145]":GOTO3920 3970 REM **STITCHED GAME** 3980 C1=0:C2=0:V1=0:V2=0:J1=0:J2=0 3990 PRINT"[147]";:FORA=0TO8:PRINTTAB(2)DO$(A):NEXT 4000 PRINTTAB(14)"STITCHED GAME" 4010 IFOP=1THENRW=15:GOSUB2380:PRINT"MAX"SPC(31)"YOU":GOTO4030 4020 RW=15:GOSUB2380:PRINT"MAX"SPC(14)"JOE"SPC(14)"YOU" 4030 TT=B2:IFD2>TTTHENTT=D2 4040 IFG2>TTTHENTT=G2 4050 FORA=1TOTT:C1=C1+VAL(LEFT$(C$(A),1)):C2=C2+VAL(RIGHT$(C$(A),1)) 4060 IFC$(A)=""THENC$(A)=" " 4070 PRINT"[158]"C$(A)SPC(14); 4080 IFOP=2THENJ1=J1+VAL(LEFT$(H$(A),1)):J2=J2+VAL(RIGHT$(H$(A),1)) 4090 IFOP=2ANDH$(A)=""THENH$(A)=" " 4100 IFOP=2THENPRINTH$(A);SPC(14); 4110 IFOP=1THENPRINTSPC(17); 4120 V1=V1+VAL(LEFT$(M$(A),1)):V2=V2+VAL(RIGHT$(M$(A),1)) 4130 IFM$(A)=""THENM$(A)=" " 4140 PRINTM$(A):NEXT:GOTO4210 4150 FORA=1TOTT:C1=C1+VAL(LEFT$(C$(A),1)):C2=C2+VAL(RIGHT$(C$(A),1)) 4160 IFC$(A)=""THENC$(A)=" " 4170 PRINT"[158]"C$(A)SPC(31); 4180 V1=V1+VAL(LEFT$(M$(A),1)):V2=V2+VAL(RIGHT$(M$(A),1)) 4190 IFM$(A)=""THENM$(A)=" " 4200 PRINTM$(A):NEXT 4210 IFOP=2THENRW=11:GOSUB2380:PRINT"MAX'S"SPC(11)"JOE'S"SPC(13)"YOUR" 4220 IFOP=1THENRW=11:GOSUB2380:PRINT"MAX'S"SPC(29)"YOUR" 4230 IFOP=2THENPRINT"POINTS"SPC(10)"POINTS"SPC(11)"POINTS" 4240 IFOP=1THENPRINT"POINTS"SPC(27)"POINTS" 4250 S1=C1+C2:S2=J1+J2:S3=V1+V2 4260 IFOP=2THENPRINT""S1;SPC(16-LEN(STR$(S1)));S2;SPC(16-LEN(STR$(S2)))S3 4270 IFOP=1THENPRINT" "S1;SPC(32-LEN(STR$(S1)));S3:S2=1000 4280 FORT=1TO10 4290 IFS1CHR$(13)THEN4880 4900 PRINT"[147][159]THE COMPUTER WILL AUTOMATICALLY MAKE 4910 [153]"MOVES FOR MAX AND JOE. 4920 PRINT"IF YOUR MOVE CAN ALTER THE STATE OF THE 4930 [153]"GAME. I.E. YOUR SELECTED DOMINO CAN 4940 PRINT"BE PLAYED EITHER WAY YOU WILL BE ASKED 4950 [153]"WHICH SIDE UP. THE NUMBER YOU SELECT 4960 PRINT"WILL THEN BE THE VALUE AT BOTH ENDS. 4970 [153]"IF THE GAME IS 'STITCHED' (NO PLAYER 4980 PRINT"WINS) THE WINNER IS DECIDED BY THE 4990 [153]"LOWEST SPOT TOTAL OF THE DOMINOES ON 5000 PRINT"THE TABLE AT THE END OF THE GAME. 5010 [153]"SYS  PRESS RETURN FOR FIRST GAME WAIT 5020 GETA$:IFA$=""THEN5020 5030 IFA$<>CHR$(13)THEN5020 5040 GOTO220 5050 REM **REDIFINE CHARACTERS** 5060 I=49152 5070 READ A:IF A=256 THEN5100 5080 POKE I,A:I=I+1:GOTO5070 5090 DATA 0,3,7,7,7,7,3,256 5100 I=49376 5110 READ A:IF A=256 THEN5140 5120 POKE I,A:I=I+1:GOTO5110 5130 DATA 0,192,224,224,224,224,192,256 5140 I=49393 5150 READ A:IF A=256 THEN RETURN 5160 POKE I,A:I=I+1:GOTO5150 5170 DATA 0,0,0,0,60,126,126,126 5180 DATA 126,60,0,0,0,0,256