Advertisement
Guest User

Untitled

a guest
Jul 14th, 2018
339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 210 CLS:SCREEN 0
  2. 220 CL=38:RW=20
  3. 230 CA=45:CN=5
  4. 240 CX=3:PX=CL-5:SC=0:LV=3
  5. 245 S=TIME
  6. 250 PI=3.1415
  7. 300 REM === Play game
  8. 310 CV = INT(RND(1)*15)+10:GOSUB 4010:GOSUB 2010
  9. 320 GOSUB 2510
  10. 330 IF K$="a" THEN CA=CA+5:IF CA>85 THEN CA=85
  11. 340 IF K$="z" THEN CA=CA-5:IF CA<15 THEN CA=15
  12. 350 IF K$="q" THEN END
  13. 360 IF K$=" " THEN 410
  14. 370 GOSUB 1010
  15. 380 GOTO 320
  16. 400 REM === fire
  17. 410 LX = (CN+1) * COS((360-CA)*PI/180)
  18. 412 BEEP
  19. 415 LY = (CN+1) *SIN((360-CA)*PI/180)
  20. 420 BX=CX+LX:BY=RW+LY
  21. 430 GOSUB 1510
  22. 440 VX= CV*COS((360-CA)*PI/180)
  23. 445 VY= CV*SIN((360-CA)*PI/180)
  24. 500 REM == move player and ball
  25. 510 GOSUB 2510
  26. 520 IF K$="o" THEN PX=PX-1: IF PX<CX+CN THEN PX=CX+CN
  27. 530 IF K$="p" THEN PX=PX+1: IF PX>CL-1 THEN PX=CL-1
  28. 540 GOSUB 2010
  29. 550 BX=BX+(VX/10):BY=BY+(VY/10):GOSUB 1510
  30. 560 VY=VY+2
  31. 570 IF BY<RW THEN 510
  32. 580 P$=" ":X1%=BX%:Y1%=BY%:GOSUB 3510
  33. 600 REM == score or die
  34. 610 LX=BX-BX%:LY=BY-BY%:L2=RW-BY%
  35. 620 IX=BX%+LX*(L2/LY)
  36. 630 IF IX>=PX-1 AND IX<=PX+1 THEN SC=SC+10:PLAY"cd":GOTO 310
  37. 635 PLAY"ed"
  38. 640 LV=LV-1:GOSUB 4010
  39. 650 IF LV<1 THEN P$="Game over":X1%= (CL-LEN(P$))/2:Y1%=RW/2:GOSUB 3510:PLAY"edc":END
  40. 660 GOTO 310
  41. 1000 REM === draw cannon
  42. 1010 IF (CA=LA) THEN RETURN
  43. 1020 P$="Angle:"+STR$(CA)+" ":X1%=0:Y1%=1:GOSUB 3510
  44. 1030 LX=CN*COS((360-LA)*PI/180)
  45. 1035 LY=CN*SIN((360-LA)*PI/180)
  46. 1036 REM RETURN
  47. 1040 X1=CX:Y1=RW:X2=X1+LX:Y2=Y1+LY:P$=" ":GOSUB 3010
  48. 1050 LX=CN*COS((360-CA)*PI/180)
  49. 1055 LY=CN*SIN((360-CA)*PI/180)
  50. 1060 X2=X1+LX:Y2=Y1+LY:P$="%":GOSUB 3010
  51. 1070 LA=CA:RETURN
  52. 1500 REM === draw ball
  53. 1510 X1%=BX:Y1%=BY:P$="o":GOSUB 3510
  54. 1520 IF BX%<> X1% OR BY%<> Y1% THEN X1%=BX%:Y1%=BY%:P$=" ":GOSUB 3510
  55. 1530 BX%=BX:BY%=BY
  56. 1540 RETURN
  57. 2000 REM === draw player
  58. 2010 P$="U":X1%=PX:Y1%=RW:GOSUB 3510
  59. 2020 IF PX%<>X1% THEN X1%=PX%:P$=" ":GOSUB 3510
  60. 2030 PX%=PX
  61. 2040 RETURN
  62. 2500 REM == keyboard
  63. 2510 K$=INKEY$
  64. 2520 RETURN
  65. 3000 REM === plot a line
  66. 3010 X1%=X1:X2%=X2:Y1%=Y1:Y2%=Y2
  67. 3020 DX%=ABS(X2%-X1%):SX%=-1:IF X1%<X2% THEN SX%=1
  68. 3030 DY%=ABS(Y2%-Y1%):SY%=-1:IF Y1%<Y2% THEN SY%=1
  69. 3040 ER%=-DY%:IF DX%>DY% THEN ER%=DX%
  70. 3050 ER%=ER%/2
  71. 3060 GOSUB 3510
  72. 3070 IF X1%=X2% AND Y1%=Y2% THEN RETURN
  73. 3080 E2%=ER%
  74. 3090 IF E2%>-DX% THEN ER%=ER%- DY%:X1%=X1%+SX%
  75. 3100 IF X1%=X2% AND Y1%=Y2% THEN RETURN
  76. 3110 IF E2%< DY% THEN ER%=ER%+ DX%:Y1%=Y1%+SY%
  77. 3120 IF X1%=X2% AND Y1%=Y2% THEN RETURN
  78. 3130 GOTO 3060
  79. 3500 REM === plot a point
  80. 3510 REM 1%<1 OR X1%>CL OR Y1<1 OR Y1%>RW THEN RETURN
  81. 3520 LOCATE X1%,Y1%:PRINT P$
  82. 3540 RETURN
  83. 3999 REM
  84. 4000 REM === score
  85. 4010 P$="Velocity:"+STR$(CV)+" ":X1%=CL/3:Y1%=1:GOSUB 3510
  86. 4020 P$="Score:"+STR$(SC)+" ":X1%=CL*2/3:GOSUB 3510
  87. 4030 P$=MID$("   UUU",LV+1,3):X1%=CL-4:GOSUB 3510
  88. 4040 RETURN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement