home *** CD-ROM | disk | FTP | other *** search
/ The Programmer Disk / The Programmer Disk (Microforum).iso / xpro / basic3 / pro5 / panzer.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1990-04-12  |  3.9 KB  |  106 lines

  1. 0      ME$="DEMOMENU.BAS":ON ERROR GOTO 65000
  2. 100   DIM TT$(4 ),RT$(4),WT$(4) : CLS :RANDOMIZE TIMER 'PANZER.BAS..1/26/85
  3. 110    TT$(1)="  MARK III " : TT$(2)="  MARK IV " : TT$(3)="  PANTHER "
  4. 120   TT$(4)="  TIGER "
  5. 130  RT$(1)=" HAS BEEN SIGHTED MOVING TOWARD YOU"
  6. 140  RT$(4)=" IS APPROACHING FROM  YOUR REAR "
  7. 150  RT$(2)=" IS MOVING ON YOU FROM THE LEFT"
  8. 160  RT$(3)=" HAS JUST COME INTO VIEW "
  9. 170  WT$(1)=" A SCHRAPNEL SPRAY HAS SLICED YOUR TRACK"
  10. 180  WT$(4)=" A SHELL BURST HAS PUNCTURED YOUR HYDRAULICS"
  11. 190  WT$(2)=" A PHOSPHORUS FRAGMENT HAS LANDED ON YOUR ENGINE COWLING"
  12. 200  WT$(3)=" A SHAPED CHARGE HAS DISABLED ONE DRIVE WHEEL"
  13. 210  GOSUB 2000:T%=TV%:GOSUB 2000:R%=TV%:GOSUB 2000:W%=TV%
  14. 220  PRINT "NEED INSTRUCTIONS (YES=1, NO=0)" : Z$=INPUT$(1):Z=VAL(Z$)
  15. 230  IF Z=0 THEN 300
  16. 240  CLS : PRINT "YOU ARE A TANK COMMANDER FACING A PANZER DIVISION "
  17. 250  PRINT "IT IS YOUR JOB TO PROVIDE THE GUN ELEVATION TO YOUR CREW AS"
  18. 260  PRINT "ENEMY TANKS ARE SIGHTED. YOUR TANK'S GUN HAS A MAXIMUM RANGE OF"
  19. 262  PRINT "4,650 YARDS AND AN ELEVATION SETTING OF FROM 1 TO 45 DEGREES"
  20. 264  PRINT " FOUR TYPES OF PANZERS OF DIFFERING GUN, ARMOR, AND FIGHTING ABILITY"
  21. 268  PRINT"WILL BE SEEN ON THE BATTLE FIELD. YOU MUST GET THEM BEFORE THEY GET YOU!!!!"
  22. 272  PRINT"THE GAME WILL END IF YOU ARE FATALLY HIT OR ELECT TO RETREAT FOR REFITTING"
  23. 274  PRINT "THE FOUR PANZERS BY RANK ORDER OF FIGHTING POWER ARE:"
  24. 275  PRINT
  25. 276  PRINT" 1) TIGER  2) PANTHER  3) MARK IV  4) MARK III"
  26. 278  PRINT : PRINT " OKAY NOW FIGHT FOR YOUR LIFE"
  27. 300   PRINT : PRINT :PRINT "ENGAGE OR RETREAT FOR REFITTING COMMANDER(1=E,2=R)"
  28. 305  HIT=100*RND(1)
  29. 310  Q$=INPUT$(1):Q=VAL(Q$)
  30. 315  MA=T%
  31. 320  IF Q=2 THEN 1000
  32. 325  RA=43000-25999*RND(1)
  33. 326  RA=INT(RA/10)
  34. 330  CLS : PRINT "A" TT$(T%),RT$(R%)
  35. 332  K1=T%
  36. 340  PRINT : PRINT "AT A RANGE OF" RA " YARDS"
  37. 342  HIT=INT(100*RND(1))
  38. 350  PRINT "*********************************************************"
  39. 352  PRINT:PRINT"GUN ELEVATION COMMANDER" : PRINT
  40. 360  INPUT B2
  41. 370  IF B2<1 THEN PRINT "MINIMUM GUN ANGLE IS 1 DEGREE" : GOTO 350
  42. 380  IF B2>45 THEN PRINT "MAXIMUM GUN ANGLE IS 45 DEGREES" : GOTO 350
  43. 382  PRINT : PRINT "THE SMOKE CLEARS AND YOUR SHOT IS......"
  44. 384  FOR K5=1 TO 2000 : NEXT
  45. 390  PRINT
  46. 400  B3=2*B2/57.3
  47. 410  DS=46500*SIN(B3)
  48. 415  DS=DS/10
  49. 420  X=RA-DS : E=INT(X)
  50. 430  IF ABS(E)<10 THEN 500
  51. 440  IF E>10 THEN 460
  52. 450  IF E<-10 THEN 480
  53. 460  PRINT : PRINT "SHORT OF THE  " TT$(K1) "BY" ABS(E) "YARDS"
  54. 470  GOTO 550
  55. 480  PRINT : PRINT "OVER THE "TT$(K1) "BY " ABS(E) " YARDS"
  56. 482  GOTO 550
  57. 490  PRINT:PRINT "OVER THE "TT$(K1) "BY " ABS(E) "YARDS"
  58. 492  GOTO 550
  59. 500   CLS:SCREEN 4 :BEEP:BEEP: PRINT   "BANG, BANG, BANG!":PRINT:PRINT "SCRATCH A  "TT$(K1)
  60. 505  FOR K5=1 TO 5000 : NEXT:SCREEN 2
  61. 508  GOSUB 2000:W%=TV%
  62. 510   GOSUB 2000: T%=TV% :GOSUB 2000: R% =TV% : CLS :GOTO 300
  63. 550  PRINT "***************************************************"
  64. 555  PRINT : PRINT "THE " TT$(K1) "FIRES AND..............................."
  65. 557  FOR L9=1 TO 2000 : NEXT
  66. 560  PRINT:SHOT=INT(100*RND(1))
  67. 570  IF ABS(SHOT-HIT)<=MA THEN 800
  68. 580  D=ABS(SHOT-HIT)
  69. 585  D=INT(D/4)
  70. 590  IF NM=1 THEN MA=4*T%
  71. 600  IF D<=T% THEN 620
  72. 610  PRINT :  PRINT " MISSES YOUR TANK BY " D*10 "YARDS" : GOTO 350
  73. 620  PRINT : PRINT WT$(W%) : PRINT : PRINT "YOU ARE IN BAD TROUBLE NOW"
  74. 625  GOSUB 2000:W%=TV%
  75. 630  PRINT "BETTER MAKE THE NEXT SHOT COUNT OR IT MIGHT BE YOUR HEAD":PRINT
  76. 640  NM=1 : GOTO 350
  77. 800  PRINT : PRINT "SCORES A DIRECT HIT ----YOUR TANK IS BURNING"
  78. 810  PRINT : PRINT"GET THE HATCH OPEN.....RUN FOR YOUR LIFE"
  79. 815  FOR I=1 TO 4000 : NEXT : PRINT
  80. 820  PRINT:PRINT "IF YOU WANT TO PLAY ANOTHER GAME"
  81. 822  PRINT : PRINT :FOR I=1 TO 2000 : NEXT
  82. 825  FOR H7=1 TO 2000 : NEXT:SCREEN 4 :BEEP:BEEP:BEEP:PRINT  ,"BOOM...BOOM ...BOOM...":PRINT
  83. 827  FOR H7=1 TO 2000:NEXT: PRINT
  84. 830  PRINT:PRINT "SO LONG*******************", 
  85. 835  FOR H7=1 TO 3000 : NEXT:SCREEN 2
  86. 836  PRINT : CLS
  87. 840  PRINT : PRINT : PRINT "LIKE TO TRY AGAIN COMMANDER (1=YES, 0=NO)"
  88. 850  INPUT Q
  89. 860  IF Q= 1 THEN 508
  90. 890  PRINT : PRINT "BETTER LUCK NEXT TIME COMMANDER"
  91. 900  PRINT"RETURNING TO MAIN MENU":RUN "files.BAS"
  92. 1000  PRINT : PRINT "GOOD WORK COMMANDER LET'S HEAD FOR THE PX AND"
  93. 1010  PRINT "SOME R AND R. COME BACK WHEN YOU RECOVER....."
  94. 1020  PRINT:PRINT:PRINT "RETURNING YOU TO THE MENU":RUN"files.bas"
  95. 2000  TV%=INT(10*RND(1))
  96. 2010  IF TV%>0 AND TV%<5 THEN RETURN ELSE 2000
  97. 65000  CLS:PRINT:PRINT:SCREEN 1:PRINT TAB(15); "ERROR TRAP";" "
  98. 65005  PRINT:PRINT "ERROR CONDITION #";ERR
  99. 65010  PRINT:PRINT "HAS BEEN DETECTED IN LINE #";ERL
  100. 65015  PRINT:PRINT "HIT "; "<R>";" ";" TO RESUME"
  101. 65020  PRINT:PRINT"HIT "; "<F>";" ";" TO RETURN TO  THE FILES PROGRAM"
  102. 65025  R$=INPUT$(1):PRINT :SCREEN 2
  103. 65030  IF R$="F" THEN RUN"FILES."
  104. 65035  IF R$="R" THEN RESUME NEXT
  105. 65040  ON ERROR GOTO 0
  106.