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

  1. 4 DIM V(320):DIM X(10):DIM A(10):DIM P(10):DIM M(10):RANDOMIZE TIMER
  2. 5 KEY OFF:CLS
  3. 6 Z=1
  4. 8 FOR A=1 TO 2:A(A)=90:M(A)=100:P(A)=200:NEXT A
  5. 10 SCREEN 2:SCREEN 1
  6. 15 GOTO 56
  7. 20 FOR A=0 TO 12:LINE (0,A)-(320,A):NEXT A
  8. 24 LOCATE 1,1:PRINT" Player"NM
  9. 25 GOSUB 26:GOSUB 27:GOTO 28
  10. 26 LOCATE 1,14:PRINT" Angle:"A(NM):RETURN
  11. 27 LOCATE 1,27:PRINT" Power:"P(NM):RETURN
  12. 28 A$=INKEY$
  13. 29 IF A$="+" THEN A(NM)=A(NM)+1:GOSUB 35
  14. 30 IF A$="-" THEN A(NM)=A(NM)-1:GOSUB 35
  15. 31 IF A$="F" THEN 48
  16. 32 IF A$="f" THEN 48
  17. 33 IF A$=" " THEN 38
  18. 34 GOTO 28
  19. 35 IF A(NM)<0 THEN A(NM)=0
  20. 36 IF A(NM)>180 THEN A(NM)=180
  21. 37 GOSUB 26:RETURN
  22. 38 A$=INKEY$
  23. 39 IF A$="+" THEN P(NM)=P(NM)+1:GOSUB 45
  24. 40 IF A$="-" THEN P(NM)=P(NM)-1:GOSUB 45
  25. 41 IF A$="F" THEN 48
  26. 42 IF A$="f" THEN 48
  27. 43 IF A$=" " THEN 28
  28. 44 GOTO 38
  29. 45 IF P(NM)<0 THEN P(NM)=0
  30. 46 IF P(NM)>1000 THEN P(NM)=1000
  31. 47 GOSUB 27:RETURN
  32. 48 A1=0:A=A(NM)
  33. 49 IF A>90 THEN A=180-A:A1=1
  34. 50 RETURN
  35. 56 PRINT:PRINT:PRINT"Enter wind (to right): (-100 to 100)"
  36. 57 INPUT W
  37. 58 W=W/20
  38. 60 X(1)=INT(RND*70)+5
  39. 62 X(2)=320-(INT(RND*70)+5)
  40. 64 SCREEN 2:SCREEN 1:GOTO 66
  41. 65 X=INT(RND*310)+5
  42. 66 IF R3=0 THEN GOSUB 210
  43. 67 FOR NM=1 TO 2
  44. 68 X=X(NM)
  45. 70 FOR C=1 TO 5 STEP .5:CIRCLE (X,V(X)),C,NM+1,,,5/5:NEXT C
  46. 75 NEXT NM
  47. 80 GOSUB 300
  48. 84 NM=INT(RND*2)+1:GOTO 87
  49. 85 NM=NM+1:IF NM>2 THEN NM=1
  50. 87 GOSUB 20
  51. 88 B=P(NM)
  52. 90 X=X(NM):Y=V(X):FY=0-((A/90)*B):FX=0-(((90-A)/90)*B)
  53. 95 IF A1=1 THEN FX=0-FX
  54. 100 LINE (X,Y)-(X,Y)
  55. 105 IF FY<0 THEN FY1=0-FY ELSE FY1=FY
  56. 106 IF FX<0 THEN FX1=0-FX ELSE FX1=FX
  57. 110 IF FY1>FX1 THEN 115
  58. 111 IF FX<0 THEN FX2=0-Z ELSE IF FX>0 THEN FX2=Z ELSE FX2=0
  59. 112 IF FX1=0 THEN IF FY1=0 THEN FX2=0:FY2=0:GOTO 118
  60. 113 IF FX<0 THEN FY2=FY/((0-FX)/Z) ELSE FY2=FY/(FX/Z)
  61. 114 GOTO 118
  62. 115 IF FY<0 THEN FY2=0-Z ELSE IF FY>0 THEN FY2=Z ELSE FY2=0
  63. 116 IF FY<0 THEN FX2=FX/((0-FY)/Z) ELSE FX2=FX/(FY/Z)
  64. 118 X=X+FX2:Y=Y+FY2
  65. 120 FY=FY+Z:FX=FX+(W*Z)
  66. 130 LINE -(X,Y),NM+1
  67. 140 X9=X
  68. 150 IF X9>320 THEN X9=320
  69. 160 IF X9<1 THEN X9=1
  70. 170 IF Y>=V(X9) THEN BEEP:GOTO 185
  71. 180 GOTO 105
  72. 185 IF X>0 THEN IF X<321 THEN GOSUB 330:GOSUB 410
  73. 200 R3=1:GOTO 85
  74. 210 FK=0:HK=INT(RND*168)+20:CK1=INT(RND*6)+2
  75. 215 CK5=INT(RND*25)+15
  76. 220 CK4=INT(RND*8)+1:FOR C=1 TO 320
  77. 230 CK=INT(RND*CK1)+1:CK3=CK3+1
  78. 235 IF CK3>1 THEN IF CK3/5<>INT(CK3/5) THEN 240 ELSE 250
  79. 240 IF CK<>1 THEN 260
  80. 250 CK2=INT(RND*2)+1:IF CK2=1 THEN FK=FK-1 ELSE FK=FK+1
  81. 255 IF FK>CK4 THEN FK=FK-1
  82. 256 IF FK<0-CK4 THEN FK=FK+1
  83. 260 HK=HK+FK:IF HK>198 THEN HK=198
  84. 265 IF HK<CK5 THEN HK=CK5:FK=0
  85. 270 V(C)=HK
  86. 280 NEXT C
  87. 290 RETURN
  88. 300 FOR C=0 TO 320
  89. 305 C1=C:IF C1=0 THEN C1=1
  90. 310 LINE (C,200)-(C,V(C1)),1
  91. 312 LINE (C,200)-(C,199),3
  92. 315 NEXT C
  93. 318 LINE (0,200)-(320,200),1
  94. 319 LINE (0,199)-(320,199),1
  95. 320 RETURN
  96. 330 FOR X5=1 TO 3
  97. 340 IF X5=1 THEN CL=3
  98. 350 IF X5=2 THEN CL=2
  99. 360 IF X5=3 THEN CL=0
  100. 370 FOR X6=0 TO 7 STEP .25
  101. 380 CIRCLE (X,Y),X6,CL,,,5/5
  102. 390 NEXT X6
  103. 400 NEXT X5:RETURN
  104. 410 REM
  105. 420 FOR X3=1 TO 15
  106. 430 H1=-7:H2=7
  107. 440 IF X3=1 THEN H1=-2:H2=2
  108. 445 IF X3=15 THEN H1=-2:H2=2
  109. 450 IF X3=14 THEN H1=-4:H2=4
  110. 455 IF X3=2 THEN H1=-4:H2=4
  111. 460 IF X3=13 THEN H1=-5:H2=5
  112. 465 IF X3=3 THEN H1=-5:H2=5
  113. 470 IF X3=12 THEN H1=-6:H2=6
  114. 475 IF X3=4 THEN H1=-6:H2=6
  115. 480 IF X3=11 THEN H1=-6:H2=6
  116. 485 IF X3=5 THEN H1=-6:H2=6
  117. 490 FOR X4=H1 TO H2 STEP 1
  118. 500 LINE (X+X4,X3+Y-7)-(X+X4,X3+Y-7),0
  119. 510 IF X+X4<1 THEN 540
  120. 520 IF X+X4>320 THEN 540
  121. 530 IF Y+X3-7>=V(X+X4) THEN LINE (X+X4,V(X+X4))-(X+X4,V(X+X4)),0:V(X+X4)=V(X+X4)+1:IF V(X+X4)>198 THEN V(X+X4)=198
  122. 535 IF Y+X3-7>=V(X+X4)-1 THEN LINE (X+X4,V(X+X4))-(X+X4,200),1
  123. 540 NEXT X4
  124. 550 NEXT X3
  125. 560 FOR NM2=1 TO 2
  126. 570 FOR C=1 TO 5 STEP .5:CIRCLE (X(NM2),V(X(NM2))),C,NM2+1,,,5/5:NEXT C
  127. 580 NEXT NM2
  128. 590 GOSUB 300:RETURN
  129.