Jack5

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

Content

Appears On

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

Related Products

Related Articles

Related Content

Image Gallery

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

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

People

No people associated with this content.

Scroll to Top