Source Code
10 LET y=0: LET h=y
20 LET e$="Jack"
30 RESTORE 1460: FOR b=y TO 63
40 READ C: POKE USR "\a"+b,c: NEXT B
50 LET s=y: LET v=1: LET y$=CHR$ 16+CHR$ y+"\g": LET z$=CHR$ 16+CHR$ 4+"X"
60 LET z=4: PAPER PI: INVERSE 1
70 LET f=y
80 CLS
90 PRINT INK z;"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
100 IF f=1 THEN RETURN
110 PRINT z$;y$;"\g\g\g\g\g\g\g\g\g\g\g\g''''\g\g\g\g\g\g\g\g\g\g\g\g\g";z$
120 IF f=1 THEN GO TO 90
130 PRINT z$;y$; INK z;"\g\g\g\g\g\g\g\g\g\g\g\g"; INK y;"''''"; INK z;"\g\g\g\g\g\g\g\g\g\g\g\g";y$;z$
140 IF f=1 THEN GO TO 110
150 PRINT z$;y$;z$;y$;"\g\g\g\g\g\g\g\g\g\g''''\g\g\g\g\g\g\g\g\g\g\g";z$;y$;z$
160 IF f=1 THEN GO TO 130
170 PRINT z$;y$;z$;y$;z$;"XXXXXXXXX"; INK y;"''''";z$;"XXXXXXXXX";y$;z$;y$;z$
180 IF f=1 THEN GO TO 150
190 PRINT z$;y$;z$;y$;z$;y$;"\g\g\g\g\g\g\g\g''''\g\g\g\g\g\g\g\g\g";z$;y$;z$;y$;z$
200 IF f=1 THEN GO TO 170
210 PRINT z$;y$;z$;y$;z$;y$;z$;"XXXXXXX"; INK y;"''''";z$;"XXXXXXX";y$;z$;y$;z$;y$;z$
220 IF f=1 THEN GO TO 190
230 PRINT z$;y$;z$;y$;z$;y$;z$;y$;"\g\g\g\g\g\g''''\g\g\g\g\g\g\g";z$;y$;z$;y$;z$;y$;z$
240 IF f=1 THEN GO TO 210
250 PRINT z$;y$;z$;y$;z$;y$;z$;y$;z$;"XXXXXXXXXXXXXXX";y$;z$;y$;z$;y$;z$;y$;z$
260 IF f=1 THEN GO TO 230
270 FOR a=1 TO 4
280 PRINT z$; INK y;"'''''''";z$;"XXXXXXXXXXXXXXX"; INK y;"'''''''";z$
290 NEXT a
300 LET f=1
310 GO SUB 250
320 INVERSE y
330 GO SUB 1230
340 LET u=20
350 PAPER 0: INK 6
360 LET p=17
370 LET du=y
380 LET lj=4
390 LET dp=1
400 LET lf=4
410 LET a=10
420 LET g$="'"
430 LET t=1
440 LET l$="'"
450 LET da=-1
460 PRINT AT 9,9; PAPER y; INK 4;"Score: "
470 LET dt=0
480 LET q=1
490 LET c=144
500 IF INKEY$<>"" THEN BEEP .01,0
510 PRINT AT u,p; INK 6;CHR$ c
520 IF SCREEN$ (u+du,p+dp)="X" THEN GO TO 1180
530 PRINT AT a,t; INK PI;g$
540 IF SCREEN$ (a+da,t+dt)="X" THEN GO TO 1210
550 LET g$=SCREEN$ (a+da,t+dt)
560 IF ATTR (a+da,t+dt)>128 THEN LET g$=","
570 IF g$<>"'" THEN LET q=v
580 IF g$<>"'" AND g$<>"," THEN LET g$="\g"
590 LET a=a+da: LET t=t+dt
600 IF a=ba AND t=rl THEN GO SUB 1390
610 IF SCREEN$ (a,t)="'" AND lj<>lf THEN GO SUB 920
620 PRINT AT a,t;"\h"
630 PRINT AT u,p; INK PI;l$
640 LET u=u+du: LET p=p+dp
650 IF ATTR (u,p)=6 THEN GO TO 1050
660 LET m=0: LET l$=SCREEN$ (u,p): IF l$="" THEN LET l$=",": LET m=1
670 IF u=ba AND p=rl THEN GO SUB 1340
680 PRINT AT u,p;"\f"
690 IF m=1 THEN LET s=s+1: LET s2=s2+1: BEEP .005,-10: BEEP .005,-5: PRINT AT 9,17;s
700 IF s2>=244 THEN LET v=v-RND: GO TO 60
710 IF INKEY$="" OR l$="," THEN GO TO 500
720 LET i$=INKEY$
730 IF CODE INKEY$<53 OR CODE INKEY$>56 THEN GO TO 500
740 RESTORE 750
750 DATA du,"6","7",dp,"5","8"
760 FOR i=1 TO 2
770 READ j: READ j$: READ k$
780 IF j=y AND INKEY$<>j$ AND INKEY$<>k$ THEN GO TO 500
790 NEXT i
800 LET u1=u: LET p1=p
810 LET u1=u+((i$="6")-(i$="7"))*(du=y)*2
820 LET p1=p+((i$="8")-(i$="5"))*(dp=y)*2
830 LET n=(i$="6")*(dp=1)+(i$="7")*(dp=-1)+(i$="5")*(du=1)+(i$="8")*(du=-1)
840 IF n=y THEN LET n=-1
850 IF lj+n=y OR lj+n=5 THEN GO TO 500
860 LET lj=lj+n
870 PRINT AT u,p; INK PI;l$
880 LET u=u1: LET p=p1
890 PRINT AT u,p;"\f"
900 BEEP .01,10
910 GO TO 500
920 IF INT q=y THEN RETURN
930 LET tf=lf+(lf<lj)-(lf>lj)
940 LET q=q-1
950 LET o=(lf>lj)*(da=-1)+(lf<lj)*(da=1)
960 IF o=y THEN LET o=-1*(dt=y)
970 LET o=o*2
980 LET t=t+o
990 LET o=(lf>lj)*(dt=1)+(lf<lj)*(dt=-1)
1000 LET lf=tf
1010 IF o=y THEN LET o=-1*(da=y)
1020 LET o=o*2
1030 LET a=a+o
1040 RETURN
1050 RESTORE 1170
1060 FOR a=1 TO 4
1070 READ b$: READ r
1080 PRINT AT u,p;b$
1090 BEEP 1,r: NEXT a
1100 FOR a=1 TO 64
1110 BEEP .01,25: NEXT a
1120 PRINT AT 17,11;"GAME OVER"
1130 IF h<s THEN INPUT "You have passed highest score: Please type in your name and press ENTER. ";e$: IF LEN e$>11 THEN PRINT AT u,p-5;"Too long.......": GO TO 1050
1140 IF h<s THEN LET h=s
1150 IF INKEY$="" THEN GO TO 1150
1160 GO TO 50
1170 DATA "\f",30,"\e",20,".",10," ",0
1180 IF du=y THEN LET du=-dp: LET dp=y: LET c=c+1: GO TO 520
1190 IF dp=y THEN LET dp=du: LET du=y: LET c=c+1: IF c=148 THEN LET c=144
1200 GO TO 520
1210 IF da=y THEN LET da=dt: LET dt=y: GO TO 590
1220 IF dt=y THEN LET dt=-da: LET da=y: GO TO 590
1230 RESTORE 1260
1240 LET s2=y
1250 GO SUB 1390
1260 DATA 7,1,7,.5,7,.5,10,1,12,1,14,.5,12,1.5,10,1.5,12,.5,7,1,7,.5,7,.5,10,1,12,1,7,2
1270 DATA 7,1,7,1,10,1,12,1,14,.5,12,1.5,10,1,12,1,7,1,7,1,5,.5,4,1.5,y,2
1280 FOR a=1 TO 26
1290 READ w,x
1300 BEEP x/10,w: NEXT a
1310 IF h<s THEN LET h=s
1320 PRINT AT 11,9; PAPER z; INK y;"High score: ";h;AT 12,9;"by ";e$
1330 RETURN
1340 FOR d=24 TO y STEP -1
1350 BEEP .01,d: NEXT d
1360 BEEP .1,36
1370 LET s=s+5
1380 LET l$=","
1390 LET ba=INT (RND*20)+1
1400 LET rl=INT (RND*29)+1
1410 LET b$=SCREEN$ (ba,rl)
1420 IF b$="'" OR b$="X" OR (b$="," AND s2<112) OR (ba>8 AND ba<13) THEN GO TO 1390
1430 PRINT AT ba,rl; INK 5; PAPER y;"\g"
1440 IF s>=112 THEN LET s2=s2+1
1450 RETURN
1460 DATA 60,126,240,224,C,240,126,60
1470 DATA y,66,195,C,231,255,126,60,C,126,15,7,C,15,126,60
1480 DATA 60,126,255,231,195,C,66,y,C,C,C,C,60,C,C,C
1490 DATA 60,126,255,C,C,C,126,60,y,6,8,60,126,60,24,y
1500 DATA 24,60,24,255,24,C,36,102
1510 SAVE "JACK 5" LINE 10