home *** CD-ROM | disk | FTP | other *** search
/ The Glitch Apple Disk Collection / 2014.glitch.apple.collection.zip / indexed / HUMANFLY.DSK / CLIMBER.bas next >
BASIC Source File  |  2014-09-09  |  9KB  |  113 lines

  1. 2  DIM Z(10,10)
  2. 5  CLEAR :FL = 0:TF = 158: HGR : VTAB 21: HTAB 1: CALL  -958: PRINT "FLOOR -><CTRL-M>HIGHEST :": ROT= 0: SCALE= 1: POKE 232,0: POKE 233,64
  3. 20  POKE 769,2: HCOLOR= 3: FOR I = 80 TO 240  STEP 32: FOR J = 1 TO 9  STEP 1: POKE 826,J: CALL 768: HPLOT I -21 +J,0 TO I -21 +J,150: NEXT J,I
  4. 30  FOR J = 14 TO 170  STEP 15:AA = AA +1: ON AA >1 GOSUB 35: HCOLOR= 5: ON AA = 0 GOSUB 36: FOR I = 0 TO 4: POKE 826,I: CALL 768: HPLOT 58,J -14 +I TO 230,J -14 +I: NEXT I,J: GOTO 40
  5. 35 AA = 0: RETURN 
  6. 36  HCOLOR= 3: RETURN 
  7. 40  FOR J = 14 TO 154  STEP 15: FOR I = 80 TO 220  STEP 32: POKE 769,1: POKE 826,J: CALL 768: XDRAW 8 AT I,J: NEXT I,J
  8. 41  HCOLOR= 1: HPLOT 1,8 TO 1,156: HPLOT 21,8 TO 21,156: FOR I = 158 TO 8  STEP  -2: POKE 826,I: CALL 768: HCOLOR= 5: ON (A)/5 =  INT((A)/5) GOSUB 49:A = A +1: HPLOT 2,I TO 20,I: NEXT :A = 0: HCOLOR= 0: HPLOT 2,158 TO 20,158
  9. 43  HCOLOR= 3:C1 = 30: GOSUB 45:C1 = 40: GOSUB 45:NF% = 3: GOTO 50
  10. 45  HPLOT C1,150 TO C1 +6,158: HPLOT C1 +6,150 TO C1,158: HPLOT C1 +3,149 TO C1 +3,154: RETURN 
  11. 49  HCOLOR= 3: RETURN 
  12. 50 PV = 9.5:PH = 2.5:CH = 1:X2 = 128:Y2 = 140:X1 = 128:Y1 = 140: XDRAW CH AT X1,Y1
  13. 100  GOSUB 200: GOSUB 500
  14. 110  GOTO 100
  15. 130 ZZ =  FRE(0): GET A$: GOSUB 25000:Q = Q +1: VTAB 21: HTAB 10: CALL  -868: PRINT  INT(FL);:RN =  INT( RND(1) *4): ON FG GOSUB 999: ON RN = 2  AND FL >5 GOSUB 999: GOSUB 250: GOSUB 300: GOSUB 10000: XDRAW CH AT X1,Y1: XDRAW CN AT X2,Y2:X1 = X2:Y1 = Y2:CH = CN: RETURN 
  16. 200  ON DI GOSUB 1000:X =  PEEK( -16384): ON X >127 GOTO 130
  17. 210  ON HF% >50 GOTO 230
  18. 220  FOR PO = HF% TO 152: NEXT PO
  19. 230  GOTO 200
  20. 235 DI = 1:FG = 1: RETURN 
  21. 250  IF A$ = "I"  THEN CN = 2
  22. 251  IF A$ = "W"  THEN CN = 3
  23. 252  IF A$ = "L"  THEN CN = 4
  24. 253  IF A$ = "A"  THEN CN = 5
  25. 254  IF A$ = " "  THEN CN = 1
  26. 255  IF CH = 1  AND CN = 2  THEN Y2 = Y1 -7.5:X2 = X1:FL = FL +.25:PV = PV -.5
  27. 256  IF CH = 2  AND CN = 3  THEN Y2 = Y1 -7.5:X2 = X1:FL = FL +.25:PV = PV -.5
  28. 257  IF CH = 3  AND CN = 2  THEN Y2 = Y1 -7.5:X2 = X1:FL = FL +.25:PV = PV -.5
  29. 258  IF CH = 4  AND CN = 1  THEN X2 = X2 +16:Y2 = Y1:PH = PH +.5
  30. 259  IF CH = 5  AND CN = 1  THEN X2 = X2 -16:Y2 = Y1:PH = PH -.5
  31. 260  IF CH = 3  AND CN = 1  THEN Y2 = Y1 -10:X2 = X1:FL = FL +.25:PV = PV -.5
  32. 262 X3 = X2 -16:Y3 = Y2 -20:X4 = X2 +16:
  33. 270  RETURN 
  34. 300  IF X2 <60  THEN PH = 2.5: GOSUB 630: GOTO 600
  35. 305  IF X2 >220  THEN PH = 2.5: GOSUB 630: GOTO 600
  36. 310  IF Y2 <10  THEN Y2 = 140:PV = 9
  37. 320  RETURN 
  38. 500  GOSUB 200: RETURN 
  39. 600  GOSUB 620: GOSUB 5050: XDRAW CH AT X1,Y1: XDRAW 6 AT X1,Y2 -6: FOR I = Y2 TO 160  STEP 6: POKE 826,I: CALL 768: XDRAW 6 AT X1,I: XDRAW 6 AT X1,I -6: NEXT : XDRAW 6 AT X1,I -6: POP : GOSUB 630:X1 = 128:Y1 = 140:X2 = X1:Y2 = Y1: GOSUB 640:PV = 9.5:PH = 2.5:FL = FL -20: ON FL <1 GOTO 5000: GOTO 100
  40. 601 A1 = 20: RETURN 
  41. 602 A1 = 230: RETURN 
  42. 620  VTAB 21: HTAB 15: FLASH : PRINT " OH NOOOO!! ": NORMAL : ON NF% = 1 GOTO 625: HCOLOR= 0:C1 = NF% *10 +10: GOSUB 45:NF% = NF% -1: RETURN 
  43. 625 FL =  -20: RETURN 
  44. 630  ON WC GOTO 650: ON X1 = 128  AND Y1 = 128 GOTO 650: XDRAW CH AT X1,Y1: XDRAW CN AT X2,Y2:X1 = X2:Y1 = Y2:CH = CN: RETURN 
  45. 640  ON WC GOTO 660: XDRAW CH AT X1,Y1:X1 = X2:Y1 = Y2:CH = CN: RETURN 
  46. 650  RETURN 
  47. 660  XDRAW CH AT X1,Y1:WC = 0: RETURN 
  48. 999 DI = 1: RETURN 
  49. 1000  ON FL >50 GOSUB 235: ON NFINISH GOTO 1002
  50. 1001 NDIS =  INT( RND(1) *10 +1)
  51. 1002  ON NDIS GOTO 2200,4500,1400,1600,1800,2200,1003,1200,1800,2200
  52. 1003 NFINISH = 1: ON LEVEL >14 GOTO 1005:LEVEL = 14:XX =  INT((X1 -80)/32) *32 +80: XDRAW 7 AT XX,LEVEL
  53. 1005  XDRAW 7 AT XX,LEVEL: POKE 826,LEVEL: CALL 768:LEVEL = LEVEL *1.1: ON LEVEL >160 GOTO 1199: XDRAW 7 AT XX,LEVEL: ON (XX >X1 -17  AND XX <X1 +17  AND LEVEL >Y1 -20  AND LEVEL <Y1) GOTO 1100: RETURN 
  54. 1100  XDRAW 7 AT XX,LEVEL:NFINISH = 0:DI = 0: POP :LEVEL = 0: GOTO 600
  55. 1199 LEVEL = 0:DI = 0:NFINISH = 0: RETURN 
  56. 1200  ON DN GOTO 1203:NFINISH = 1:JJ = 20
  57. 1202 VR =  INT( RND(1) *60 +20):DN = 1
  58. 1203 JJ = JJ +6: ON JJ >260 GOTO 1230
  59. 1204  IF JJ >X1 -16  AND JJ <X1 +16  THEN DR = 1
  60. 1205  ON DR GOSUB 1250: ON P GOTO 1210:P = 1:S = 12: XDRAW S AT JJ,VR
  61. 1210 S = S +1: ON S >14 GOTO 1220: XDRAW S -1 AT JJ,VR: XDRAW S AT JJ +6,VR: RETURN 
  62. 1220  XDRAW 14 AT JJ,VR: XDRAW 12 AT JJ +6,VR:S = 12: ON JJ = 262 GOTO 1230: RETURN : REM    GOTO 1203
  63. 1230  ON DR GOTO 1245: XDRAW S AT 266,VR:P1 = 0:P = 0:DN = 0:NFINISH = 0:DI = 0: POP : GOTO 100
  64. 1245  GOSUB 1250: RETURN 
  65. 1250  ON P1 GOTO 1260:V1 = VR:J1 = JJ:P1 = 1: XDRAW 15 AT J1,V1
  66. 1260 V1 = V1 +12: ON (J1 >X1 -16  AND J1 <X1 +16  AND V1 >Y1 -28  AND V1 <Y1) GOTO 1300: ON V1 >160 GOTO 1270: XDRAW 15 AT J1,V1 -12: XDRAW 15 AT J1,V1: RETURN 
  67. 1270 P1 = 0: XDRAW 15 AT J1,V1 -12:DR = 0: RETURN 
  68. 1300  IF S = 14  THEN  XDRAW 14 AT JJ,VR: XDRAW 14 AT JJ +6,VR
  69. 1310  IF S = 13  THEN  XDRAW 13 AT JJ,VR: XDRAW 13 AT JJ +6,VR
  70. 1320  IF S = 12  THEN  XDRAW 12 AT JJ,VR: XDRAW 12 AT JJ +6,VR
  71. 1350  XDRAW 15 AT J1,V1: XDRAW 15 AT J1,V1 -12: POP : POP : GOTO 600
  72. 1360  GOTO 1405
  73. 1400 NFINISH = 1: ON DN GOTO 1405:DN = 1: VTAB 21: HTAB 15: INVERSE : PRINT "EARTHQUAKE": NORMAL : POKE 769,20: FOR I = 25 +((HF% <50) *(52 -HF%)) TO 1  STEP  -2: POKE 826,I: CALL 768: CALL 768: NEXT :X =  PEEK( -16384): GOSUB 1450
  74. 1405 S1 = S1 +1: ON S1 >1 GOTO 1410: GOSUB 4444: GOTO 1405
  75. 1410 NFINISH = 0:DN = 0:S1 = 0:ZZ =  FRE(0): RETURN 
  76. 1420  VTAB 21: HTAB 15: CALL  -868: POP : GOTO 600
  77. 1450  ON X < >160 GOTO 1420: RETURN 
  78. 1600 NFINISH = 1: ON DN GOTO 1605:J = 140:DN = 1
  79. 1605  SCALE= 1:J = J -10: XDRAW 17 AT 230,J: XDRAW 16 AT 230,J -10: XDRAW 18 AT 230,J -20: XDRAW 17 AT 230,J: XDRAW 16 AT 230,J -10: XDRAW 18 AT 230,J -20: ON J =  <20 GOTO 1610: SCALE= 1: ON (J >Y1 -30  AND J <Y1 +30  AND X1 >180) GOTO 1620: RETURN 
  80. 1610  SCALE= 1:NFINISH = 0:DN = 0: RETURN 
  81. 1620  POP :NFINISH = 0:J = 0:DN = 0: GOTO 600
  82. 1800 NFINISH = 1: ON DN GOTO 1805:DN = 1:Z1 =  INT((X1 -80)/32) *32 +80: POKE 769,40: FOR I = 20 TO 160  STEP 27: XDRAW 22 AT Z1 -30,I: POKE 826,I: CALL 768: NEXT :LEVEL = 160: XDRAW 19 AT Z1 +1,LEVEL: XDRAW 19 AT Z1,LEVEL: RETURN 
  83. 1805 LEVEL = LEVEL -10: ON LEVEL <40 GOTO 1820:Q1 =   NOT Q1: XDRAW 20 -Q1 AT Z1 +1,LEVEL +10: XDRAW 20 -Q1 AT Z1,LEVEL +10: XDRAW 19 +Q1 AT Z1 +1,LEVEL: XDRAW 19 +Q1 AT Z1,LEVEL: ON (LEVEL >Y1 -10  AND LEVEL <Y1 +10  AND Z1 <X1 +30  AND Z1 >X1 -30) GOTO 1810: RETURN 
  84. 1810  POP : GOTO 600
  85. 1820  XDRAW 19 AT Z1 +1,LEVEL +10: XDRAW 19 AT Z1,LEVEL +10: FOR I = 155 TO 20  STEP  -27: XDRAW 22 AT Z1 -30,I: POKE 826,I: CALL 768: NEXT : POKE 769,2:DI = 0:DN = 0:LEVEL = 0:NFINISH = 0: RETURN 
  86. 2000  POKE 0,FL: POKE 1,PV: POKE 2,PH: CLEAR :FL =  PEEK(0):PV =  PEEK(1):PH =  PEEK(2): GOTO 100
  87. 2200  REM 
  88. 2203 NFINISH = 1: ON SH GOTO 2205:SH = 1:XX =  INT(( RND(1) *5)) *32 +80:YY =  INT(( RND(1) *8)) *15 +14: XDRAW 8 AT XX,YY:WN = 8
  89. 2205  XDRAW WN AT XX,YY:WN = WN +1: ON WN = 11 GOTO 2399: XDRAW WN AT XX,YY: RETURN 
  90. 2399 ZZ =  FRE(0): XDRAW 11 AT XX,YY:NFINISH = 0:SH = 0:WH =  INT(XX/32) -1:WV =  INT(YY/15) +1:Z(WH,WV) =   NOT Z(WH,WV): RETURN 
  91. 4444  POKE 5120,0: POKE 5121,32: POKE 5122,0: POKE 5123,40: POKE 5124,255: POKE 5125,16
  92. 4445  FOR EQ = 1 TO 4: CALL 5126: CALL 5126: CALL 5126: NEXT EQ: RETURN 
  93. 4500  ON DR GOTO 4520:NFINISH = 1: ROT= 32:UU = 162:DR = 1:AR% =  SIN(UU/10) *20 +240: XDRAW 15 AT AR%,UU: ROT= 0: RETURN 
  94. 4520  ROT= 32:UU = UU -4: ON UU <8 GOTO 4530:AR% =  SIN(UU/10) *20 +240:BR% =  SIN((UU +4)/10) *20 +240: XDRAW 15 AT BR%,UU +4: ON BR% <225  AND X1 >200  AND Y1 >UU -15  AND Y1 <UU GOTO 4560: XDRAW 15 AT AR%,UU: ROT= 0: RETURN 
  95. 4530 DR = 0:NFINISH = 0: XDRAW 15 AT AR%,UU +4: ROT= 0: RETURN 
  96. 4560  ROT= 0: XDRAW CH AT X1,Y1: FOR J = 1 TO 2: FOR I = Y1 TO 0  STEP  -2: POKE 826,I: CALL 768: ROT= 0: XDRAW CH AT X1,I: ROT= 32: XDRAW 15 AT AR%,I: NEXT I,J: ROT= 0: XDRAW CH AT X1,Y1:FL = FL +10:UU = 0:DR = 0:NFINISH = 0: ROT= 0: RETURN 
  97. 5000  CALL 32800: FOR P = 1 TO 500: NEXT P: POKE  -16301,0
  98. 5010  VTAB 21: HTAB 1: CALL  -958: PRINT "GROUND FLOOR....WITH A SPLATTTT!!": POKE 769,28: FOR I = 1 TO 20: POKE 826, RND(1) *50 +10: CALL 768: NEXT : GOSUB 6000
  99. 5015  VTAB 21: HTAB 1: PRINT "ANOTHER GAME ?";: GET AN$: ON AN$ = "Y" GOTO 5: ON AN$ = "N" GOTO 5020: GOTO 5015
  100. 5020  TEXT : HOME : END 
  101. 5050  POKE 769,3: FOR I = 1 TO 50: POKE 826,I: CALL 768: NEXT : POKE 769,2: FOR I = 1 TO 150: POKE 826,I: CALL 768: NEXT : RETURN 
  102. 6000  POKE 769,60: TEXT : HOME : PRINT "HIGHEST FLOOR = ";HF%: INVERSE : FOR I = 10 TO 1  STEP  -1: VTAB I +5: HTAB 5: PRINT  SPC( 30): READ A$:Z% = 20 -( LEN(A$)/2): VTAB I +5: HTAB Z%: PRINT A$: NEXT :HR% = (HF%/20): IF HR% >9  THEN HR% = 10
  103. 6010  FOR I = 20 TO 15 -HR%  STEP  -1: VTAB I: HTAB 2: PRINT "==>";: HTAB 35: PRINT "<==": POKE 826,I: CALL 768: NEXT 
  104. 6020  NORMAL : RETURN 
  105. 6050  DATA "STAY ON 1ST FLOOR","TAKE THE ELEVATOR","TAKE THE STAIRS","MOLE HILL CLIMBER","HILL CLIMBER","MOUNTAIN CLIMBER","CLIFF CLIMBER","PART MONKEY","ALL MONKEY","HUMAN FLY!"
  106. 10000  REM    CHECK FOR OPEN WINDOW
  107. 10010  ON Z( ABS(PH), ABS(PV))  AND ( INT(PV) < >2  AND  INT(PV) < >9) GOTO 10200: RETURN 
  108. 10200 WC = 1: POP : GOTO 600: REM XDRAWCHATX1,Y1:XDRAWCNATX2,Y2
  109. 25000  ON A$ =  CHR$(17) GOTO 5020: POKE 769,1: POKE 826,80: CALL 768: CALL 768: IF FL >HF%  THEN  HCOLOR= 0: HPLOT 22,157 -(HF%/2) TO 26,157 -(HF%/2):HF% = FL: HCOLOR= 3: HPLOT 22,157 -(HF%/2) TO 26,157 -(HF%/2): VTAB 22: HTAB 10: PRINT HF%
  110. 25005 SV = 158 -(FL/2):SF = (X2/11) -2: ON SV/2 =  INT(SV/2) GOTO 25010: GOTO 25025
  111. 25010  IF SV <1  THEN SV = 1
  112. 25011  HCOLOR= 3: HPLOT SF -1,SV -1 TO SF +1,SV -1: HCOLOR= 0: HPLOT 3,TF -1 TO 19,TF -1: HPLOT SF +2,SV -1: HPLOT SF -2,SV -1:TF = SV
  113. 25025  RETURN