home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / basic / library / gwbasic / spiele / tankwar7.bas < prev    next >
Encoding:
BASIC Source File  |  1991-05-15  |  2.0 KB  |  74 lines

  1. 4 DIM V(320):RANDOMIZE TIMER
  2. 5 KEY OFF:CLS
  3. 6 Z=1
  4. 10 SCREEN 2:SCREEN 1
  5. 15 GOTO 56
  6. 20 FOR A=0 TO 12:LINE (0,A)-(320,A):NEXT A
  7. 25 LOCATE 1,1:INPUT"Angle: ",A
  8. 30 A1=0
  9. 35 IF A>90 THEN A=180-A:A1=1
  10. 40 LOCATE 1,20:INPUT"Power: ",B
  11. 50 RETURN
  12. 56 PRINT:PRINT:PRINT"Enter wind (to right): (-100 to 100)"
  13. 57 INPUT W
  14. 58 W=W/20
  15. 60 PRINT:PRINT:PRINT"Enter positioning of tank: (5 to 315)"
  16. 62 INPUT X1
  17. 64 SCREEN 2:SCREEN 1:GOTO 66
  18. 65 X=INT(RND*310)+5
  19. 66 X=X1
  20. 68 IF R3=0 THEN GOSUB 210
  21. 70 FOR C=1 TO 5 STEP .5:CIRCLE (X,V(X)),C,1,,,5/5:NEXT C
  22. 80 GOSUB 300
  23. 85 GOSUB 20
  24. 90 X=X1:Y=V(X):FY=0-((A/90)*B):FX=0-(((90-A)/90)*B)
  25. 95 IF A1=1 THEN FX=0-FX
  26. 100 LINE (X,Y)-(X,Y)
  27. 105 IF FY<0 THEN FY1=0-FY ELSE FY1=FY
  28. 106 IF FX<0 THEN FX1=0-FX ELSE FX1=FX
  29. 110 IF FY1>FX1 THEN 115
  30. 111 IF FX<0 THEN FX2=0-Z ELSE IF FX>0 THEN FX2=Z ELSE FX2=0
  31. 112 IF FX1=0 THEN IF FY1=0 THEN FX2=0:FY2=0:GOTO 118
  32. 113 IF FX<0 THEN FY2=FY/((0-FX)/Z) ELSE FY2=FY/(FX/Z)
  33. 114 GOTO 118
  34. 115 IF FY<0 THEN FY2=0-Z ELSE IF FY>0 THEN FY2=Z ELSE FY2=0
  35. 116 IF FY<0 THEN FX2=FX/((0-FY)/Z) ELSE FX2=FX/(FY/Z)
  36. 118 X=X+FX2:Y=Y+FY2
  37. 120 FY=FY+Z:FX=FX+(W*Z)
  38. 130 LINE -(X,Y)
  39. 140 X9=X
  40. 150 IF X9>320 THEN X9=320
  41. 160 IF X9<1 THEN X9=1
  42. 170 IF Y>=V(X9) THEN BEEP:GOTO 185
  43. 180 GOTO 105
  44. 185 IF X>0 THEN IF X<321 THEN GOSUB 330:GOSUB 410
  45. 190 A$=INKEY$:IF A$="" THEN 190
  46. 200 R3=1:GOTO 85
  47. 210 FK=0:HK=INT(RND*168)+20:CK1=INT(RND*6)+2
  48. 215 CK5=INT(RND*25)+15
  49. 220 CK4=INT(RND*8)+1:FOR C=1 TO 320
  50. 230 CK=INT(RND*CK1)+1:CK3=CK3+1
  51. 235 IF CK3>1 THEN IF CK3/5<>INT(CK3/5) THEN 240 ELSE 250
  52. 240 IF CK<>1 THEN 260
  53. 250 CK2=INT(RND*2)+1:IF CK2=1 THEN FK=FK-1 ELSE FK=FK+1
  54. 255 IF FK>CK4 THEN FK=FK-1
  55. 256 IF FK<0-CK4 THEN FK=FK+1
  56. 260 HK=HK+FK:IF HK>198 THEN HK=198
  57. 265 IF HK<CK5 THEN HK=CK5:FK=0
  58. 270 V(C)=HK
  59. 280 NEXT C
  60. 290 RETURN
  61. 300 FOR C=0 TO 320
  62. 305 C1=C:IF C1=0 THEN C1=1
  63. 310 LINE (C,200)-(C,V(C1)),2
  64. 320 NEXT C:RETURN
  65. 330 FOR X5=1 TO 3
  66. 340 IF X5=1 THEN CL=3
  67. 350 IF X5=2 THEN CL=2
  68. 360 IF X5=3 THEN CL=0
  69. 370 FOR X6=0 TO 7 STEP .25
  70. 380 CIRCLE (X,Y),X6,CL,,,5/5
  71. 390 NEXT X6
  72. 400 NEXT X5:RETURN
  73. 410 RETURN
  74.