home *** CD-ROM | disk | FTP | other *** search
/ The CIA World Factbook 1992 / k3bimage.iso / sel / 01 / 0012 / balloon.bas (.txt) next >
Encoding:
GW-BASIC  |  1991-12-02  |  5.8 KB  |  105 lines

  1. 100  'Balloon Crazy for IBM PC/PCjr requires BASICA, Color Graphics adapter, and one joystick
  2. 110  DEFINT A-Z:RANDOMIZE TIMER:DIM BP$(3),MOBJ(452),X(49),Y(49)
  3. 120  DF=10:' change df to a smaller number for a greater challenge
  4. 130  SCREEN 1:COLOR 9,0:KEY OFF:STRIG ON::PLAY "mf":CLS
  5. 140  GOSUB 280:X=100:HP=164:EY=Y+22
  6. 150  TX=3:LX=134:SKEW!=2.27:SP!=4:LIVES=4
  7. 160  GOSUB 740:PRINT"BALLOON C R A Z Y !":LOCATE 9,10:PRINT"/":LOCATE 8,11:PRINT"Do you need":LOCATE 9,11:PRINT"to adjust":LOCATE 10,11:PRINT"your joystick?":WHILE INKEY$<>"":WEND
  8. 170  A$=INKEY$:IF A$="" AND STRIG(1)=0 THEN 170 ELSE IF (ASC(A$+CHR$(0)) OR 32)=121 THEN GOSUB 600
  9. 180  CLS:PRINT"BALLOON C R A Z Y !":LOCATE 1,25:PRINT"Score:";SC!
  10. 190  FOR I=158 TO 158 +(LIVES-2)*8 STEP 8:PUT(I,0),TINY:NEXT:GOSUB 350
  11. 200  FOR ROW=20 TO 80 STEP 20:FOR COL=45 TO 255 STEP 15:PUT (COL,ROW),BALL:NEXT COL,ROW
  12. 210  PUT(X,Y),MAN:GET (X,Y)-(X+21,EY),MOBJ
  13. 220  IF BP<0 THEN GOSUB 380:GOTO 180 ELSE BY=BP*20+20:T$=BP$(BP):PTR=0.5+RND(1)*LEN(T$):BX=(ASC(MID$(T$,PTR))-64)*15+30:T$=LEFT$(T$,PTR-1)+MID$(T$,PTR+1):BP$(BP)=T$:IF T$="" THEN BP=BP-1
  14. 230  PUT(BX,BY),BALL:BY=BY+SP!:PUT(BX,BY),BALL:IF BY>180 THEN 440
  15. 240  IF ABS(BY-HP)<SP! THEN IF ABS((BX-7)-X)<DF THEN Y=Y-13:PUT(BX,BY),BALL:PUT(X+7,Y),BALL,PSET:SOUND 30000,1:GET(X,Y)-(X+21,EY),MOBJ:HP=HP-13:FLOATERS=FLOATERS+1:SP!=SP!+0.5:IF FLOATERS=7-BP THEN GOSUB 380:GOTO 210 ELSE 220
  16. 250  PUT(X,Y),MOBJ:NX=(STICK(0)-TX)*SKEW!:X=NX:IF NX<0 THEN X=0 ELSE IF NX>297 THEN X=297
  17. 260  PUT(X,Y),MOBJ
  18. 270  GOTO 230
  19. 280  READ XS,YS:E=(4+INT((XS+7)/8)*YS)/2:DIM MAN(E):MAN(0)=XS:MAN(1)=YS:FOR I=2 TO E:READ MAN(I):NEXT:Y=200-YS:MY=Y
  20. 290  READ XS,YS:E=(4+INT((XS+7)/8)*YS)/2:DIM POP(E):POP(0)=XS:POP(1)=YS:FOR I=2 TO E:READ POP(I):NEXT
  21. 300  READ XS,YS:E=(4+INT((XS+7)/8)*YS)/2:DIM FALL(E):FALL(0)=XS:FALL(1)=YS:FOR I=2 TO E:READ FALL(I):NEXT
  22. 310  READ XS,YS:E=(4+INT((XS+7)/8)*YS)/2:DIM BALL(E):BALL(0)=XS:BALL(1)=YS:FOR I=2 TO E:READ BALL(I):NEXT
  23. 320  READ XS,YS:E=(4+INT((XS+7)/8)*YS)/2:DIM XBALL(E):XBALL(0)=XS:XBALL(1)=YS:FOR I=2 TO E:READ XBALL(I):NEXT
  24. 330  READ XS,YS:E=(4+INT((XS+7)/8)*YS)/2:DIM TINY(E):TINY(0)=XS:TINY(1)=YS:FOR I=2 TO E:READ TINY(I):NEXT
  25. 340  RETURN
  26. 350  BP=3:FOR I=0 TO BP:BP$(I)="ABCDEFGHIJKLMNO":NEXT
  27. 360  RETURN
  28. 370  GOSUB 380:GOTO 220
  29. 380  FOR I=1 TO FLOATERS
  30. 390  PUT(X,MY),POP,PSET:PUT(X+7,MY-13),BALL:PUT(X+7,MY-18),XBALL:FOR J=0 TO 5:SOUND 100+J,0.5:NEXT:PUT(X+7,MY-18),XBALL
  31. 400  IF I<FLOATERS THEN PUT(X+7,Y),BALL:PUT(X+7,MY-13),BALL
  32. 410  PUT(X,MY),MAN,PSET:FOR W=1 TO 5:NEXT:SC!=SC!+10:LOCATE 1,31:PRINT SC!:Y=Y+13:NEXT
  33. 420  Y=MY:GET (X,Y)-(X+21,EY),MOBJ:PUT (X,Y),MAN
  34. 430  SP!=4:HP=164:FLOATERS=0:RETURN
  35. 440  PUT(BX,BY),BALL:PUT(BX,BY-5),XBALL:FOR J=0 TO 5:SOUND 105-J,0.5:NEXT:PUT(BX,BY-5),XBALL
  36. 450  PUT(X,MY),MAN:PUT(X,MY),FALL
  37. 460  IF FLOATERS=0 THEN 510
  38. 470  FOR I=1 TO FLOATERS
  39. 480  PUT(X+7,MY-13),BALL:PUT(X+7,MY-18),XBALL:FOR J=0 TO 5:SOUND 105-J,0.5:NEXT:PUT(X+7,MY-18),XBALL
  40. 490  IF I<FLOATERS THEN PUT(X+7,Y),BALL:PUT(X+7,MY-13),BALL
  41. 500  FOR W=1 TO 5:NEXT:Y=Y+13:NEXT
  42. 510  NY=MY:S=-6:FOR I=X+5 TO 291 STEP 5:PUT(I-5,NY),FALL:NY=NY+S:IF NY<MY-18 OR NY>MY THEN NY=NY-S:S=-S
  43. 520  PUT(I,NY),FALL:SOUND 100+NY,0.5:NEXT
  44. 530  NX=I-5:FOR I=NY-16 TO 0 STEP-16:PUT(NX,I+16),FALL:PUT(NX,I),FALL:SOUND 5000-I*5,0.1:NEXT
  45. 540  PUT(NX,I+16),FALL
  46. 550  LIVES=LIVES-1:PUT(150+LIVES*8,0),TINY:IF LIVES>0 THEN PUT(X,MY),MAN:GOSUB 420:GOTO 210
  47. 560  CLS:FOR I=0 TO 49:X(I)=4+15*INT(20*RND(1)):Y(I)=18*INT(10*RND(1)):PUT (X(I),Y(I)),BALL,PSET:NEXT
  48. 570  FOR I=0 TO 49:PUT (X(I)-4,Y(I)),XBALL,PSET:SOUND 100+5*RND(1),0.2:SOUND 30000,0.2:PUT (X(I)-4,Y(I)),XBALL:NEXT
  49. 580  LOCATE 12,16:PRINT"GAME OVER":LOCATE 13,17-LEN(STR$(SC!))/2:PRINT"Score:";SC!:LOCATE 14,15:PRINT"Press Button"
  50. 590  A$=INKEY$:IF INKEY$="" AND STRIG(1)=0 THEN 590 ELSE RUN
  51. 600  GOSUB 740
  52. 610  LOCATE 9,10:PRINT"/":LOCATE 8,11:PRINT"Move stick to":LOCATE 9,11:PRINT"far left,":LOCATE 10,11:PRINT"press button!"
  53. 620  TX=STICK(0):IF STRIG(1)<>0 THEN 640
  54. 630  FOR I=10 TO 0 STEP-1:C=-C*(C<3)+1:LINE (30+I,40)-(I,70),C:LINE-(30+I,100),C:NEXT:GOTO 620
  55. 640  PUT(50,63),POP,PSET:PUT(57,45),XBALL,PSET:FOR J=1 TO 15:SOUND 100+J,0.5:NEXT
  56. 650  CLS:PUT (50,63),MAN:LOCATE 9,10:PRINT"/":LOCATE 8,11:PRINT"Gimme another":LOCATE 9,11:PRINT"balloon!"
  57. 660  FOR J=1 TO 2000:NEXT
  58. 670  PUT(57,0),BALL:FOR I=2 TO 50 STEP 2:WAIT &H3DA,8:PUT (57,I-2),BALL:WAIT &H3DA,8:PUT (57,I),BALL:NEXT
  59. 680  LOCATE 8,11:PRINT"Move stick to ":LOCATE 9,11:PRINT"far right,":LOCATE 10,11:PRINT"press button!"
  60. 690  LX=STICK(0):IF STRIG(1)<>0 THEN 710
  61. 700  FOR I=10 TO 0 STEP-1:C=-C*(C<3)+1:LINE (289-I,40)-(319-I,70),C:LINE-(289-I,100),C:NEXT:GOTO 690
  62. 710  FOR I=1 TO 5:PUT (57,45),XBALL,PSET:PUT(50,63),POP,PSET:FOR J=1 TO 4:SOUND 100+J,0.5:NEXT:PUT(57,50),BALL,PSET:PUT(50,63),MAN,PSET:FOR J=1 TO 100:NEXT:NEXT
  63. 720  SKEW!=297/ABS(LX-TX)
  64. 730  RETURN
  65. 740  CLS:PUT(0,63),MAN:PUT (57,0),BALL:FOR I=2 TO 50 STEP 2:PUT (57,I-2),BALL:PUT (57,I),BALL:PUT (I-2,63),MAN:PUT (I,63),MAN,PSET:NEXT:RETURN
  66. 750  DATA &H2C,&H17,&H0,&H5,&H0,&H0,&H4015,&H0
  67. 760  DATA &H0,&H5055,&H0,&H0,&H30CF,&H0,&H300,&HCC3
  68. 770  DATA &H0,&H300,&HACAA,&H0,&H0,&HA0A0,&H0,&H0
  69. 780  DATA &H802A,&H0,&H0,&HF,&H0,&HE00,&HEEEE,&HC0
  70. 790  DATA &HFB00,&HBBBB,&HB0,&HC003,&HE0EE,&H3C,&HF,&H803B
  71. 800  DATA &HF,&HFF,&HC02E,&HF00F,&H0,&H4015,&H0,&H0
  72. 810  DATA &HA0AA,&H0,&H0,&HA0AA,&H0,&H200,&HA8A0,&H0
  73. 820  DATA &H200,&HA8A0,&H0,&HA00,&H2A80,&H0,&HA37,&H2A80
  74. 830  DATA &HC00D,&HDADD,&H3AC0,&H7077,&H7737,&H1D40,&HC0DD,&HA800
  75. 840  DATA &H2C,&H17,&H800,&H5,&H0,&HA000,&H4015,&H0
  76. 850  DATA &H8003,&H5055,&H0,&HC003,&HC3,&H0,&H30F,&H3CCF
  77. 860  DATA &H0,&H30F,&HACAA,&H0,&HC003,&HA0A0,&H0,&HF003
  78. 870  DATA &H802A,&H0,&HFC00,&HF,&H0,&H2E00,&HEEEE,&HC0
  79. 880  DATA &HB00,&HBBBB,&HBC,&H0,&HE0EE,&HFF,&H0,&H803B
  80. 890  DATA &HF,&H0,&HC02E,&HC003,&H0,&H4015,&HC003,&H0
  81. 900  DATA &HA0AA,&HC000,&H0,&HA0AA,&H0,&H200,&HA8A0,&H0
  82. 910  DATA &H200,&HA8A0,&H0,&HA00,&H2A80,&H0,&HA37,&H2A80
  83. 920  DATA &HC00D,&HDADD,&H3AC0,&H7077,&H7737,&H1D40,&HC0DD,&HA800
  84. 930  DATA &H38,&H16,&H0,&H0,&H0,&H0,&H0,&H0
  85. 940  DATA &H0,&H0,&H1400,&H0,&H0,&H0,&H55,&H0
  86. 950  DATA &H0,&H55F1,&H4F,&H0,&HF303,&HCF3C,&HC0,&HF00
  87. 960  DATA &HF30C,&HF0F0,&H0,&HF3C,&HF0AA,&H3C,&H3C00,&H820E
  88. 970  DATA &H3CB0,&H0,&H23F,&H8028,&HFC,&HF00,&HFFC0,&HF003
  89. 980  DATA &H0,&HFB03,&HBFBB,&H0,&H0,&HEE3E,&HEC,&H0
  90. 990  DATA &H300,&H80BB,&H0,&H0,&HEE00,&H0,&H7700,&H0
  91. 1000  DATA &HBB,&HDD00,&HC01D,&H5500,&H300,&H774,&HA240,&H8AAA
  92. 1010  DATA &HD001,&HE201,&HAAAA,&H8BAA,&H40,&HAA7A,&HAAAA,&HAD
  93. 1020  DATA &H1A00,&H820A,&HA4A0,&H0,&H4,&H0,&H10,&HA002
  94. 1030  DATA &H14,&HD,&HA802,&H2A00,&H80BE,&HAFAA,&HAAA0,&HA0AF
  95. 1040  DATA &HAFAA,&HAAA0,&HA0AF,&HAE2A,&H2A80,&H80AA,&HAA0A,&H200
  96. 1050  DATA &HA8,&HA000,&H0,&H40,&H1,&H200,&HA8
  97. 1060  DATA &H26,&H12,&H2020,&H20,&H0,&H2800,&H0,&H0
  98. 1070  DATA &H2828,&H800,&H2028,&HA8,&H2A00,&HA002,&H28,&H8202
  99. 1080  DATA &H2080,&H202,&HA80,&H2000,&H0,&H8,&HA000,&HA088
  100. 1090  DATA &H8,&H8028,&H2880,&H0,&H88A2,&HAA0,&H200,&H808A
  101. 1100  DATA &HA000,&H2800,&H0,&H2000,&H0,&H200,&H8000,&H0
  102. 1110  DATA &H80A,&HA0,&H400,&H2000,&H0,&H10,&H0,&H0
  103. 1120  DATA &HE,&HA,&H1,&HC00F,&HC00E,&H3,&HB03B,&HCCCE
  104. 1130  DATA &H1,&H800A,&HA028,&H1450,&H30CF
  105.