Mad Dog Tank Blaster

Developer(s): Thomas B. Woods
Date: 198x
Type: Program
Platform(s): TS 1000

The enemy tank commander has gone mad. He is shooting wildly in all directions. You must destroy him before you run out of time, get shot, or run down.

Appears on

One individual’s cassette containing a number of programs.

Related Products

Play vs computer controlled tank. Move your man, plant mines and avoid the tank. Tank shoots or can run you over. Manual explains moving men, bullets and explosions. Learn to map your display of complex interactive graphics. 16K.

Gallery

Mad Dog Tank Blaster

Source Code

   1 LET TANK=0
   2 LET YOU=0
   4 LET Q=5
   5 LET M=0
   6 LET T=0
   7 DIM S(19,29)
   8 LET Z=1
  10 LET P=18
  12 LET L=26
  13 LET S(P,L)=2
  15 PRINT AT 6,10;"MAD DOG"
  17 PRINT AT 8,5;"TANK BLASTER"
  20 PRINT AT 11,2;"\:.\:.\:.\:.\:.\..\..\..\..\..\..\..\.."
  22 PRINT AT 12,2;"% % % % % "
  25 PRINT AT 13,0;"\'.% % % % % % % % % \.'"
  27 PRINT AT 14,1;"\'.\:.\:.\:.\:.\:.\:.\:.\.'"
  30 PRINT AT 18,2;"BY TOM WOODS"
  32 PAUSE 100
  35 PRINT AT 10,14;"**"
  37 PRINT AT 11,14;"* **"
  40 PRINT AT 12,14;"  *"
  50 PRINT AT 11,14;"    "
  53 PRINT AT 10,14;"   "
  54 PRINT AT 12,14;"   "
  70 CLS 
  85 IF TANK>0 OR YOU>0 THEN GOTO 97
  89 PRINT AT 3,0;"THE ENEMY TANK COMMANDER HAS    GONE MAD. HE IS SHOOTING WILDLY IN ALL DIRECTIONS. YOU MUST     DESTROY HIM BEFORE YOU RUN OUT  OF TIME, GET SHOT, OR RUN DOWN. USE THE ARROWS TO MANEUVER YOUR MAN. YOU CAN PLACE EACH OF YOUR 5 MINES BY PUSHING ""P""."
  90 PRINT AT 12,0;"HOLD THE KEY UNTIL YOU MOVE.    DON/T STEP ON YOUR OWN MINES.   GOOD LUCK AND WORK QUICKLY. YOU DON/T HAVE MUCH TIME.           HIT %E%N%T%E%R TO BEGIN."
  91 PRINT ,,"""%X""IS THE TANK","""%O""IS YOU"
  92 INPUT A$
  95 CLS 
  97 FAST 
 100 FOR Y=1 TO 29 STEP 2
 110 FOR X=1 TO 19 STEP 2
 120 PRINT AT X,Y;"% "
 130 NEXT X
 140 NEXT Y
 145 SLOW 
 150 LET X=4
 160 LET Y=4
 163 PRINT AT Y,X;"%X"
 165 PRINT AT P,L;"%O"
 170 LET K$="X"
 200 GOSUB 1000+INT (RND*4)*100
 605 LET T=T+1
 608 IF T=30 THEN GOTO 9200
 610 GOTO 190
 650 LET Q=1
 660 GOTO 9100
 690 IF S(Y,X)=1 THEN GOTO 9000
 700 FOR X=1 TO 3
 710 PRINT AT P,L;" "
 715 PRINT AT P,L;"%X"
 720 NEXT X
 750 PRINT AT P,2;"%Y%O%U% %G%O%T% %S%Q%U%A%S%H%E%D"
 760 LET Q=2
 999 GOTO 9127
1000 IF X>21 THEN GOTO 1100
1002 FOR X=X TO X+INT ((RND*3)+1)*2 STEP 2
1003 IF S(Y,X-2)=0 THEN PRINT AT Y,X-2;"  %X"
1010 IF S(Y,X)>0 THEN GOTO 690
1015 NEXT X
1017 LET X=X-2
1021 GOSUB 1030+INT (RND*4)*100
1030 FOR B=X+2 TO 28 STEP 5
1032 PRINT AT Y,B;"*"
1033 PRINT AT Y,B;" "
1034 IF S(Y,B)=1 THEN GOTO 8500
1037 IF Y=P THEN GOSUB 1060
1039 IF B>=L-2 THEN GOTO 7000
1050 NEXT B
1055 RETURN 
1060 IF ABS (L-B)<=1 THEN GOTO 9090
1065 RETURN 
1100 IF X<9 THEN GOTO 1000
1102 FOR X=X TO X-INT ((RND*3)+1)*2 STEP -2
1104 IF S(Y,X+2)=0 THEN PRINT AT Y,X;"%X  "
1110 IF S(Y,X)>0 THEN GOTO 690
1115 NEXT X
1120 LET X=X+2
1125 GOSUB 1030+INT (RND*4)*100
1130 FOR B=X-2 TO 2 STEP -5
1132 PRINT AT Y,B;"*"
1135 PRINT AT Y,B;" "
1140 IF S(Y,B)=1 THEN GOTO 8500
1142 IF Y=P THEN GOSUB 1060
1143 IF B<=L+2 THEN GOTO 7000
1150 NEXT B
1155 RETURN 
1200 IF Y>11 THEN GOTO 1300
1201 FOR Y=Y TO Y+INT ((RND*3)+1)*2 STEP 2
1203 IF S(Y-2,X)=0 THEN PRINT AT Y-2,X;" "
1205 PRINT AT Y,X;"%X"
1210 IF S(Y,X)>0 THEN GOTO 690
1220 NEXT Y
1225 LET Y=Y-2
1227 GOSUB 1030+INT (RND*4)*100
1230 FOR B=Y+2 TO 18 STEP 5
1235 PRINT AT B,X;"*"
1240 PRINT AT B,X;" "
1242 IF S(B,X)=1 THEN GOTO 8400
1243 IF X=L THEN GOSUB 1265
1244 IF B>=P-2 THEN GOTO 7950
1255 NEXT B
1260 RETURN 
1265 IF ABS (P-B)<=1 THEN GOTO 9090
1270 RETURN 
1300 IF Y<9 THEN GOTO 1200
1302 FOR Y=Y TO Y-INT ((RND*3)+1)*2 STEP -2
1305 IF S(Y+2,X)=0 THEN PRINT AT Y+2,X;" "
1307 PRINT AT Y,X;"%X"
1310 IF S(Y,X)>0 THEN GOTO 690
1320 NEXT Y
1322 LET Y=Y+2
1325 GOSUB 1030+INT (RND*4)*100
1330 FOR B=Y-2 TO 2 STEP -5
1335 PRINT AT B,X;"*"
1340 PRINT AT B,X;" "
1341 IF S(B,X)=1 THEN GOTO 8400
1342 IF X=L THEN GOSUB 1265
1343 IF B<=P+2 THEN GOTO 7950
1355 NEXT B
1360 RETURN 
2002 IF L$="P" THEN GOTO 3000
2003 IF L$<>"" THEN LET K$=L$
2004 IF CODE K$>=33 AND CODE K$<=36 THEN GOTO 2000+VAL K$*100
2005 RETURN 
2500 IF L<4 THEN RETURN 
2502 LET S(P,L)=0
2505 FOR L=L TO L-2 STEP -1
2510 PRINT AT P,L-1;" %O "
2520 NEXT L
2530 LET L=L+1
2535 IF S(P,L)=0 THEN LET S(P,L)=2
2540 GOTO 2840
2600 IF P>16 THEN RETURN 
2602 LET S(P,L)=0
2605 FOR P=P TO P+2
2610 PRINT AT P-1,L;" "
2620 PRINT AT P,L;"%O"
2630 NEXT P
2640 LET P=P-1
2645 IF S(P,L)=0 THEN LET S(P,L)=2
2650 GOTO 2840
2700 IF P<4 THEN RETURN 
2702 LET S(P,L)=0
2705 FOR P=P TO P-2 STEP -1
2710 PRINT AT P+1,L;" "
2720 PRINT AT P,L;"%O"
2730 NEXT P
2740 LET P=P+1
2745 IF S(P,L)=0 THEN LET S(P,L)=2
2750 GOTO 2840
2800 IF L>26 THEN RETURN 
2802 LET S(P,L)=0
2805 FOR L=L TO L+2
2810 PRINT AT P,L-1;" %O "
2830 NEXT L
2835 LET L=L-1
2836 IF S(P,L)=0 THEN LET S(P,L)=2
2840 IF S(Y,X)=2 THEN GOTO 700
2842 IF S(P,L)=2 THEN RETURN 
2845 IF S(P,L)=1 THEN GOTO 650
3000 LET M=M+1
3010 IF M<6 AND P>3 THEN LET S(P-2,L)=1
3030 IF M<6 AND P>3 THEN PRINT AT P-2,L;"\@@"
3050 LET K$="X"
3055 IF S(Y,X)=1 THEN GOTO 9000
3070 RETURN 
7000 IF S(Y,B-1)=1 OR S(Y,B)=1 OR S(Y,B+1)=1 THEN GOTO 8500
7700 PRINT AT Y-1,B-1;"** "
7710 PRINT AT Y,B-1;" * "
7720 PRINT AT Y+1,B-1;" **"
7730 PRINT AT Y-1,B-1;"%   "
7740 PRINT AT Y,B-1;"   "
7750 PRINT AT Y+1,B-1;"   "
7755 LET L$=INKEY$
7760 GOTO 2000
7950 IF S(B-1,X)=1 OR S(B,X)=1 OR S(B+1,X)=1 THEN GOTO 8400
7960 PRINT AT B-1,X-1;"** "
7965 PRINT AT B,X-1;" * "
7970 PRINT AT B+1,X-1;" **"
7975 PRINT AT B-1,X-1;"%   "
7980 PRINT AT B,X-1;"   "
7985 PRINT AT B+1,X-1;"   "
7987 LET L$=INKEY$
7990 GOTO 2000
8400 LET Z=Y
8410 LET Y=B
8420 LET B=X
8500 PRINT AT Y-1,B-1;"** "
8510 PRINT AT Y,B-1;" * "
8520 PRINT AT Y+1,B-1;" **"
8530 PRINT AT Y-1,B-1;"%   "
8540 PRINT AT Y,B-1;"   "
8550 PRINT AT Y+1,B-1;"   "
8551 FOR F=-1 TO 1
8552 LET S(Y+F,B)=0
8554 LET S(Y,B+F)=0
8560 NEXT F
8562 LET C=Y
8565 IF B=X THEN LET Y=Z
8567 LET L$=INKEY$
8570 IF Z<>0 THEN RETURN 
8580 GOTO 9020
9000 LET Z=0
9010 GOTO 8420
9020 PRINT AT C,2;"%Y%O%U% %G%O%T% %H%I%M% %W%I%T%H% %Y%O%U%R% %M%I%N%E"
9022 LET YOU=YOU+1
9023 LET Z$="MINE "
9024 IF M<>1 THEN LET Z$(5)="S"
9025 PAUSE 100
9027 CLS 
9028 IF T<10 THEN PRINT "IN JUST ";T;" MINUTES YOU BLASTED   THAT WILD TANK" 
9030 IF T>=10 THEN PRINT "IT TOOK SOME TIME BUT YOU       FINALLY GOT THE TANK"
9031 IF M<=3 THEN PRINT "AND YOU ONLY USED ";M;" ";Z$;" TO DO IT"
9032 IF M=4 OR M=5 THEN PRINT " IT TOOK ";M;"MINES---YOU NEED MORE PRACTICE"
9034 IF T>=20 THEN PRINT "YOU ONLY HAD ";30-T;" MINUTES LEFT"
9045 PRINT AT 7,0;"BECAUSE OF YOUR DARING AND SKILLYOU SHALL BE AWARDED THE MEDAL  OF HONOR."   
9046 IF TANK>YOU+1 THEN PRINT "ONLY ";TANK-YOU;" GAMES TO CATCH UP"
9050 GOTO 9400
9090 LET Q=0
9100 PRINT AT P-1,L-1;" **"
9105 PRINT AT P,L-1;"* **"
9110 PRINT AT P+1,L-1;"** *"
9120 IF Q=0 THEN PRINT AT P,L-1;"%Y%O%U%/%R%E% %S%H%O%T"
9125 IF Q=1 THEN PRINT AT P,2;"%Y%O%U% %R%A%N% %O%V%E%R% %Y%O%U%R% %O%W%N% %M%I%N%E"
9127 PAUSE 100
9200 CLS 
9201 LET TANK=TANK+1
9202 IF M=0 THEN PRINT "YOU DIDN/T GET A SINGLE MINE    PLANTED."
9203 IF Q=2 AND T<=10 THEN PRINT "YOU GOT RUN OVER AFTER JUST ";T;"   MINUTES."
9204 IF Q=0 AND T<=10 THEN PRINT "YOU GOT GUNNED DOWN IN ONLY ";T;"   MINUTES."
9206 IF M>1 AND Q=1 THEN LET A$="BUT "
9210 IF M>1 THEN PRINT AT 5,0;"THE ENEMY TANK AVOIDED ALL OF   YOUR MINES."
9212 IF Q=1 THEN PRINT A$;"BY RUNNING OVER YOUR OWN    MINE YOU MADE IT AWFUL EASY FOR THE TANK."
9213 LET A$=""
9214 IF Q=2 THEN PRINT "YOU MUST LEARN TO STAY OUT OF   THE WAY OF THAT TANK."
9215 IF Q=0 AND T<20 THEN PRINT "YOU LOSE"
9220 IF Q<>5 AND T>20 THEN PRINT "AT LEAST YOU MANAGED TO HOLD    OUT FOR ";T;" MINUTES"
9225 IF Q=5 THEN PRINT "FOR USING UP ALL YOUR TIME A    COURT MARTIAL IS BEING FILED"
9227 IF M=0 THEN PRINT "TRY USING A FEW MINES NEXT TIME.";
9230 IF M=0 AND T=30 THEN PRINT "AND DON/T FORGET ABOUT THE CLOCKAT THIS RATE YOU WON/T GET      ANYWHERE."
9240 IF TANK-YOU=4 THEN PRINT " THE TANK IS MAKING YOU LOOK BAD"
9400 PRINT AT 14,4;"SCORE: YOU-";YOU
9410 PRINT TAB 10;"TANK-";TANK
9450 IF YOU>TANK+8 THEN GOTO 9800
9500 PRINT AT 20,0;"PLAY AGAIN? HIT %E%N%T%E%R"
9600 INPUT Z$
9650 CLS 
9700 GOTO 3
9800 PRINT AT 20,0;"% %T%H%E% %T%A%N%K% %G%I%V%E%S% %U%P%-%-%Y%O%U% %W%I%N% "
9997 STOP 
9998 SAVE "TAN%K"
9999 RUN 
Scroll to Top