This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page,
please contact me immediatelly so I can remove it!
Entry name:
Backgammon
|
Publisher/Developer:
BELLCOM - Public Domain Library (Software library) |
|
|
-
Entry name:Backgammon
-
Category:Games
-
Publisher/Developer:BELLCOM - Public Domain Library
Listing 1
0 REM 1 REM DICE ROLLS ARE INDICATED AT THE LOWER LEFT OF SCREEN, JUST ABOVE TEXT WINDOW. e.g. 5 4. 2 REM COLOR OF DIGITS INDICATES RED OR BLUE PLAYER'S TURNS. RED MOVES FROM HIGHER TO 3 REM LOWER NUMBERS, BLUE MOVES FROM LOWER TO HIGHER NUMBERS. TO BRING ANY MARKER HOME, RED 4 REM MUST ENTER 'TO 0' AND BLUE 'TO 25'. RED MARKERS CANNOT LAND ON 5 REM BLUE MARKERS OR VICE VERSA. MOVE MARKERS THE NUMBER OF SPACES INDICATED BY THE 6 REM RESPECTIVE DICE VALUES. 10 DIM A(26),B(26),A$(1) 20 GRAPHICS 2:POSITION 5,3:? #6;"BaCkGaMmon":SETCOLOR 2,0,0 30 POKE 752,1:? " PROGRAM FOR INSTRUCTIONS":?:? " PRESS [] TO BEGIN"; 40 IF PEEK(53279)<>6 THEN 40 1000 GRAPHICS 7:POKE 752,1 1010 SETCOLOR 0,3,10:SETCOLOR 1,8,12:SETCOLOR 2,12,3 1060 COLOR 3:PLOT 20,70:DRAWTO 20,10:DRAWTO 159,10:DRAWTO 159,70:DRAWTO 20,70 1070 PLOT 21,69:DRAWTO 21,11:DRAWTO 158,11:DRAWTO 158,69:DRAWTO 21,69 1072 PLOT 0,40:DRAWTO 20,40:PLOT 0,39:DRAWTO 20,39 1074 PLOT 0,69:DRAWTO 20,69:DRAWTO 20,79:PLOT 0,70:DRAWTO 21,70:DRAWTO 21,79 1080 C=0:Z=10:GOSUB 4000 1090 C=1:Z=45:GOSUB 4000 1140 Z=0:X=37:COLOR 2:GOSUB 4120:X=43:GOSUB 4130 1141 X=59:GOSUB 4120:X=65:GOSUB 4110 1142 X=81:GOSUB 4110:X=87:GOSUB 4190 1143 X=103:GOSUB 4110:X=109:GOSUB 4170 1144 X=125:GOSUB 4110:X=131:GOSUB 4150 1145 X=147:GOSUB 4110:X=153:GOSUB 4130 1150 X=26:COLOR 1:GOSUB 4120:X=32:GOSUB 4140 1160 X=48:GOSUB 4120:X=54:GOSUB 4120 1170 X=70:GOSUB 4120:X=76:GOSUB 4100 1190 X=92:GOSUB 4110:X=98:GOSUB 4180 1210 X=114:GOSUB 4110:X=120:GOSUB 4160 1230 X=136:GOSUB 4110:X=142:GOSUB 4140 1270 Z=73:X=38:GOSUB 4120 1271 X=60:GOSUB 4140:X=82:GOSUB 4160:X=104:GOSUB 4180 1274 X=124:GOSUB 4110:X=130:GOSUB 4100 1275 X=147:GOSUB 4110:X=153:GOSUB 4120 1279 COLOR 2:X=27:GOSUB 4110:X=49:GOSUB 4130:X=71:GOSUB 4150:X=93:GOSUB 4170:X=115:GOSUB 4190 1360 X=135:GOSUB 4110:X=141:GOSUB 4110 1380 FOR M=0 TO 26:A(M)=0:B(M)=0:NEXT M 1390 B(1)=2:B(12)=5:B(17)=3:B(19)=5:A(24)=2:A(13)=5:A(8)=3:A(6)=5 1400 X=30:Z=13:COLOR 1:GOSUB 4200 1410 Z=17:GOSUB 4200 1420 X=151:FOR Z=13 TO 29 STEP 4 1425 GOSUB 4200:NEXT Z 1430 X=85:FOR Z=50 TO 66 STEP 4 1435 GOSUB 4200:NEXT Z 1440 X=107:FOR Z=58 TO 66 STEP 4 1445 GOSUB 4200:NEXT Z 1450 COLOR 2 1460 X=151:FOR Z=50 TO 66 STEP 4 1465 GOSUB 4200:NEXT Z 1470 X=85:FOR Z=13 TO 29 STEP 4 1475 GOSUB 4200:NEXT Z 1480 X=107:FOR Z=13 TO 21 STEP 4 1485 GOSUB 4200:NEXT Z 1490 X=30:FOR Z=62 TO 66 STEP 4 1495 GOSUB 4200:NEXT Z 1500 X=10:Z=20:GOSUB 4100 1505 Z=53:COLOR 1:GOSUB 4100 1510 TRAP 1510:? "Player 'RED' =1: Player 'BLUE' =2":? "Starting Player [] or [] ";:INPUT W:IF W=2 THEN 2500 1550 A0=0:B25=0 1600 ? "]":N1=0:G=4:S=1:GOSUB 5000 1605 GOSUB 2000 1610 IF C1=C2 THEN 1700 1615 G=2:E=0 1690 A0=A0+A(0):A(0)=0 1700 GOSUB 6000 1710 E=E1+E2:IF E>0 THEN 1750 1720 ? "I'm sorry but you can't move!":INPUT A$:GOTO 2500 1750 GOSUB 3000 1755 IF N1=1 THEN 2500 1760 GOSUB 3200 1770 IF B1=1 THEN 1750 1772 GOSUB 3400:GOSUB 10000 1775 G=G-1:IF G=0 THEN 2500 1780 GOTO 1690 2000 IF A(0)+A0=15 THEN 11000 2010 IF B25+B(25)=15 THEN 11100 2020 RETURN 2500 ? "]":N1=0:G=4:S=2:GOSUB 5000 2505 GOSUB 2000 2510 IF C1=C2 THEN 2600 2515 G=2:E=0 2590 B25=B(25)+B25:B(25)=0 2600 GOSUB 6100 2610 E=E1+E2:IF E>0 THEN 2650 2620 ? "I'm sorry but you can't move!":INPUT A$:GOTO 1600 2647 GOTO 1600 2650 GOSUB 3000 2655 IF N1=1 THEN 1600 2660 GOSUB 9200 2670 IF B1=1 THEN 2650 2672 GOSUB 9400:GOSUB 10000 2675 G=G-1:IF G=0 THEN 1600 2680 GOTO 2590 3000 IF S=2 THEN 9000 3001 IF AA>0 THEN 3090 3003 TRAP 3003:? "from ",:INPUT A1:IF A1=0 THEN 12000 3010 TRAP 3010:? "to ",:INPUT A2:F1=0:F2=0 3017 IF S=2 THEN F=A2-A1 3020 IF S=1 THEN F=A1-A2 3030 IF F=C1 THEN 3060 3040 IF F=C2 THEN 3080 3050 ? "Sorry, but you can't move this way":GOTO 3000 3060 F1=1:RETURN 3080 F2=1:RETURN 3090 A1=25:? "From Bank ";:GOTO 3010 3200 IF AA>0 THEN 3203 3201 IF A(A1)=0 THEN 3215 3203 IF A2=0 THEN 3270 3205 IF B(A2)=0 THEN 3230 3210 IF B(A2)=1 THEN 3220 3215 ? "Sorry, but you can't move this way":B1=1:RETURN 3220 B(A2)=0:BB=BB+1:X=10:Z=20:GOSUB 4300 3225 COLOR 2:ON BB GOSUB 4110,4120,4130,4140,4150,4160,4170,4180,4190 3230 IF A1=25 THEN 3245 3232 A(A1)=A(A1)-1:A(A2)=A(A2)+1 3240 B1=0:RETURN 3245 X=10:Z=53:COLOR S:GOSUB 4300 3247 AA=AA-1:A(A2)=A(A2)+1 3250 COLOR 1:ON AA+1 GOSUB 4100,4110,4120,4130,4140,4150,4160,4170,4180 3260 GOTO 3240 3270 IF L=0 THEN 3205 3275 GOTO 3215 3400 IF A(A1)>5 THEN 3450 3402 IF A1=25 THEN 3450 3405 A=A1:GOSUB 8000 3410 A=A(A1)+1:IF A1>12 THEN GOTO 3480 3415 A=A(A1)+1:IF A1<13 THEN GOSUB 8300 3420 COLOR 0:GOSUB 4200 3450 IF A(A2)>6 THEN 3475 3452 IF A2=0 THEN RETURN 3455 A=A2:GOSUB 8000 3460 A=A(A2):IF A2>12 THEN GOTO 3490 3465 A=A(A2):IF A2<13 THEN GOSUB 8300 3470 COLOR 1:GOSUB 4200:RETURN 3480 GOSUB 8200:GOTO 3420 3490 GOSUB 8200:GOTO 3470 4000 FOR X=30 TO 151 STEP 11:C=C+1:IF C=3 THEN C=1 4010 COLOR C:PLOT X,Z:DRAWTO X,Z+25:PLOT X-1,Z:DRAWTO X-1,Z+25:NEXT X:RETURN 4100 PLOT X,Z:DRAWTO X+3,Z:DRAWTO X+3,Z+6:DRAWTO X,Z+6:DRAWTO X,Z:RETURN 4110 PLOT X+2,Z:DRAWTO X+2,Z+6:RETURN 4120 PLOT X,Z:DRAWTO X+3,Z:DRAWTO X+3,Z+3:DRAWTO X,Z+3:DRAWTO X,Z+6:DRAWTO X+3,Z+6:RETURN 4130 PLOT X,Z:DRAWTO X+3,Z:DRAWTO X+3,Z+6:DRAWTO X,Z+6:PLOT X,Z+3:DRAWTO X+3,Z+3:RETURN 4140 PLOT X+3,Z:DRAWTO X+3,Z+6:PLOT X,Z:DRAWTO X,Z+3:DRAWTO X+3,Z+3:RETURN 4150 PLOT X+3,Z:DRAWTO X,Z:DRAWTO X,Z+3:DRAWTO X+3,Z+3:DRAWTO X+3,Z+6:DRAWTO X,Z+6:RETURN 4160 PLOT X+3,Z:DRAWTO X,Z:DRAWTO X,Z+6:DRAWTO X+3,Z+6:DRAWTO X+3,Z+3:DRAWTO X,Z+3:RETURN 4170 PLOT X,Z:DRAWTO X+2,Z:DRAWTO X+2,Z+6:RETURN 4180 PLOT X,Z:DRAWTO X+3,Z:DRAWTO X+3,Z+6:DRAWTO X,Z+6:DRAWTO X,Z:PLOT X+3,Z+3:DRAWTO X,Z+3:RETURN 4190 PLOT X,Z+6:DRAWTO X+3,Z+6:DRAWTO X+3,Z:DRAWTO X,Z:DRAWTO X,Z+3:DRAWTO X+3,Z+3:RETURN 4200 FOR M=Z TO Z+1:PLOT X-4,M:DRAWTO X-2,M:PLOT X+1,M:DRAWTO X+3,M:NEXT M:RETURN 4300 COLOR 0:FOR A=X TO X+4:PLOT A,Z:DRAWTO A,Z+6:NEXT A:RETURN 4310 COLOR 0:FOR Z=71 TO 79:PLOT 0,Z:DRAWTO 19,Z:NEXT Z:RETURN 4500 C=INT(RND(1)*6)+1:RETURN 5000 GOSUB 4310 5005 GOSUB 4500:C1=C 5010 GOSUB 4500:C2=C 5020 X=1:Z=71:COLOR S 5030 ON C1 GOSUB 4110,4120,4130,4140,4150,4160 5040 X=11:ON C2 GOSUB 4110,4120,4130,4140,4150,4160 5050 RETURN 6000 L=1:N=A0+A(1)+A(2)+A(3)+A(4)+A(5)+A(6):IF N=15 THEN L=0 6005 E1=0:E2=0:IF AA>0 THEN 6999 6010 FOR D=1 TO 24 6020 IF A(D)>0 THEN GOSUB 7000 6030 NEXT D:RETURN 6100 L=24:N=B25+B(24)+B(23)+B(22)+B(21)+B(20)+B(19):IF N=15 THEN L=25 6105 E1=0:E2=0:IF BB>0 THEN 7099 6110 FOR D=1 TO 24 6120 IF B(D)>0 THEN GOSUB 7100 6130 NEXT D:RETURN 6999 D=25 7000 D1=D-C1:IF (D1)<L THEN 7030 7010 IF B(D1)>1 THEN 7030 7020 E1=1 7030 D1=D-C2:IF (D1)<L THEN RETURN 7040 IF B(D1)>1 THEN RETURN 7050 E2=1:RETURN 7099 D=0 7100 D1=D+C1:IF (D1)>L THEN 7130 7105 IF D1>25 THEN 7130 7110 IF A(D1)>1 THEN 7130 7120 E1=1 7130 D1=D+C2:IF (D1)>L THEN RETURN 7135 IF D1>25 THEN RETURN 7140 IF A(D1)>1 THEN RETURN 7150 E2=1:RETURN 8000 IF A>20 THEN 8005 8001 ON A GOTO 8010,8020,8030,8040,8050,8060,8070,8080,8090,8100,8110,8120,8120,8110,8100,8090,8080,8070,8060,8050 8005 A=A-20:ON A GOTO 8040,8030,8020,8010 8010 X=30:RETURN 8020 X=41:RETURN 8030 X=52:RETURN 8040 X=63:RETURN 8050 X=74:RETURN 8060 X=85:RETURN 8070 X=96:RETURN 8080 X=107:RETURN 8090 X=118:RETURN 8100 X=129:RETURN 8110 X=140:RETURN 8120 X=151:RETURN 8200 ON A GOTO 8210,8220,8230,8240,8250,8260 8210 Z=13:RETURN 8220 Z=17:RETURN 8230 Z=21:RETURN 8240 Z=25:RETURN 8250 Z=29:RETURN 8260 Z=33:RETURN 8300 ON A GOTO 8310,8320,8330,8340,8350,8360 8310 Z=66:RETURN 8320 Z=62:RETURN 8330 Z=58:RETURN 8340 Z=54:RETURN 8350 Z=50:RETURN 8360 Z=46:RETURN 9000 IF BB<1 THEN 3003 9010 A1=0:? " From Bank ";:GOTO 3010 9200 IF BB>0 THEN 9203 9201 IF B(A1)=0 THEN 9215 9203 IF A2=25 THEN 9270 9205 IF A(A2)=0 THEN 9230 9210 IF A(A2)=1 THEN 9220 9215 ? "Sorry, you can't move this way":B1=1:RETURN 9220 A(A2)=0:AA=AA+1:X=10:Z=53:GOSUB 4300 9225 COLOR 1:ON AA GOSUB 4110,4120,4130,4140,4150,4160,4170,4180,4190 9230 IF A1=0 THEN 9245 9232 B(A1)=B(A1)-1:B(A2)=B(A2)+1 9240 B1=0:RETURN 9245 X=10:Z=20:COLOR S:GOSUB 4300 9247 BB=BB-1:B(A2)=B(A2)+1 9250 COLOR 2:ON BB+1 GOSUB 4100,4110,4120,4130,4140,4150,4160,4170,4180 9260 GOTO 9240 9270 IF L=25 THEN 9205 9275 GOTO 9215 9400 IF B(A1)>5 THEN 9450 9402 IF A1=0 THEN 9450 9405 A=A1:GOSUB 8000 9410 A=B(A1)+1:IF A1>12 THEN GOTO 9480 9415 A=B(A1)+1:IF A1<13 THEN GOSUB 8300 9420 COLOR 0:GOSUB 4200 9450 IF B(A2)>6 THEN 9475 9452 IF A2=25 THEN RETURN 9455 A=A2:GOSUB 8000 9460 A=B(A2):IF A2>12 THEN GOTO 9490 9465 A=B(A2):IF A2<13 THEN GOSUB 8300 9470 COLOR 2:GOSUB 4200 9475 RETURN 9480 GOSUB 8200:GOTO 9420 9490 GOSUB 8200:GOTO 9470 10000 IF C1=C2 THEN RETURN 10010 IF F=C1 THEN C1=50 10020 IF F=C2 THEN C2=50 10030 RETURN 11000 ? "RED is the winner":END 11100 ? "BLUE is the winner":END 12000 IF N=15 THEN 12100 12010 ? "YOU HAVE TO MOVE!":GOTO 3003 12100 N1=1:RETURN
References
Listing downloads
Downloads
Copyright holder
