One program that has the following games and programs:
- Shift It
- Zebra
- Jumble
- Pegboard
- Mancala
- Keyboard memory
- Genius
- Nine Men Morris
- Trick
- L Game
- Rainbow
- Fallout
- Abba
- Color Squares
- Vowels or Consonants
- Dice Game
Content
Source Code
5 CLS : PRINT AT 0,3;"Choose by initial";AT 3,0;" Shift it";AT 5,0;" Zebra";AT 7,0;" 31";AT 9,0;" Jumble";AT 11,0;" Pegboard";AT 13,0;" Mancala";AT 15,0;" Keyboard";AT 16,6;"memory";AT 18,0;" Genius";AT 20,7;"Nine Men Morris";AT 3,16;"Trick";AT 5,16;"L game";AT 7,16;"Rainbow";AT 9,16;"Fallout";AT 11,16;"Abba";AT 13,16;"Color squares";AT 15,16;"Vowels or";AT 16,21;"consonants";AT 18,16;"Dice game"
7 PAUSE 0: GO TO 8280*(INKEY$="n")+8000*(INKEY$="d")+7500*(INKEY$="g")+10*(INKEY$="s")+200*(INKEY$="z")+350*(INKEY$="3")+500*(INKEY$="j")+800*(INKEY$="p")+1400*(INKEY$="m")+2400*(INKEY$="k")+3000*(INKEY$="t")+3170*(INKEY$="r")+3600*(INKEY$="c")+4000*(INKEY$="l")+5400*(INKEY$="f")+5765*(INKEY$="a")+6000*(INKEY$="v")
10 CLS : PRINT AT 6,0;" Two players place their 2 chipson the board, then shift them... If they can!"'''" Press the bar": PAUSE 0: CLS
40 DIM a(5): DIM z$(32): DIM l(5): DIM c(5)
50 DATA 1,5,1,23,10,14,19,5,19,23
60 FOR x=1 TO 5
70 READ l(x),c(x)
80 NEXT x
90 PRINT AT 1,11;"SHIFT IT"
100 PLOT 44,20: DRAW 144,0: DRAW 0,144: DRAW -144,-144: DRAW 0,144: DRAW 144,-144
110 FOR n=1 TO 5: PRINT AT l(n)-1,c(n)-1;"▛▄▖";AT l(n),c(n)-1;"▌";n;"▌";AT l(n)+1,c(n)-1;"▙▄▟": NEXT n
120 FOR n=1 TO 4: BEEP .5,5: PRINT AT 21,8;"Your turn ";("Red" AND (n=1 OR n=3))+("Blue" AND (n=2 OR n=4)): BEEP .5,8: PAUSE 0: LET x=VAL INKEY$: LET a(x)=1
130 PRINT INK 2*(n=1 OR n=3)+3*(n=2 OR n=4); OVER 1;AT l(x),c(x);"█"; OVER 0;AT 21,0;z$: NEXT n
135 PRINT AT 21,3;"You'll "; FLASH 1;"move"; FLASH 0;" from now on": PAUSE 200: PRINT AT 21,0;z$
137 FOR n=1 TO 2
140 BEEP .5,5: PRINT AT 21,8;"Your turn ";("Red " AND n=1)+("Blue " AND n=2);: BEEP .5,8:
145 PAUSE 0: LET f=VAL INKEY$: IF f>5 THEN GO TO 140
147 IF f=0 THEN PRINT AT 21,0;z$;AT 15,0;"End of game. Another one? (y/n)": PAUSE 0: RUN
150 FOR m=1 TO 5: IF a(m)=0 THEN GO TO 170
160 NEXT m
170 LET a(m)=(n=1)+2*(n=2): LET a(f)=0: PRINT AT 21,0;z$; PAPER 7; INK 0;AT l(f),c(f);f; INK 2*(n=1)+1*(n=2); OVER 1;AT l(m),c(m);"█"
180 NEXT n: GO TO 137
200 CLS : PRINT AT 3,0;" The players place a marker (Xor O) indicating the place by letter and number and the choiceof X or O. E.g. ""a1x""."''" Two markers of the SAME kind must NOT be next to each other. The player last able to place a marker wins."''" Press the bar"
205 DIM z$(25)
210 PAUSE 0: CLS
250 PRINT AT 2,15;"ZEBRA";AT 5,14;"a b c d "''
260 FOR n=1 TO 4: PRINT TAB 12;n;" . . . .";'': NEXT n
265 FOR n=1 TO 2
270 BEEP .5,INT (RND*10): PRINT AT 18,7;("First" AND n=1)+("Second" AND n=2);" players turn ";AT 19,7;"(letter-number-x/o)": BEEP .5,INT (RND*10): INPUT a$
273 IF a$(3)<>"x" AND a$(3)<>"o" THEN GO TO 270
275 LET l=2*VAL a$(2)+5: LET c=2*CODE a$-180: IF SCREEN$ (l,c)<>"." THEN GO TO 270
280 PRINT AT l,c;a$(3)
290 LET v$=SCREEN$ (l,c): IF v$=SCREEN$ (l-2,c) OR v$=SCREEN$ (l,c-2) OR v$=SCREEN$ (l,c+2) OR v$=SCREEN$ (l+2,c) THEN PRINT AT 18,5;"Sorry, you lost the game";AT 19,7;z$: FOR n=0 TO -20 STEP -.5: BEEP .02,n: NEXT n: PAUSE 0: GO TO 200
295 NEXT n: GO TO 265
350 CLS : PRINT AT 4,0;"The screen will show 24 numbers.You and the computer will take those numbers until the sum is exactly 31."''" Press the bar": PAUSE 0: CLS
400 CLS : LET sum=0: DIM z$(32): DIM a$(6,12)
410 FOR n=1 TO 6: FOR m=3 TO 12 STEP 3: LET a$(n,m)=CHR$ (n+48): PRINT AT 2*n+3,m+8;a$(n,m): NEXT m: NEXT n:
415 BEEP .5,INT (RND*10): PRINT AT 20,3;"Your turn": BEEP .5,INT (RND*10): PAUSE 0: LET p=VAL INKEY$: IF CODE a$(p,3)=32 THEN GO TO 415
420: PRINT AT 20,0;z$: LET a$(p)=a$(p)(4 TO ): PRINT AT 2*p+3,9;a$(p): LET sum=sum+p: PRINT AT 17,11;"SUM=";sum
430 IF sum=p THEN LET c=(3-p)*(p<3)+3*(p=3)+(10-p)*(p>3): GO TO 460
440 IF sum-p=3 OR sum-p=10 OR sum-p=17 OR sum-p=24 THEN LET c=7-p: GO TO 460
445 IF p=4 AND sum=10 THEN LET c=4: GO TO 460
447 IF p=3 AND sum=17 THEN LET c=3: GO TO 460
448 IF p=4 AND sum=24 THEN LET c=4: GO TO 460
449 IF sum>24 THEN LET c=31-sum: GO TO 460
450 LET c=1
460 PRINT AT 20,3;"I take ";c: PAUSE 100: LET a$(c)=a$(c)(4 TO ): PRINT AT 2*c+3,9;a$(c): LET sum=sum+c: PRINT AT 17,15;sum: IF sum=31 THEN PRINT FLASH 1;AT 20,18;"and I win": PAUSE 0: FLASH 0: GO TO 400
470 PAUSE 10: GO TO 415
510 CLS : DIM z$(32): DIM w$(96,7): DIM b$(96,7)
550 DATA "ally","bail","chit","dime","rile","torn","clip","pour","frog","half","mast","rent","gush","hail","over","rend","agog","back","chat","dial","airy","babe","chef","diet"
560 DATA "digit","flirt","grain","house","forth","surly","slots","argue","wheel","trust","stuff","scrub","wharf","truly","study","screw","chasm","flirt","genus","thigh","chest","fight","germs","hedge"
570 DATA "fidget","hourly","lining","nozzle","slowly","firmly","growth","menace","script","reborn","public","mutter","realty","pucker","mutiny","screen","hectic","jigger","ligate","mother","height","jester","limpet","notice"
580 DATA "movable","opinion","partner","recover","intrude","haughty","giraffe","enchant","figures","trumpet","smarten","bastion","instant","hatrack","ghostly","develop","lighten","noxious","paprika","rebound","mouthed","oilskin","parable","realize"
600 RESTORE 550: FOR n=1 TO 96: READ w$(n): NEXT n
650 BEEP .5,INT (RND*10): LET a=INT (RND*4+4): LET p=INT (RND*24+24*a-95)
660 LET w$(p)=w$(p, TO a): LET b$(p)=w$(p, TO a)
700 FOR n=a TO 1 STEP -1: LET r=INT (RND*(n-1)+1): LET x$=w$(p,n): LET w$(p,n)=w$(p,r): LET w$(p,r)=x$: NEXT n
710 PRINT INK (a-3);AT 12,0;z$;AT 10,16-a/2;w$(p)
720 INPUT v$: IF v$=b$(p, TO a) THEN PRINT AT 12,12;"Correct": GO TO 650
730 INPUT "Incorrect. Try again ";v$: IF v$=b$(p) THEN PRINT AT 12,14;"Correct": GO TO 650
740 PRINT AT 20,0;"Sorry, the word was """;b$(p);"""": PAUSE 100: PRINT AT 20,0;z$: GO TO 650
800 RESTORE 1270: GO SUB 1170
810 GO SUB 1030
820 BEEP .5,RND*5: BEEP .5,RND*5: PRINT AT 21,0;"Which marble to move ? ";
830 PAUSE 0: LET a$=INKEY$
840 PAUSE 0: LET t$=INKEY$: LET a=10*VAL a$+VAL t$: PRINT a;" to ";
850 PAUSE 0: LET a$=INKEY$: PAUSE 0: LET b$=INKEY$: LET b=10*VAL a$+VAL b$: PRINT b
860 PAUSE 50: PRINT AT 21,0;" "
870 IF a=99 THEN GO TO 1020
880 IF a<11 OR a>77 THEN GO TO 820
890 IF a(a)<>79 THEN GO TO 820
900 IF b<11 OR b>77 THEN GO TO 850
910 IF a(b)<>e THEN GO TO 820
920 LET a((a+b)/2)=e: LET a(a)=e: LET a(b)=79
930 LET m=m+1
940 LET c=0
950 FOR f=11 TO 75
960 IF a(f)=79 THEN LET c=c+1
970 NEXT f
980 GO SUB 1030
990 PRINT AT 20,0;"There are ";c;" marbles left "
1000 IF c<>1 THEN GO TO 820
1010 IF a(44)=79 THEN PRINT "You did it, in just ";m;" moves!": STOP
1020 PRINT "You've failed. The game is over": STOP
1030 PRINT AT 0,0;
1040 PRINT TAB 4;"Enter 99 to concede"
1050 PRINT
1060 PRINT " 1 2 3 4 5 6 7"
1070 PRINT
1080 PRINT TAB 5;
1090 FOR d=11 TO 75
1100 LET t=10*(INT (d/10))
1110 IF d-t=8 THEN LET d=d+2: PRINT " ";t/10: PRINT : PRINT TAB 5;: GO TO 1130
1120 PRINT CHR$ (a(d));" ";
1130 NEXT d: PRINT " 7"
1140 PRINT : PRINT : PRINT
1150 PRINT AT 19,0;"Moves so far: ";m
1160 RETURN
1170 CLS
1180 DIM a(87)
1190 LET e=42
1200 FOR d=11 TO 75
1210 LET t=10*(INT (d/10))
1220 IF d-t=8 THEN LET d=d+3
1230 READ a(d)
1240 NEXT d
1250 LET m=0
1260 RETURN
1270 DATA 32,32,79,79,79,32,32
1280 DATA 32,32,79,79,79,32,32
1290 DATA 79,79,79,79,79,79,79
1300 DATA 79,79,79,42,79,79,79
1310 DATA 79,79,79,79,79,79,79
1320 DATA 32,32,79,79,79,32,32
1330 DATA 32,32,79,79,79
1410 CLS : PRINT AT 3,0;" There are 4 cups; A and B ofthe computer, C and D of the player with two seeds in each. Theplayers take all seeds in one oftheir cups and seed all othercups. The one who runs out ofseeds looses."''" Press the bar"
1415 PAUSE 0
1420 RESTORE 1570: LET z$=" ": DIM m(2,2): DIM l(4,2)
1430 GO TO 2100
1500 FOR i=1 TO 2
1510 LET m(1,i)=2: LET m(2,i)=2
1515
1520 FOR j=1 TO 4: READ x: LET l(j,i)=x: NEXT j: NEXT i
1560 LET turn=0: LET xturn=0: RETURN
1570 DATA 1,2,2,1,1,1,2,2
1600 CLS : PRINT AT 8,14;"2 2";AT 10,14;"2 2";AT 4,10;"MINI MANCALA";AT 7,12;"A B";AT 11,12;"C D";
1620 FOR i=0 TO 4 STEP 2: PLOT 108+8*i,115: DRAW 0,-32: PLOT 108,115-8*i: DRAW 32,0: NEXT i: RETURN
1700 BEEP 1,3: PRINT AT 19,7;"Now it's your turn"
1710 PRINT AT 20,0;"Move stones from cup C or D?"
1720 PAUSE 0: LET x$=INKEY$: PRINT AT 19,0;z$;z$
1730 IF x$="c" AND m(2,1)>0 THEN LET l=2: RETURN
1740 IF x$="d" AND m(2,2)>0 THEN LET l=3: RETURN
1750 BEEP 1,3: GO TO 1710
1800 BEEP 1,5: PRINT AT 20,7;"Now it's my turn "
1810 PAUSE 100
1820 LET q=m(1,1)*1000+m(1,2)*100+m(2,1)*10+m(2,2): LET l=4
1840 IF m(1,1)>0 AND (lev<3 AND RND*lev<.4) OR m(1,2)=0 OR q=1430 OR q=1340 OR q=6110 OR q=1160 THEN LET l=1
1850 PRINT AT 21,3;"I move stones from cup ";CHR$ (65+(l=4)): PAUSE 100: PRINT AT 21,0;z$: RETURN
1900 LET g=l(l,1): LET h=l(l,2)
1910 IF m(g,h)=0 THEN RETURN
1920 LET l=l+1: IF l>4 THEN LET l=l-4
1930 LET i=l(l,1): LET j=l(l,2)
1940 GO SUB 2000: GO TO 1910
2000 PAUSE 100: LET m(g,h)=m(g,h)-1: LET m(i,j)=m(i,j)+1
2020 PRINT AT 6+2*g,12+2*h;m(g,h);
2030 PRINT AT 6+2*i,12+2*j;m(i,j);
2040 RETURN
2100 GO SUB 1500: GO SUB 1600
2110 PRINT AT 21,0;"Level 1-3: "
2120 PAUSE 0: LET d$=INKEY$: IF CODE d$<49 OR CODE d$>51 THEN GO TO 2110:
2125 LET lev=VAL d$: PRINT AT 16,12;"level=";lev
2130 PRINT AT 21,0;"Do you wish to start? Y or N"
2150 PAUSE 0: PRINT AT 21,0;z$: LET a$=INKEY$: IF a$="n" THEN GO TO 2200
2160 IF a$<>"y" THEN GO TO 2130
2170 GO SUB 1700: GO SUB 1900
2175 IF m(2,1)+m(2,2)=0 THEN GO TO 2210
2180 LET turn=turn+1: IF m(1,1)+m(1,2)=0 THEN PRINT AT 20,6;"You win in ";turn+xturn;" turns";TAB 31;" ";TAB 31;" ";: GO TO 2230
2190 IF turn=40 THEN GO TO 2230
2200 PAUSE 100: GO SUB 1800: GO SUB 1900
2205 IF m(1,1)+m(1,2)=0 THEN GO TO 2180
2210 LET turn=turn+1: IF m(2,1)+m(2,2)=0 THEN PRINT AT 20,6;"I win in ";turn+xturn;" turns";TAB 31;" ";TAB 31;" ";: GO TO 2230
2220 IF turn=40 THEN GO SUB 2300
2225 GO TO 2170
2230 PRINT AT 21,0;"Do you want to play more:Y or N?"
2240 PAUSE 0: LET a$=INKEY$: IF a$="y" THEN RESTORE 1570: GO TO 1420
2250 IF a$="n" THEN STOP
2300 PRINT AT 20,0;"I think it's a draw. Do you want to continue? Y or N?"
2310 PAUSE 0: LET a$=INKEY$: IF a$="y" THEN LET xturn=xturn+turn: LET turn=0: RETURN
2320 IF a$="n" THEN RETURN
2330 GO TO 2300
2410 DIM t$(1,18): DIM w$(1,18): DIM q$(1,2): DIM n(2)
2420 LET r=INT (RND*9+1):
2430 CLS : RANDOMIZE
2435 LET tu=0: LET te=0
2440 LET a$="qwertyasdfghzxcvbn"
2460 LET b$="175462951734609032"
2465 LET p=r+4: LET b$=b$(p TO )+b$( TO p-1)
2470 FOR n=1 TO 18: LET t$(1,n)=a$(n): LET dis=n+r
2500 IF dis<19 THEN GO TO 2520
2510 LET dis=dis-18
2520 LET w$(1,n)=b$(dis): NEXT n
2535 LET n(1)=0: LET n(2)=0
2540 FOR k=1 TO 3: FOR j=1 TO 6: PRINT AT 4*k,4*j;t$(1,(k-1)*6+j): NEXT j: NEXT k
2590 FOR k=1 TO 2:
2600 LET k$=INKEY$: IF k$="" THEN GO TO 2600
2620 LET q$(1,k)=k$
2630 LET st=0: LET tu=tu+1
2650 FOR n=1 TO 18: LET kk=INT ((n-.5)/6+1): LET j=n-(kk-1)*6
2680 IF t$(1,n)<>q$(1,k) THEN GO TO 2710
2690 PRINT AT 4*kk,4*j;w$(1,n): LET n(k)=n
2710 NEXT n
2715 IF n(1)=n(2) THEN BEEP .5,12: GO TO 2600
2720 NEXT k
2730 IF w$(1,n(1))<>w$(1,n(2)) THEN GO TO 2535
2740 LET te=te+1: LET t$(1,n(1))=" ": LET t$(1,n(2))=" "
2770 IF te<9 THEN GO TO 2535
2780 CLS : PRINT AT 15,5;"number of turns=";tu
3030 CLS : LET p=0: LET s=0: PRINT AT 5,10;"a b c d e": PRINT AT 7,0;: FOR n=1 TO 5: PRINT TAB 7;n: PRINT : NEXT n
3035 PLOT 68,124: DRAW 118,0: DRAW 0,-80: DRAW -118,0: DRAW 0,80
3040 DIM z$(14): DIM a(6): DIM b(5): DIM c(6,6)
3050 FOR n=1 TO 5: LET a(n)=INT (RND*40+10): LET b(n)=INT (RND*40+10): LET s=s+a(n)+b(n): NEXT n
3060 FOR n=1 TO 5: FOR k=1 TO 5: LET c(n,k)=a(n)+b(k): PRINT AT 5+2*n,6+3*k;c(n,k);: NEXT k:: NEXT n
3070 PRINT AT 17,14;s
3072 FOR n=1 TO 4
3075 FOR k=1 TO 5: BEEP .5,INT (RND*10): NEXT k: INPUT "Pick a number by line and column ";a$: IF a$(1)>"5" OR a$(2)<"a" THEN GO TO 3075
3080 LET l=VAL a$(1): LET c=CODE a$(2)-96: LET p=p+c(l,c): PRINT AT 5+2*n,27;c(l,c)
3090 FOR m=1 TO 5: PRINT AT 5+2*m,6+3*c;" ": NEXT m: PRINT AT 5+2*l,9;z$; INK 2;AT 5+2*l,6+3*c;c(l,c)
3100 NEXT n: PRINT AT 15,27;s-p;AT 7,31;"+";AT 16,26;"___";AT 17,26;s
3110 BEEP .3,5: PRINT AT 17,18;"<": PAUSE 10: PRINT AT 17,18;" ": BEEP .3,10: PRINT AT 17,24;">": PAUSE 10: PRINT AT 17,24;" ": IF INKEY$<>"" THEN GO TO 0
3120 GO TO 3110
3170 BORDER 7: PAPER 7: INK 0: CLS
3180 PRINT AT 3,0;" Rainbow Square Dance"''"You will see a 5x5 color square.Move entire columns or lines to get 5 color stripes."''" Hit the bar": PAUSE 0: CLS
3190 BORDER 0: PAPER 0: INK 7: CLS
3200 DIM a(6,6)
3210 FOR x=1 TO 5
3220 FOR y=2 TO 6
3230 LET a(x,y)=y-1
3240 NEXT y
3250 NEXT x
3260 FOR i=1 TO 20
3270 LET k=1+INT (10*RND)
3280 GO SUB 3470
3290 NEXT i
3300 CLS
3310 FOR y=2 TO 6
3320 LET p=(y-2)*4-1
3330 PRINT AT (p+2),5;y-1
3340 FOR i=1 TO 4
3350 PRINT AT p+i,7; INK a(1,y);"████"; INK a(2,y);"████"; INK a(3,y);"████"; INK a(4,y);"████"; INK a(5,y);"████"
3360 NEXT i
3370 NEXT y
3380 PRINT AT 21,7;" 6 7 8 9 0"
3390 INPUT AT 0,0;"Column number (0 to 9): ";k;AT 1,0;"Number of steps (-4 to 4): ";s
3400 IF k=0 THEN LET k=10
3410 IF (k<1 OR k>10) OR (s<-4 OR s>4) THEN GO TO 3390
3420 IF s<0 THEN LET s=s+5
3430 FOR i=1 TO s
3440 GO SUB 3470
3450 NEXT i
3460 GO TO 3310
3470 IF k>5 THEN GO TO 3530
3480 FOR x=6 TO 2 STEP -1
3490 LET a(x,k+1)=a(x-1,k+1)
3500 NEXT x
3510 LET a(1,k+1)=a(6,k+1)
3520 RETURN
3530 FOR y=2 TO 6
3540 LET a(k-5,y-1)=a(k-5,y)
3550 NEXT y
3560 LET a(k-5,6)=a(k-5,1)
3570 RETURN
3600 BORDER 0: PAPER 0: INK 7: CLS
3610 PRINT AT 3,0;" You will see 9 squares. Afteryou choose one all those in thesame row and column change to a1 higher number (and color)."''"You choose the number of colors.You may start with a random oran all one color pattern. The highest number changes to 1 (co-lor to blue)."''" Press any key"
3620 PAUSE 0: BORDER 6: CLS
3630 DIM a(3,3)
3640 PRINT AT 2,0;" How many numbers? (2-5)": PAUSE 0: LET c=VAL INKEY$: PRINT AT 4,0;" Start with ""R""andom or ""C""lean slate?": PAUSE 0
3650 IF INKEY$="c" THEN FOR i=1 TO 3: FOR j=1 TO 3: LET a(i,j)=1: NEXT j: NEXT i: GO TO 3670
3660 FOR i=1 TO 3: FOR j=1 TO 3: LET a(i,j)=INT (RND*c+1): NEXT j: NEXT i
3670 CLS : PRINT ''''TAB 12;" A B C";''
3680 FOR i=1 TO 3: PRINT TAB 11;i;" ";: FOR j=1 TO 3: PRINT INK a(i,j);"█";CHR$ 8; OVER 1;a(i,j);" ";: NEXT j
3690 PRINT " ";i: PRINT : NEXT i
3700 PRINT AT 12,11;" A B C"
3710 PRINT AT 18,13;"Letter?": PAUSE 0: LET l$=INKEY$: LET l=CODE l$-96
3720 PRINT AT 18,13;"Number?": PAUSE 0: LET n=VAL INKEY$
3730 FOR i=1 TO 3: LET a(i,l)=a(i,l)+1: IF a(i,l)=c+1 THEN LET a(i,l)=1
3740 NEXT i
3750 FOR j=1 TO 3: LET a(n,j)=a(n,j)+1: IF a(n,j)=c+1 THEN LET a(n,j)=1
3760 NEXT j
3770 LET a(n,l)=a(n,l)-1: IF a(n,l)=0 THEN LET a(n,l)=c
3780 GO TO 3670
4000 CLS : PRINT AT 4,0;" You'll see a colorful boardwith two L-s and two black squa-res. The players move their L-sand the squares trying to leaveno place to move their opponentsL to."''"Press 1 to play the computer 2 to play another human"
4005 LET t=0
4010 PAUSE 0: LET d$=INKEY$: IF d$="1" THEN LET t=3
4015 IF d$="2" THEN LET f=0
4020 CLS : DIM n(4): DIM w(2): DIM a(4): DIM d(4): DIM c(4): DIM t(4): DIM o(4): DIM b(16): DIM n(16): DIM m(200)
4025 LET c$="████"
4030 LET f2=0
4035 GO TO 4045
4040 LET f2=1
4045 GO SUB 4055
4050 GO TO 4110
4055 RESTORE 4060
4060 DATA 1,16,2,7,6,6,11,7,10,15,10,3,14,11
4065 DATA 3,2,2,0,0,2,1,0,0,2,1,0,0,1,1,3
4070 READ b1,b2
4075 FOR x=1 TO 4
4080 READ c(x),o(x),t(x)
4085 NEXT x
4090 FOR x=1 TO 16
4095 READ b(x)
4100 NEXT x
4105 RETURN
4110
4115 GO SUB 5105
4120 IF d$="2" THEN GO TO 5255
4125 FOR n=1 TO 3: BEEP .5,RND*10: NEXT n
4130 FOR q=1 TO 4: PRINT AT 21,0;"Your move for L ";("Blue" AND t=1)+("Red" AND t=0);" ";: INPUT d(q): PRINT d(q);" ";
4135 NEXT q: PRINT AT 21,0;" "
4140 IF d(1)+d(2)+d(3)+d(4)=0 THEN GO TO 4670
4145 FOR x=1 TO 4
4150 FOR y=2 TO 4
4155 IF d(y)>d(y-1) THEN GO TO 4165
4160 LET z=d(y): LET d(y)=d(y-1): LET d(y-1)=z
4165 NEXT y
4170 NEXT x
4175 FOR x=1 TO 4
4180 LET n(x)=d(x)
4185 NEXT x
4190 LET n1=4
4195 LET f1=0
4200 GO SUB 4890
4205 IF m1<>4 THEN GO TO 4650
4210 FOR x=1 TO 4
4215 IF b(m(x))>1 THEN GO TO 4650
4220 NEXT x
4225 FOR x=1 TO 4
4230 LET b(o(x))=0
4235 NEXT x
4240 FOR x=1 TO 4
4245 LET b(m(x))=1
4250 LET o(x)=m(x)
4255 NEXT x
4260 GO SUB 5105
4265 LET b(b1)=0: LET b(b2)=0
4270 FOR v=1 TO 2: INPUT "Your move for the boxes "; w(v): NEXT v
4275 LET x=w(1): LET y=w(2)
4280 IF ABS x+ABS y<>x+y THEN GO TO 4650
4285 IF x=y THEN GO TO 4650
4290 IF b(x)+b(y)>0 THEN GO TO 4650
4295 LET b1=x: LET b2=y
4300 LET b(b1)=3: LET b(b2)=3
4305 GO SUB 5105
4310 FOR x=1 TO 4
4315 LET b(c(x))=0
4320 NEXT x
4325 IF d$="2" THEN GO TO 4120
4330 GO SUB 4715
4335 LET f1=1
4340 LET n1=z
4345 GO SUB 4890
4350 IF m1=0 THEN GO TO 4680
4355 GO SUB 4700
4360 FOR e=0 TO m1-4 STEP 4
4365 FOR f=1 TO 4
4370 FOR g=1 TO 4
4375 IF m(e+f)<>t(g) THEN GO TO 4385
4380 LET n(e/4+1)=n(e/4+1)+1
4385 NEXT g: NEXT f: NEXT e
4390 GO SUB 4750
4395 LET y=4*(z-1)
4400 FOR x=1 TO 4
4405 LET c(x)=m(x+y)
4410 LET b(c(x))=2
4415 NEXT x
4420 PRINT AT 20,0;"Comp moves to ";c(1);" ";c(2);" ";c(3);" ";c(4)
4425 PAUSE 70
4430 LET b(b1)=0: LET b(b2)=0
4435 FOR i=1 TO 4
4440 FOR j=1 TO 4
4445 IF o(i)=t(j) THEN GO TO 4460
4450 NEXT j: NEXT i
4455 GO TO 4530
4460 FOR x=1 TO 4
4465 IF b(t(x))>0 THEN GO TO 4485
4470 LET b1=t(x)
4475 LET b(b1)=3
4480 GO TO 4495
4485 NEXT x
4490 GO TO 4530
4495 FOR x=1 TO 4
4500 IF b(t(x))>0 THEN GO TO 4520
4505 LET b2=t(x)
4510 LET b(b2)=3
4515 GO TO 4560
4520 NEXT x
4525 GO TO 4545
4530 GO SUB 4800
4535 LET b1=b3
4540 LET b(b1)=3
4545 GO SUB 4800
4550 LET b2=b3
4555 LET b(b2)=3
4560 PRINT AT 20,5;"moves boxes to ";b1;" and ";b2;" "
4565 FOR x=1 TO 4
4570 LET b(o(x))=1
4575 NEXT x
4580 PAUSE 100: PRINT AT 20,0;" "
4585 GO SUB 5105
4590 FOR x=1 TO 4
4595 LET b(o(x))=0
4600 NEXT x
4605 GO SUB 4715
4610 LET f1=2
4615 LET n1=z
4620 GO SUB 4890
4625 IF m1=0 THEN GO TO 4670
4630 FOR x=1 TO 4
4635 LET b(o(x))=1
4640 NEXT x
4645 GO TO 4120
4650 PRINT AT 21,0;"Illegal move for L": PAUSE 70: PRINT AT 21,0;" "
4655 GO TO 4120
4660 PRINT AT 21,0;"Illegal move for box": PAUSE 70: PRINT AT 21,0;" "
4665 GO TO 4270
4670 PRINT AT 21,0;"Computer wins!"
4675 GO TO 4685
4680 PRINT "Congratulation! You have won"'"Play again?"
4685 INPUT a$: IF a$="y" THEN GO TO 4055
4690 STOP
4695 FOR x=1 TO 16
4700 LET n(x)=0
4705 NEXT x
4710 RETURN
4715 LET z=0
4720 FOR x=1 TO 16
4725 IF b(x)>0 THEN GO TO 4740
4730 LET z=z+1
4735 LET n(z)=x
4740 NEXT x
4745 RETURN
4750 LET y=0
4755 LET z=1
4760 FOR x=1 TO m1/4
4765 IF n(x)<y THEN GO TO 4790
4770 IF n(x)>y THEN GO TO 4780
4775 IF RND>.5 THEN GO TO 4790
4780 LET y=n(x)
4785 LET z=x
4790 NEXT x
4795 RETURN
4800 FOR x=1 TO 4
4805 LET b(o(x))=0
4810 NEXT x
4815 GO SUB 4715
4820 LET f1=2
4825 LET n1=z
4830 GO SUB 4890
4835 GO SUB 4700
4840 FOR x=1 TO m1
4845 LET n(m(x))=n(m(x))+1
4850 NEXT x
4855 FOR x=1 TO 4
4860 LET n(o(x))=0
4865 NEXT x
4870 LET m1=64
4875 GO SUB 4750
4880 LET b3=z
4885 RETURN
4890 LET m1=0
4895 LET j=4: LET k=1: GO SUB 4920
4900 LET j=1
4905 LET k=4
4910 GO SUB 4920
4915 RETURN
4920 LET p=0
4925 LET p=p+1
4930 LET a(1)=n(p)
4935 LET x=p
4940 LET x=x+1
4945 IF x>n1 THEN GO TO 5005
4950 IF n(x)-a(1)<>j THEN GO TO 4940
4955 LET a(2)=n(x)
4960 LET x=x+1
4965 IF x>n1 THEN GO TO 5065
4970 IF n(x)-a(2)<>j THEN GO TO 4960
4975 LET a(3)=n(x)
4980 FOR e=1 TO n1
4985 IF ABS (n(e)-a(1))=k THEN GO TO 5015
4990 IF ABS (n(e)-a(3))=k THEN GO TO 5015
4995 NEXT e
5000 GO TO 4925
5005 IF p<n1-2 THEN GO TO 1890
5010 RETURN
5015 LET a(4)=n(e)
5020 FOR f=1 TO 4
5025 IF a(f)/4<>INT (a(f)/4) THEN GO TO 5045
5030 FOR g=1 TO 4
5035 IF a(g)=a(f)+1 THEN GO TO 4995
5040 NEXT g: NEXT f
5045 FOR y=1 TO 4
5050 IF f1=1 THEN GO TO 5070
5055 IF a(y)<>o(y) THEN GO TO 5080
5060 NEXT y
5065 GO TO 2030
5070 IF a(y)<>c(y) THEN GO TO 2210
5075 GO TO 2170
5080 FOR y=1 TO 4
5085 LET m(m1+y)=a(y)
5090 NEXT y
5095 LET m1=m1+4
5100 GO TO 4995
5105 PRINT AT 4,8;: IF f2=1 THEN GO TO 5250
5110 FOR e=1 TO 13 STEP 4
5115 FOR f=1 TO 3
5120 FOR g=e TO e+3
5125 IF b(g)=0 THEN GO TO 5145
5130 IF b(g)=1 THEN GO TO 5190
5135 IF b(g)=2 THEN GO TO 5200
5140 IF b(g)=3 THEN GO TO 5200
5145 IF f=2 THEN GO TO 5160
5150 PRINT INK 6;c$;
5155 GO TO 5230
5160 PRINT INK 6;"█";
5165 IF g>9 THEN GO TO 5180
5170 PRINT INK 6;"█"; INK 0;CHR$ (48+g); INK 6;"█";
5175 GO TO 5230
5180 PRINT "1";CHR$ (38+g); INK 6;"█";
5185 GO TO 5230
5190 PRINT INK 1;c$;
5195 GO TO 5230
5200 PRINT INK 2;c$;
5205 GO TO 5230
5210 IF f=2 THEN GO TO 5225
5215 PRINT PAPER 0;c$;
5220 GO TO 5230
5225 PRINT INK 0;c$;
5230 NEXT g
5235 PRINT TAB 8;
5240 NEXT f
5245 NEXT e
5250 PRINT : RETURN
5255 LET t=NOT t
5260 FOR n=1 TO 3: BEEP .5,RND*10: NEXT n
5265 FOR q=1 TO 4: PRINT AT 21,0;"Your move for L, ";("Blue" AND t=1)+("Red" AND t=0);" ";: INPUT d(q)
5270 NEXT q: PRINT AT 21,0;" "
5275 FOR x=1 TO 4: FOR y=2 TO 4: IF d(y)>d(y-1) THEN GO TO 5285
5280 LET z=d(y): LET d(y)=d(y-1): LET d(y-1)=z
5285 NEXT y: NEXT x
5290 FOR x=1 TO 16: IF t=1 AND b(x)=1 THEN LET b(x)=0
5295 IF t=0 AND b(x)=2 THEN LET b(x)=0
5300 NEXT x
5305 FOR x=1 TO 4: LET b(d(x))=(1 AND t=1)+(2 AND t=0): NEXT x
5310 GO SUB 5105
5315 LET b(b1)=0: LET b(b2)=0
5320 FOR v=1 TO 2: INPUT "Your move for boxes ";w(v): NEXT v
5325 LET b1=w(1): LET b2=w(2)
5330 LET b(b1)=3: LET b(b2)=3
5335 GO SUB 5105
5340 GO TO 5255
5345 STOP
5400 CLS : DIM h(17,9): DIM z$(4): PRINT AT 2,0;"Just a minute,please"
5405 LET sc=0: LET br=0
5410 FOR x=1 TO 17
5415 FOR y=2 TO 9
5420 LET h(x,y)=1
5425 NEXT y
5430 NEXT x
5435 FOR y=2 TO 9
5440 FOR b=1 TO 4
5445 LET x=INT (RND*16+1)
5450 LET h(x,y)=0
5455 NEXT b: NEXT y
5460 FOR b=1 TO 8
5465 LET h(2*b,1)=b+100: NEXT b
5470 GO SUB 5625
5475 GO SUB 5545
5480 BEEP 1,8: INPUT "bar,left/right,turns: ";z$
5485 LET y=VAL z$(1)+1
5490 IF y<2 OR y>9 THEN GO TO 5480
5495 LET d$=z$(2)
5500 LET dx=VAL z$(3 TO )
5505 IF dx=0 THEN GO TO 5480
5510 IF d$<>"l" AND d$<>"r" THEN GO TO 5480
5515 IF d$="l" THEN GO SUB 5705
5520 IF d$="r" THEN GO SUB 5735
5525 GO SUB 5625
5530 IF dx>1 THEN LET dx=dx-1: GO TO 5515
5535 LET br=br+1: GO SUB 5545: IF sc=8 THEN FOR e=1 TO 6: BEEP 1,INT (RND*10): NEXT e: PRINT '" You got them all!": PAUSE 0: RUN
5540 GO TO 5480
5545 PRINT AT 0,0;
5550 FOR c=1 TO 9
5555 IF c=1 THEN PRINT " ";
5560 IF c>1 THEN PRINT c-1;" >";
5565 FOR x=1 TO 17
5570 LET z=h(x,c)
5575 GO SUB 5605
5580 NEXT x
5585 PRINT : PRINT
5590 NEXT c
5595 PRINT " score:";sc;", turns:";br
5600 PRINT : RETURN
5605 IF z=0 THEN PRINT " ";
5610 IF z=1 THEN PRINT PAPER 0;" ";
5615 IF z>100 THEN PRINT CHR$ (z-52);
5620 RETURN
5625 FOR c=9 TO 1 STEP -1
5630 FOR x=1 TO 17
5635 LET ty=c
5640 IF h(x,c)<100 THEN GO TO 5675
5645 IF ty>=9 THEN GO TO 5690
5650 IF h(x,ty+1)<>0 THEN GO TO 5675
5655 LET h(x,ty+1)=h(x,ty)
5660 LET h(x,ty)=0
5665 LET ty=ty+1
5670 GO TO 5645
5675 NEXT x
5680 NEXT c
5685 RETURN
5690 LET sc=sc+1
5695 LET h(x,ty)=0
5700 GO TO 5675
5705 LET tm=h(1,y)
5710 FOR x=1 TO 16
5715 LET h(x,y)=h(x+1,y)
5720 NEXT x
5725 LET h(17,y)=tm
5730 RETURN
5735 LET tm=h(17,y)
5740 FOR x=17 TO 2 STEP -1
5745 LET h(x,y)=h(x-1,y)
5750 NEXT x
5755 LET h(1,y)=tm
5760 RETURN
5765 CLS : PRINT AT 4,0;" You will see the letters a to o in a 4x4 board and the lettersA and B in another. If you pressany key letter, the A-s and B-sin the row and column selected will change."''"You are to get""ABBA""in each row."''" Press S to start."
5770 PAUSE 0: LET s$=INKEY$
5775 DIM b(4,4): IF s$="s" THEN GO TO 5855
5780 FOR r=1 TO 4: FOR c=1 TO 4: LET b(r,c)=INT (RND*2): NEXT c: NEXT r
5785 CLS : PRINT AT 5,5;"Keys";TAB 19;"Board": LET i=0
5790 FOR r=7 TO 13 STEP 2: FOR k=3 TO 9 STEP 2: LET i=i+1: PRINT AT r,k;CHR$ (i+96)
5795 PLOT k*8-4,60: DRAW 0,64
5800 PLOT 20,164-r*8: DRAW 64,0: NEXT k: NEXT r
5805 PLOT 20,124: DRAW 64,0: DRAW 0,-64
5810 FOR r=7 TO 13 STEP 2: FOR c=18 TO 24 STEP 2
5815 IF b((r-5)/2,(c-16)/2) THEN PRINT PAPER 1; INK 9;AT r,c;"B": GO TO 5825
5820 PRINT PAPER 2; INK 9;AT r,c;"A"
5825 PLOT 8*c-4,60: DRAW 0,64: PLOT 140,164-8*r: DRAW 64,0: NEXT c: NEXT r
5830 PLOT 140,124: DRAW 64,0: DRAW 0,-64
5835 PRINT AT 19,3;"Key ";: PAUSE 0: PRINT AT 19,3;" ": LET k=CODE INKEY$-96: IF k<1 OR k>16 THEN GO TO 5835
5840 LET r=INT ((k-1)/4)+1: LET c=k-(r-1)*4
5845 FOR i=1 TO 4: LET b(r,i)=NOT b(r,i): LET b(i,c)=NOT b(i,c)
5850 NEXT i: LET b(r,c)=NOT b(r,c): GO TO 5810
5855 FOR x=1 TO 4 STEP 3: FOR y=1 TO 4: LET b(x,y)=1: NEXT y: NEXT x: GO TO 5785
6020 CLS : PRINT AT 6,6;"Vowels and0Consonants": BEEP 1,4: PRINT AT 20,0;"Number of players? "
6025 PAUSE 0: LET g$=INKEY$: LET np=VAL g$
6030 DIM z$(32): DIM s(np): DIM d$(14): RANDOMIZE : LET v$="aeiouy": LET c$="bcdfghjklmnpqrstvwxyz"
6070 DEF FN t()=INT ((65536*PEEK 23674+256*PEEK 23673+PEEK 23672)/60)
6080 GO TO 7000
6110 PRINT AT 4,4;"Turn of player ";p;AT 6,4;"Vowel (v) or consonant (c)? "
6130 FOR i=2 TO 14 STEP 2:
6140 LET t$=INKEY$
6150 IF t$<>"c" AND t$<>"v" THEN GO TO 6140
6155 IF INKEY$<>"" THEN GO TO 6150
6160 IF INKEY$<>"" THEN GO TO 6150
6170 IF t$="c" THEN LET d$(i)=c$(INT (RND*21+1))
6180 IF t$="v" THEN LET d$(i)=v$(INT (RND*6+1))
6190 PRINT AT 9,i;d$(i): NEXT i: RETURN
6310 PRINT AT 0,5;"Time left: 45 seconds": LET ts=45+FN t(): LET l=0: LET a$=""
6350 LET t$=INKEY$: IF CODE t$<>32 OR NOT l THEN GO TO 6400
6370 PRINT AT 9,l;" ": LET l=l-1: LET a$=a$( TO l)
6400 IF t$<"a" OR t$>"z" THEN GO TO 6440
6410 LET l=l+1: PRINT AT 9,l;t$: LET a$=a$+t$
6440 LET ti=ts-FN t(): PRINT AT 0,16;ti;" ": IF ti>0 THEN GO TO 6350
6470 RETURN
6510 FOR j=1 TO l: FOR i=2 TO 14: IF a$(j)=d$(i) THEN GO TO 6560
6540 NEXT i: GO TO 6610
6560 LET d$(i)=" ": NEXT j: PRINT AT 11,0;"Player ";p;": ";l;" points"
6590 LET s(p)=s(p)+l: RETURN
7000 FOR p=1 TO np: CLS : GO SUB 6100: CLS
7050 PRINT AT 4,0;"Make a word out of these:";AT 6,5;d$: GO SUB 6300: GO SUB 6500
7080 PRINT AT 21,0;"Press the bar to continue"
7090 PAUSE 0: NEXT p: CLS
7120 FOR i=1 TO np: PRINT "Player ";i;": ";s(i);" points": NEXT i
7150 PRINT AT 21,0;"Another round (y or n)? "
7160 LET t$=INKEY$: IF t$="y" THEN GO TO 7000
7180 IF t$="n" THEN STOP
7190 GO TO 7160
7500 CLS : PRINT AT 3,0;" Genius is Mastermind with num-bers 1 to 9, all digits different."''"Press"'" 1 if you want to guess 2 if you want the computer to guess."
7505 PAUSE 0: IF INKEY$="1" THEN GO TO 7735
7510 GO SUB 7705
7515 IF guess<3 THEN FOR z=1 TO 3: LET b(z)=z+3*guess: NEXT z: GO TO 7525
7520 GO SUB 7605
7525 CLS
7530 LET guess=guess+1
7535 PRINT ''"Guess number ";guess
7540 PRINT ''"My guess is; ";b(1);" ";b(2);" ";b(3)
7545 INPUT "How many in correct place? ";b
7550 IF b=3 THEN GO TO 7730
7555 IF b=2 THEN GO TO 7565
7560 INPUT "How many others correct? ";w
7565 IF w+b=3 THEN LET q=3: LET c(1)=b(1): LET c(2)=b(2): LET c(3)=b(3)
7570 IF b+w=0 THEN LET c(b(1))=0: LET c(b(2))=0: LET c(b(3))=0: GO TO 7515
7575 IF b>aid THEN FOR z=1 TO 3: LET e(z)=b(z): NEXT z: LET aid=b
7580 FOR z=1 TO 9
7585 FOR d=1 TO 3
7590 IF b(d)=c(z) THEN LET c(z)=c(z)+(b+w)*100+w*10
7595 NEXT d: NEXT z
7600 GO TO 7515
7605 FOR z=1 TO 3
7610 LET d1=c(INT (RND*q+1)): IF d1=0 THEN GO TO 7610
7615 LET d2=c(INT (RND*q+1)): IF d2=0 THEN GO TO 7615
7620 IF INT (d1/10)>INT (d2/10) THEN LET b(z)=d1
7625 IF INT (d1/10)<INT (d2/10) THEN LET b(z)=d2
7630 IF INT (d1/10)=INT (d2/10) THEN LET b(z)=d1
7635 IF b(z)>100 THEN LET b(z)=b(z)-100*INT (b(z)/100): GO TO 7635
7640 IF b(z)>10 THEN LET b(z)=b(z)-10*INT (b(z)/10): GO TO 7640
7645 NEXT z
7650 IF b(1)=b(2) OR b(1)=b(3) OR b(2)=b(3) THEN GO TO 7605
7655 IF aid>0 THEN LET count=0: FOR z=1 TO 3: IF b(z)=e(z) THEN LET count=count+1
7660 IF aid>0 THEN NEXT z: IF count<aid THEN GO TO 7605
7665 LET m=100*b(1)+10*b(2)+b(3)
7670 LET k(guess)=m
7675 IF guess<3 THEN GO TO 7700
7680 LET count=1
7685 LET count=count+1
7690 IF k(count)=m THEN GO TO 7605
7695 IF count<guess-1 THEN GO TO 7685
7700 RETURN
7705 LET guess=0: LET q=9: LET aid=0
7710 RANDOMIZE INT (10*RND)
7715 DIM b(3): DIM c(9): DIM e(3): DIM k(100)
7720 FOR z=1 TO 9: LET c(z)=z: NEXT z
7725 RETURN
7730 PRINT ''"I guessed your code ";b(1);b(2);b(3);" in just ";guess;" guesses.": STOP
7735 CLS : DIM b$(4): DIM a(4): RANDOMIZE : FOR n=1 TO 4: LET a(n)=INT (9*RND+1): NEXT n
7740 IF a(1)=a(4) OR a(2)=a(4) OR a(3)=a(4) OR a(1)=a(2) OR a(1)=a(3) OR a(2)=a(3) THEN GO TO 7735
7745 LET c=0
7750 PRINT AT 18,5;"Your guess? (4 digits) "
7755 LET c=c+1: INPUT b$: LET d=0: LET b=0:
7760 IF VAL b$=1000*a(1)+100*a(2)+10*a(3)+a(4) THEN CLS : PRINT FLASH 1;AT 5,0;"You got it in ";c;" tries. It was ";AT 7,13;b$: PAUSE 0: FLASH 0: RUN
7765 FOR n=1 TO 4: IF a(n)=VAL b$(n) THEN LET b=b+1
7770 NEXT n
7775 FOR n=1 TO 4: FOR m=1 TO 4: IF a(m)=VAL b$(n) THEN LET d=d+1:
7780 NEXT m: NEXT n
7785 PRINT AT 18,0;"There ";("are " AND b<>1)+("is " AND b=1);b;" in correct place "''"There ";("are " AND d-b<>1)+("is " AND d-b=1);d-b;" other";("s" AND d-b<>1);" correct."
7790 PRINT AT c,0;b$;": Correct place;";b;" Correct;";d-b: PAUSE 200: PRINT AT 18,0;" "
7795 GO TO 7750
8000 CLS : PRINT AT 3,0;" There are 8 ways even and oddmay follow in 3 consecutive dicethrows.You and the computer willbet on these combinations."''" Hit the bar"
8005 DIM o$(24): LET o$="000000060126126126060000": FOR n=0 TO 7: POKE USR "o"+n,VAL o$(3*n+1 TO 3*n+3): NEXT n
8010 DATA "eee","eoe","eeo","eoo","ooo","oeo","ooe","oee"
8015 DIM a$(8,3): DIM p$(3): DIM s(20): LET p=0: LET c=0
8020 PAUSE 0: CLS : RESTORE 8010
8030 FOR n=1 TO 8: READ a$(n): PRINT AT 1,4*n-2;n;AT 2,4*n-3;a$(n): NEXT n
8040 BEEP .5,RND*10: PRINT AT 6,0;" Bet by number"
8050 PAUSE 0: LET b=VAL INKEY$: PRINT AT 6,0;" Your bet is ";a$(b);" "
8060 LET c$=CHR$ (212-CODE a$(b,2))+a$(b)( TO 2): PRINT AT 6,19;"My bet is ";c$;AT 8,1;"Your score ";p;AT 8,19;"My score ";c
8065 RANDOMIZE : FOR n=1 TO 3: LET s(n)=INT (RND*6+1): NEXT n:
8069 GO SUB 8070: GO TO 8100
8070: FOR n=1 TO 3: LET t=n*8: FOR s=1 TO 5: PRINT AT 11+s,t-2;"█████": NEXT s
8080 PRINT INVERSE 1;AT 14,t;"\o" AND s(n)-2*INT (s(n)/2);AT 13,t+1;"\o" AND s(n)>1;AT 15,t-1;"\o" AND s(n)>1;AT 13,t-1;"\o" AND s(n)>3;AT 15,t+1;"\o" AND s(n)>3;AT 14,t+1;"\o" AND s(n)=6;AT 14,t-1;"\o" AND s(n)=6
8090 GO SUB 8130: RETURN
8100 FOR m=4 TO 20: LET s(1)=s(m-2):: LET s(2)=s(m-1):: LET s(m)=INT (RND*6+1): LET s(3)=s(m): GO SUB 8070: NEXT m
8130 IF s(n)/2=INT (s(n)/2) THEN LET p$(n)="e"
8140 IF s(n)/2<>INT (s(n)/2) THEN LET p$(n)="o"
8150 NEXT n: GO TO 8200*(p$=a$(b))+8250*(p$=c$)+8160*(p$<>a$(b) AND p$<>c$)
8160: RETURN
8200 LET p=p+1
8210 BEEP .5,RND*10: PRINT FLASH 1;AT 20,12;"You win": IF INKEY$="" THEN GO TO 8210
8220 GO TO 8020
8250 LET c=c+1
8260 BEEP .5,RND*10: PRINT FLASH 1;AT 20,12;"I win": IF INKEY$="" THEN GO TO 8260
8270 GO TO 8020
8280 CLS : PRINT AT 4,0;" Two players place their 9 menon the board, then move them. Ifone gets 3 of his men in a line,he may remove one of his oppon-ents men from the board. "''" Place men by single letter,movethem by two letter entry (from/to), enter ""z"" to remove a man."''" Hit the bar"
8300 DATA 1,7,1,16,1,25,4,10,4,16,4,22,7,13,7,16,7,19,10,7,10,10,10,13,10,19,10,22,10,25,13,13,13,16,13,19,16,10,16,16,16,22,19,7,19,16,19,25
8305 DIM s$(32): DIM a$(20,2): DIM x(24): DIM y(24): DIM l(24): DIM c(24)
8310 RESTORE 8300: FOR n=1 TO 24: READ l(n),c(n): LET x(n)=8*c(n)+4: LET y(n)=172-8*l(n): NEXT n
8315 PAUSE 0: CLS : PLOT x(1),y(1): DRAW 144,0: DRAW 0,-144: DRAW -144,0: DRAW 0,144: PLOT x(4),y(4): DRAW 96,0: DRAW 0,-96: DRAW -96,0: DRAW 0,96
8320 PLOT x(7),y(7): DRAW 48,0: DRAW 0,-48: DRAW -48,0: DRAW 0,48: PLOT x(2),y(2): DRAW 0,-48: PLOT x(13),y(13): DRAW 48,0: PLOT x(17),y(17): DRAW 0,-48: PLOT x(10),y(10): DRAW 48,0
8325 FOR n=1 TO 24: PRINT AT l(n),c(n);CHR$ (n+96): NEXT n
8330 FOR n=1 TO 9: BEEP .5,0: PRINT AT 21,0;" Your turn to place a man, X "
8335 PAUSE 0: LET p$=INKEY$: IF CODE p$=122 THEN GO SUB 8500: LET n=n-1: GO TO 8345
8337 LET p=CODE p$-96: PRINT PAPER 2; INK 7;AT l(p),c(p);"X"
8340 BEEP .5,5: PRINT AT 21,0;" Your turn to place a man, O ": PAUSE 0: LET p$=INKEY$: IF CODE p$=122 THEN GO SUB 8500: GO TO 8340
8342 LET p=CODE p$-96: PRINT PAPER 1; INK 7;AT l(p),c(p);"O"
8345 NEXT n: PRINT AT 21,0;s$
8350 BEEP .5,0: INPUT "Move a man X. (from/to)";a$(1): GO SUB 8400: IF CODE a$(1)=122 THEN GO TO 8350
8355 PRINT AT l(f),c(f);a$(1)(1); PAPER 2; INK 7;AT l(t),c(t);"X"
8360 BEEP .5,5: INPUT "Move a man O. (from/to)";a$(1): GO SUB 8400: IF CODE a$(1)=122 THEN GO TO 8360
8375: PRINT AT l(f),c(f);a$(1)(1); PAPER 1; INK 7;AT l(t),c(t);"O": GO TO 8350
8400 IF CODE a$(1)=122 THEN GO SUB 8500: RETURN
8405 LET f=CODE a$(1)-96: LET t=CODE (a$(1)(2))-96: RETURN
8500 PRINT AT 21,0;"Which man do you wish to remove?": PAUSE 0: LET p$=INKEY$: LET p=CODE p$-96: PRINT AT l(p),c(p);p$: RETURN
9899 STOP
9900 SAVE "coll" LINE 0
9901 STOP
9991 INPUT "First line to renumber ";f: IF f<10 THEN GO TO 9991
9992 INPUT "Last line to renumber ";e
9993 INPUT ("New number for ";f;" ");r: IF r<10 THEN GO TO 9993
9994 INPUT "Step ";s: IF s<1 THEN GO TO 9994
9995 LET p=PEEK 23635+256*PEEK 23636: LET v=PEEK 23637+256*PEEK 23628
9996 LET n=256*PEEK p+PEEK (p+1): LET l=PEEK (p+2)+256*PEEK (p+3): IF n<f THEN GO TO 9999
9997 IF n>e OR p=v THEN LIST : STOP
9998 LET p1=INT (r/256): POKE p,p1: POKE p+1,r-(256*p1): LET r=r+s
9999 LET p=4+p+l: GO TO 9996