Jack5

Date: 198x
Type: Program
Platform(s): TS 2068

Appears on

Library tape of the Indiana Sinclair Timex User’s Group.

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

People

No people associated with this content.

Scroll to Top