10 REM Commando Jump
20 MODE 1
30 GOSUB 1000:REM Graphics init
35 GOSUB 1500:REM init
40 GOSUB 2000:REM Print wall
50 GOSUB 3000:REM Jump
60 GOSUB 7000:REM Endgame
70 IF a$="Y" THEN RUN
99 END
1000 REM Graphics init
1010 INK 0,23
1020 INK 1,6
1030 INK 2,0
1040 INK 3,8,23
1050 PAPER 0
1060 PEN 1
1100 REM Graphics Characters
1110 SYMBOL AFTER 240
1120 SYMBOL 240,0,&FF,&FF,&FF,&FF,&FF,&FF,&FF
1130 SYMBOL 241,&18,&18,&FF,&3C,&3C,&24,&24,&24
1499 RETURN
1500 REM init
1510 jump=1
1520 h=INT(10+(RND(1)*5))
1530 SPEED KEY 1,200
1999 RETURN
2000 REM Print wall
2010 PEN 1
2020 CLS
2040 FOR i=18 TO 19-h STEP -1
2050 LOCATE 10,i
2060 PRINT CHR$(240);
2070 NEXT i
2080 LOCATE 10,18-h
2090 PAPER 1
2100 PRINT " ";
2110 PAPER 0
2999 RETURN
3000 REM Jump
3020 LOCATE 10,20
3030 PRINT "Jump ";JUMP
3040 LOCATE 13,18
3050 PRINT CHR$(241);
3060 GOSUB 4000:REM Countdown
3070 PEN 2
3080 IF t>=5 THEN GOTO 3320:REM next jump
3090 GOSUB 5000:REM Do jump
3100 j=i
3110 l=INT (i)
3120 t=(TIME-stime)/300
3130 IF t>=5 THEN GOTO 3250:REM Out of time
3140 LOCATE 5,23
3150 PRINT "Time left ";INT ((5-t)*10)/10;" "
3160 IF INKEY$="" THEN GOTO 3120:REM Check time
3170 LOCATE 13,INT (l)
3180 PRINT " ";
3190 j=j-0.25
3200 l=INT (j)
3210 LOCATE 13,l
3220 PRINT CHR$(241);
3230 IF l<=17-h THEN GOSUB 6000:RETURN:REM Man over wall
3240 GOTO 3120:REM Check time
3250 FOR i=l TO 18
3260 LOCATE 13,i-1
3270 PRINT " ";
3280 LOCATE 13,i
3290 PRINT CHR$(241);
3300 SOUND 1,200+i*6,5
3310 NEXT i
3315 FOR k=1 TO 1000:NEXT k
3320 jump=jump+1
3330 LOCATE 5,23
3340 PRINT SPC(15);
3350 IF jump<=10 THEN GOTO 3020:REM Jump loop
3999 RETURN
4000 REM Countdown
4005 WHILE INKEY$<>"":WEND
4010 PEN 3
4020 LOCATE 1,20
4030 PRINT SPC(5);
4040 LOCATE 1,20
4050 PRINT "Ready";
4060 FOR i=1 TO RND(1)*1000+1000:NEXT i
4070 LOCATE 1,20
4080 PRINT "Steady";
4090 FOR i=1 TO RND(1)*1000+1000:NEXT i
4100 LOCATE 1,20
4110 PRINT SPC(6);
4120 IF INKEY$<>"" THEN GOTO 4500:REM Cheat
4130 stime=TIME
4140 SOUND 1,100
4150 LOCATE 1,20
4160 PRINT "Go"
4170 IF INKEY$="" THEN GOTO 4170
4180 t=(TIME-stime)/300
4190 GOTO 4999:REM Skip cheat
4500 LOCATE 2,10
4510 PRINT "cheat"
4520 SOUND 1,1000
4530 FOR k=1 TO 2000:NEXT k
4540 LOCATE 2,10
4550 PRINT SPC(5);
4560 t=(TIME-stime)/300
4999 RETURN
5000 REM Jump
5010 FOR i=18 TO 18-h+INT (t*28) STEP -1
5020 LOCATE 13,i
5030 PRINT " ";
5040 LOCATE 13,i-1
5050 PRINT CHR$(241);
5060 SOUND 1,119+i*6,10
5070 FOR k=1 TO 20:NEXT k
5080 NEXT i
5090 SOUND 129,0
5099 RETURN
6000 REM Man over wall
6010 FOR i=13 TO 5 STEP -1
6020 LOCATE i+1,l
6030 PRINT " ";
6040 LOCATE i,l
6050 PRINT CHR$(241);
6060 FOR k=1 TO 100:NEXT k
6070 NEXT i
6080 FOR i=l TO 18
6090 LOCATE 5,i-1
6100 PRINT " ";
6110 LOCATE 5,i
6120 PRINT CHR$(241);
6130 SOUND 1,200+i*6
6140 IF (SQ(1) AND 7)<>4 THEN GOTO 6140
6150 NEXT i
6999 RETURN
7000 REM Endgame
7010 IF jump<=10 THEN GOTO 7500:REM Successful jump
7020 LOCATE 1,24
7030 PRINT "You failed"
7040 GOTO 7800:REM Skip
7500 LOCATE 1,24
7510 PRINT "You took ";Jump;" JUMP";
7515 IF jump>1 THEN PRINT "S";
7520 PRINT " to clear the wall"
7800 WHILE INKEY$<>"":WEND
7810 SPEED KEY 30,2
7820 INPUT "Another Game ";a$
7830 a$=LEFT$(a$,1)
7840 a$=UPPER$(a$)
7850 PEN 1
7999 RETURN