100 CT=55296:POKE 53280,0:POKE 53281,0 110 L$=" ":A=RND(0) 120 PRINT"[147][159]"TAB(14)"BACKGAMMON":PRINTTAB(14)"[163][163][163][163][163][163][163][163][163][163]" 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))*40+Y)*(X<13)-((26-(X+(X<19)))*40-Y-1)*(X>12) 160 DATA 2,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 ";:FORX=1TO12 190 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][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][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][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),86.5-SGN(B(X))/2:NEXTY 270 NEXTX:X=1:Z=CT+310 280 IFX<7ANDX<=B(0)THENPOKEZ,86:Z=Z-1:X=X+1:GOTO280 290 X=1:Z=CT+289 300 IFX<7ANDX<=-PBTHENPOKEZ,87:Z=Z+1:X=X+1:GOTO300 310 GOSUB1180:GOSUB1150: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 QA=0:IFR(Z)>0ANDX+R(Y)-R(Z)>-1ANDX+R(Y)-R(Z)<25THEN QA=1 545 IFQA=1THENIFB(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 - PRESS A KEY[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+288-PB,87 770 IFHP=0ANDB(0)<8THENPOKECT+310-B(0),0 780 Y=B(HP+HR)+1:B(HP+HR)=Y 790 IFHP+HR<25ANDY<11THENPOKEFNP(HP+HR),86:GOTO810 800 IFB(25)=15THENGOSUB1150:PRINT"I WIN.":GOTO 1190 810 FORX=0TO3:IFR(X)>0THEN390 820 NEXTX:PRINT""SPC(14)"PRESS A KEY":MF$="N":GOTO690 830 F$="@":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"THEN1140 870 HP=ASC(F$)-64:IFB(HP)>=0THEN1140 880 T$="@":INPUT"[157][157][157][157][157][157][157][157]TO";T$:HP=ASC(F$)-64:HR=ASC(F$)-ASC(T$) 890 IFT$="NO"THENMF$="":GOTO310 900 IFT$="DRAW"THEN180 910 X=0:IFT$="OFF"THENHR=HP 920 PRINTL$;"[145]"; 930 FORX=0TO3:IFHR<>R(X)THENNEXTX:ON-(HR<>HP)GOTO1140 940 OB=X:IFHR<>HPTHEN990 950 Z=HP+1:FOROB=0TO3:IFR(OB)=HPTHENZ=7:GOTO970 960 IFR(OB)1ANDHP<>HRTHEN1140 1000 QA=0:IFB(HP-HR)>0ANDHP<>HRTHENB(HP-HR)=0:B(0)=B(0)+1:QA=1 1010 IFQA=1ANDB(0)<7THENPOKECT+311-B(0),86 1020 Y=-PB:M=7:Z=CT+288+Y:PB=PB+1 1030 IFHP<25THENPB=PB-1:Y=-B(HP):B(HP)=B(HP)+1:Z=FNP(HP):M=11 1040 IFY10THEN1120 1070 Y=-Y:Z=FNP(HP-HR) 1080 IFY<11THENPOKEZ,87 1090 GOTO 1120 1100 PO=PO+1 1110 IFPO=15THENGOSUB1150:PRINT"YOU WIN.":GOTO 1190 1120 R(OB)=0:FORX=0TO3:IFR(X)>0THEN830 1130 NEXTX:MF$="":GOTO310 1140 PRINT"ILLEGAL MOVE[157][157][157][157][157][157][157][157][157][157][157][157][145]";L$;"[145]":GOTO830 1150 POKE214,16:PRINT 1160 FORX=1TO5:PRINTL$:NEXTX:PRINTL$; 1170 POKE214,16:PRINT:RETURN 1180 PRINT""SPC(14)" ":RETURN 1190 INPUT"PLAY AGAIN (Y/N)";A$:IFLEFT$(A$,1)="Y"THENRUN