Random game
Random game
Random demo
Entry name:
 Backgammon 
Publisher/Developer:

BELLCOM - Public Domain Library
(Software library)
  • Category:

    Games
  • Maximum players:

    2
  • Programming language:

    Atari BASIC
Backgammon Backgammon Backgammon
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	

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!