100 CT=37888+4*(PEEK(36866)AND128):POKE36879,8:A=RND(0) 110 L$=" " 120 PRINT"[147][159]BACKGAMMON" 130 INPUT"WILL I GO FIRST Y[157][157][157]";MF$ 140 DIMB(25):DIMR(3):DEFFNR(X)=INT(RND(X)*6)+1 150 DEFFNP(X)=CT-((X-(X>6))*22+Y)*(X<13)-((26-(X+(X<19)))*22-Y-1)*(X>12) 160 DATA2,0,0,0,0,-5,0,-3,0,0,0,5,-5,0,0,0,3,0,5,0,0,0,0,-2 170 FORX=1TO24:READB(X):NEXTX 180 PRINT"[147] BACKGAMMON "; 190 FORX=1TO12:PRINTCHR$(64+X);"[146][144][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209][209]";CHR$(89-X); 200 IFX=6THENPRINT" BAR [146][144][209][209][209][209][209][209][209][209][209][209][209][209] BAR "; 210 NEXTX:PRINT" [146][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175] "; 220 PRINT"[146][158]PLAYER [209] COMPUTER [209]" 230 FORX=1TO24:IFB(X)=0THEN270 240 Z=ABS(B(X)):IFZ>10THENZ=10 250 FORY=1TOZ 260 POKEFNP(X),6.5-SGN(B(X))/2:NEXTY 270 NEXTX:X=1:Z=CT+170 280 IFX<7ANDX<=B(0)THENPOKEZ,6:Z=Z-1:X=X+1:GOTO280 290 X=1:Z=CT+159 300 IFX<7ANDX<=-PBTHENPOKEZ,7:Z=Z+1:X=X+1:GOTO300 310 GOSUB1130:PRINT"[159]"; 320 IFLEFT$(MF$,1)="N"THENPRINT"PLAYER ";:GOTO340 330 PRINT"COMPUTER "; 340 PRINT"ROLL";:IF F$="DR"ORT$="DRAW"THEN360 350 R(0)=FNR(X):R(1)=FNR(X):R(2)=0:R(3)=0:IFR(0)=R(1)THENR(2)=R(1):R(3)=R(1) 360 FORX=0TO3:IFR(X)>0THENPRINT" ";CHR$(R(X)+48);"[146]"; 370 NEXTX:PRINT 380 IFLEFT$(MF$,1)="N"THEN830 390 PRINT"THINKING...[145]" 400 OB=0:FORZ=0TO18:IFB(Z)>0THEN420 410 NEXTZ:OB=1 420 H=0:HP=0:HR=0:FORY=0TO3:X=0:IFR(Y)=0THEN580 430 E=0 440 IFB(X)<1ORR(Y)+X>25THEN570 450 IFX=0ANDB(X)>0THENE=E+128 460 IFX+R(Y)=25THENE=E+64 470 IFB(X)=1ANDB(X+R(Y))=1THENE=E+32 480 IFB(X)<>2ANDB(X+R(Y))>0THENE=E+16 490 IFB(X+R(Y))=-1THENE=E+8 500 IFX<19THENE=E+4 510 IFB(X+R(Y))<-1OR(OB=0AND(X+R(Y))=25)THEN570 520 E=E+1:IFY=3ORX+R(Y)=25ORB(X+R(Y))>0THEN560 530 Z=Y+1 540 IFR(Z)>0ANDX+R(Y)-R(Z)>-1ANDX+R(Y)-R(Z)<25THENIFB(X+R(Y)-R(Z))>0THENE=E+2:GOTO560 550 Z=Z+1:IFZ<4THEN540 560 IFH0THEN680 600 IFH>0THEN700 610 LR=7:FORY=0TO3 620 IF R(Y)1THENLR=R(Y):LN=Y 630 NEXTY:IFLR=7THEN680 640 FORX=0TO25-LR:IFB(X)>0THEN680 650 NEXTX:X=26-LR 660 IFB(X)>0THENR(LN)=25-X:GOTO400 670 X=X+1:IFX<25THEN660 680 PRINT"CAN NOT MOVE[146]":MF$="N" 690 GETA$:ON-(A$="")GOTO690:GOTO310 700 FORX=0TO3:IFR(X)<>HRTHENNEXTX 710 R(X)=0 720 IFB(HP)<11ANDHP>0THENY=B(HP):POKEFNP(HP),0 730 B(HP)=B(HP)-1:Z$=CHR$(HP+HR+64):IFHP+HR>24THENZ$="OFF" 740 X$=CHR$(HP+64):IFHP=0THENX$="BAR" 750 PRINT"MOVE FROM ";X$;" TO ";Z$ 760 IFB(HP+HR)=-1THENPB=PB-1:B(HP+HR)=0:IFPB>-7THENPOKECT+158-PB,7 770 IFHP=0ANDB(0)<8THENPOKECT+170-B(0),0 780 Y=B(HP+HR)+1:B(HP+HR)=Y 790 IFHP+HR<25ANDY<11THENPOKEFNP(HP+HR),6:GOTO810 800 IFB(25)=15THENGOSUB1130:PRINT"I WIN.":GOTO1160 810 FORX=0TO3:IFR(X)>0THEN390 820 NEXTX:MF$="N":GOTO690 830 PRINT"MOVE FROM";:IFPB<0THENPRINT" BAR":HP=25:F$="Y":GOTO880 840 INPUTF$:F$=LEFT$(F$,2):IFF$="NO"THENMF$="":GOTO310 850 IFF$="DR"THEN180 860 IFF$<"A"ORF$>"X"THEN1120 870 HP=ASC(F$)-64:IFB(HP)>=0THEN1120 880 INPUT"[157][157][157][157][157][157][157][157]TO";T$:HP=ASC(F$)-64:HR=ASC(F$)-ASC(T$):IFT$="NO"THENMF$="":GOTO310 890 IFT$="DRAW"THEN180 900 X=0:IFT$="OFF"THENHR=HP 910 PRINTL$;"[145]"; 920 FORX=0TO3:IFHR<>R(X)THENNEXTX:ON-(HR<>HP)GOTO1120 930 OB=X:IFHR<>HPTHEN980 940 Z=HP+1:FOROB=0TO3:IFR(OB)=HPTHENZ=7:GOTO960 950 IFR(OB)1ANDHP<>HRTHEN1120 990 IFB(HP-HR)>0ANDHP<>HRTHENB(HP-HR)=0:B(0)=B(0)+1:IFB(0)<7THENPOKECT+171-B(0),6 1000 Y=-PB:M=7:Z=CT+158+Y:PB=PB+1 1010 IFHP<25THENPB=PB-1:Y=-B(HP):B(HP)=B(HP)+1:Z=FNP(HP):M=11 1020 IFY10THEN1100 1050 Y=-Y:Z=FNP(HP-HR) 1060 IFY<11THENPOKEZ,7 1070 GOTO 1100 1080 PO=PO+1 1090 IFPO=15THENGOSUB1130:PRINT"YOU WIN.":GOTO1160 1100 R(OB)=0:FORX=0TO3:IFR(X)>0THEN830 1110 NEXTX:MF$="":GOTO310 1120 PRINT"ILLEGAL MOVE[157][157][157][157][157][157][157][157][157][157][157][157][145]";:GOTO830 1130 POKE214,16:PRINT:POKE211,0 1140 FORX=1TO5:PRINTL$:NEXTX:PRINTL$; 1150 POKE214,16:PRINT:POKE211,0:RETURN 1160 INPUT"PLAY AGAIN (Y/N)";A$:IFLEFT$(A$,1)="Y"THENRUN