home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 5 / FREESOFT.BIN / fb386 / t_ufo / game_ufo.bas < prev    next >
BASIC Source File  |  1992-08-19  |  15KB  |  388 lines

  1. 1000 '●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○
  2. 1010 '○                                ●
  3. 1020 '●  REPAIR A UFO                   ○
  4. 1030 '○                                ●
  5. 1040 '●             by Tomokazu.Sato   ○
  6. 1050 '○                                ●
  7. 1060 '●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○
  8. 1070 SCREEN@2:CLS:PALETTE 255,0,1
  9. 1080 FOR K=0 TO 360 STEP 20
  10. 1090 S=3.14!*K/180:X=SIN(S)*128:Y=COS(S)*30
  11. 1100 CIRCLE(X+320,Y+256),30,7,,,,F
  12. 1110 NEXT
  13. 1120 CIRCLE(320,256),80,7,.5!,,,F
  14. 1130 SYMBOL(192,240),"MARUTOMO",2,2,7,,XOR,1
  15. 1140 FOR K=0 TO 255 STEP 3
  16. 1150 PALETTE 255,[K,K,K],1
  17. 1160 NEXT
  18. 1170 WAIT 100
  19. 1180 FOR K=255 TO 0 STEP -3
  20. 1190 PALETTE 255,[K,K,K],1
  21. 1200 NEXT
  22. 1210 CLS:PALETTE 255,7,1
  23. 1220 '本体
  24. 1230 CLEAR ,,256,600000:RANDOMIZE TIME:DEFINT A-Z:ON ERROR GOTO *ERS
  25. 1240 SCREEN@1:SPRITE ON:SPRITE SCREEN 1:LOAD@"FM_1.FMB"
  26. 1250 ON ERROR GOTO 0
  27. 1260 DIM M(15,11),P(100000),A(50000),XX(12),YY(12)
  28. 1270 DIM AA(5,10000),B(10000),C(10000),X(192),D(10000),PO(10000)
  29. 1280 COLOR 7,[0,0,0,1]:SP=2:SPP=3:WO=2:DM=200
  30. 1290 HAGIME=1:GOSUB *S5
  31. 1300 LOAD@"JIRO.TIF"
  32. 1310 GET@A(0,0)-(47,127),PO
  33. 1320 FOR Y=0 TO 1:FOR X=0 TO 1
  34. 1330 GET@A(135+X*16,135+Y*16)-(150+X*16,150+Y*16),A
  35. 1340 DEF SPRITE 0,40+(X+Y*2)*4,A,1
  36. 1350 NEXT X,Y
  37. 1360 DEF SPRITE 1,10,(480,120),40,2,2:SPRITE 0,10,1
  38. 1370 CLS:COLOR 7,2
  39. 1380 FOR I=0 TO 3
  40. 1390 SYMBOL(25+I,30+I),"REPAIR A UFO",1.5!,2,7,,PASTEL,1
  41. 1400 NEXT
  42. 1410 COLOR 7,0
  43. 1420 SYMBOL(100,200), "PUSH [A] BUTTON",.7!,.7!,7
  44. 1430 FOR I=0 TO 300:X=RND*319:Y=RND*79+100:PSET(X,Y),RND*3+3:NEXT
  45. 1440 FOR Y=0 TO 4:FOR X=0 TO 15
  46. 1450 GET@A(X*16,Y*16+100)-(X*16+15,Y*16+115),A
  47. 1460 DEF SPRITE 0,100+(X+Y*16)*4,A,1
  48. 1470 NEXT X,Y
  49. 1480 LINE(0,100)-(319,180),PSET,0,BF
  50. 1490 DEF SPRITE 1,20,(0,100),100,16,5:SPRITE 0,20,1
  51. 1500 DEF SPRITE 1,120,(256,100),100,16,5:SPRITE 0,120,1
  52. 1510 LINE(0,0)-(100,16),PSET,[0,0,0,1],BF
  53. 1520 CIRCLE(16,7),10,[155,155,155],.5!,,,F
  54. 1530 CIRCLE(16,7),15,[250,250,0],.05!,,,F
  55. 1540 FOR I=0 TO 6
  56. 1550 CIRCLE(40,7),7-I,[100+I*8,200+I*8,0],.8!,,,F
  57. 1560 NEXT
  58. 1570 FOR I=0 TO 2
  59. 1580 GET@A(16*I,0)-(16*I+15,15),A:DEF SPRITE 0,I*4,A,1
  60. 1590 NEXT
  61. 1600 LINE(0,0)-(100,16),PSET,0,BF
  62. 1610 DEF SPRITE 1,0,(200,130),0,2:SPRITE 0,0,1
  63. 1620 FOR I=2 TO 8:DEF SPRITE 1,I,(500-RND*500,100+RND*65),8,,,1:SPRITE 0,I,1:NEXT
  64. 1630 LINE(50,185)-(250,192),PSET,6,BF
  65. 1640 SPRITE 6,0,,RND*4-2:SPRITE 6,20,SP:SPRITE 6,120,SP:SPRITE TIME
  66. 1650 SPRITE 6,,IX:IX=IX+SPP AND 511
  67. 1660 IF WORLD=1 THEN SPRITE 6,10,WO:TH=TH+1
  68. 1670 Y(0)=SPRITE(0,7):P=PAD(1)
  69. 1680 IF P=5 THEN SPRITE 6,0,,1
  70. 1690 IF P=1 THEN SPRITE 6,0,,-1
  71. 1700 IF Y(0)<99 THEN SPRITE 6,0,,2
  72. 1710 IF Y(0)>165 THEN SPRITE 6,0,,-2
  73. 1720 FOR I=2 TO 8:X(I)=SPRITE(I,6)+IX AND 511:Y(I)=SPRITE(I,7)
  74. 1730 IF X(I)>192 AND X(I)<224 AND Y(I)>Y(0)-15 AND Y(I)<Y(0)+15 AND WORLD=0 THEN PLAY"@67O1V15C32A64":DM=DM-3:LINE(50,185)-(250,192),PSET,0,BF:LINE(50,185)-(50+DM,192),PSET,6,BF:IF DM<=0 THEN WORLD=1
  75. 1740 IF X(I)>319 AND WORLD=1 THEN SPRITE 6,I,-SPP
  76. 1750 NEXT
  77. 1760 IF TH>170/WO THEN 1790
  78. 1770 IF PTRIG(1)<>1 THEN 1640
  79. 1780 '
  80. 1790 COLOR 7,0:CLS:SPRITE OFF:DEF SPRITE 99,0:PLAY "U0"
  81. 1800 MOUSE 5
  82. 1810 ON ERROR GOTO 0
  83. 1820 A=0:X=0:Y=0:P=0:TH=0:WO=0:SP=0:SPP=0:WORLD=0:DM=0:IX=0:I=0:Q=0
  84. 1830 LOCATE 35,10:PRINT "つづき"
  85. 1840 LOCATE 35,11:PRINT "はじめる"
  86. 1850 LOCATE 35,12:PRINT "マップ作成"
  87. 1860 LOCATE 35,13:PRINT "STORY"
  88. 1870 LOCATE 35,14:PRINT "END"
  89. 1880 COLOR 5
  90. 1890 LOCATE 31,10:PRINT "◆"
  91. 1900 LINE(109,86)-(201,151),PSET,[150,150,150],B
  92. 1910 LINE(110,87)-(200,150),PSET,[200,200,200],B
  93. 1920 LINE(111,88)-(199,149),PSET,[150,150,150],B
  94. 1930 P1=PAD(1)
  95. 1940 IF Q<>0 AND P1=1 THEN Q=Q-1
  96. 1950 IF Q<>4 AND P1=5 THEN Q=Q+1
  97. 1960 IF P1 THEN FOR I=0 TO 4:LOCATE 31,10+I:PRINT "  ":NEXT:LOCATE 31,10+Q:PRINT "◆" ELSE 1980
  98. 1970 IF PAD(1) THEN 1970
  99. 1980 IF PTRIG(1)=0 THEN 1930 ELSE COLOR 7:ON Q+1 GOTO *LO,*STA,*ED,*STO,*EN
  100. 1990 *EN:END
  101. 2000 *ERS
  102. 2010 RESUME NEXT
  103. 2020 '♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯
  104. 2030 '♯♯♯                                                        ♯♯♯
  105. 2040 '♯♯♯  REPAIR A UFO      MAP EDIT                ♯♯♯
  106. 2050 '♯♯♯                                V2.0                    ♯♯♯
  107. 2060 '♯♯♯                                                        ♯♯♯
  108. 2070 '♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯
  109. 2080 *ED
  110. 2090 ON ERROR GOTO 2320
  111. 2100 SCREEN@1:CLS:A=1
  112. 2110 SYMBOL(20,40),"何面を作るんですか",2,2,7
  113. 2120 LINE(150,150)-(200,200),PSET,0,BF
  114. 2130 SYMBOL(150,150),STR$(A),2,2,7
  115. 2140 P1=PAD(1)
  116. 2150 IF P1=1 AND A<>50 THEN A=A+1:FOR I=0 TO 500:NEXT:GOTO 2120
  117. 2160 IF P1=5 AND A<>1  THEN A=A-1:FOR I=0 TO 500:NEXT:GOTO 2120
  118. 2170 IF PTRIG(1)<>1 THEN 2140
  119. 2180 A$=MID$(STR$(A),2)
  120. 2190 MOUSE 0
  121. 2200 MOUSE 1,,,1
  122. 2210 CLS
  123. 2220 PUT@A(0,0)-(47,127),PO
  124. 2230 GET@A(32,0)-(47,15),AA
  125. 2240 GET@A(32,16)-(47,31),AA,256
  126. 2250 GET@A(32,32)-(47,47),AA,512
  127. 2260 GET@A(16,0)-(31,15),AA,768
  128. 2270 GET@A(16,32)-(31,47),AA,1024
  129. 2280 GET@A(16,16)-(31,31),AA,1280:CLS
  130. 2290 ERASE M:DIM M(15,11)
  131. 2300 LOAD@"T_MAP\M"+A$+".MAP",M
  132. 2310 GOTO 2330
  133. 2320 RESUME 2330
  134. 2330 FOR Y=0 TO 11
  135. 2340 FOR X=0 TO 15
  136. 2350 PUT@A(X*16+1,Y*16+1)-(X*16+15+1,Y*16+15+1),AA,,,,,M(X,Y)*256
  137. 2360 NEXT X,Y
  138. 2370 ON ERROR GOTO 0
  139. 2380 ON ERROR GOTO *ER
  140. 2390 LINE(0,0)-(257,193),PSET,7,B
  141. 2400 SYMBOL(50,200),A$+"面",1,1,7
  142. 2410 X=MOUSE(0)-8:Y=MOUSE(1)-8:XX=X/16:XX=XX*16+1:YY=Y/16:YY=YY*16+1
  143. 2420 M1=MOUSE(2,0):M2=MOUSE(2,1)
  144. 2430 IF M2 THEN P=P+1:M3=1:IF P=6 THEN P=0
  145. 2440 IF M2 THEN M3=0:PUT@A(300,0)-(315,15),AA,,,,,256*P:WHILE MOUSE(2,1)=-1:WEND
  146. 2450 IF M1 AND X<>-8 AND Y<>-8 AND X<248 AND Y<184 THEN PUT@A(XX,YY)-(XX+15,YY+15),AA,,,,,256*P:M(XX/16,YY/16)=P
  147. 2460 IF M1 AND M2 THEN SAVE@"M"+A$+".MAP",M:GOTO 1790
  148. 2470 GOTO 2410
  149. 2480 *ER
  150. 2490 IF ERR=75 OR ERR=73 OR ERR=72 THEN SYMBOL(20,200),"このディスクにはセーブできません",1,1,7:WHILE MOUSE(2,0)=-1:WEND:WHILE MOUSE(2,0)=0:WEND:RESUME 1790
  151. 2500 KILL"M"+A$+".MAP":SAVE@"M"+A$+".MAP",M:MOUSE 5:RESUME 1790
  152. 2510 '♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯
  153. 2520 '♯♯♯                                                        ♯♯♯
  154. 2530 '♯♯♯  REPAIR A UFO      V6.0                    ♯♯♯
  155. 2540 '♯♯♯                                                        ♯♯♯
  156. 2550 '♯♯♯                                                        ♯♯♯
  157. 2560 '♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯♯
  158. 2570 *STA
  159. 2580 ST=1
  160. 2590 ON ERROR GOTO *ER2
  161. 2600 CLS:W=32:I=0
  162. 2610 PUT@A(0,0)-(47,127),PO:SPRITE ON:SPRITE SCREEN(40,0)
  163. 2620 GET@A(32,0)-(47,15),P
  164. 2630 PUT@A(32,48)-(47,63),P
  165. 2640 PUT@A(32,64)-(47,79),P
  166. 2650 GET@A(32,32)-(47,47),P
  167. 2660 PUT@A(32,80)-(47,95),P
  168. 2670 FOR X=0 TO 1
  169. 2680 FOR Y=0 TO 7
  170. 2690 GET@A(X*16,Y*16)-(X*16+15,Y*16+15),P
  171. 2700 DEF SPRITE 0,I*4,P,1
  172. 2710 I=I+1
  173. 2720 NEXT Y,X
  174. 2730 FOR X=0 TO 7
  175. 2740 GET@A(X*16,0)-(X*16+15,127),P,X*128*16
  176. 2750 NEXT X
  177. 2760 LOAD@ "T_MAP\M"+MID$(STR$(ST),2)+".MAP",M
  178. 2770 CLS
  179. 2780 SYMBOL(120,20),"STAGE"+STR$(ST),1,.5!,7
  180. 2790 K=0:FOR Y=0 TO 11
  181. 2800 FOR X=0 TO 15
  182. 2810 PUT@A(X*16+W,Y*16+W)-(X*16+15+W,Y*16+15+W),P,,,,,M(X,Y)*256+256*16
  183. 2820 IF M(X,Y)=1 THEN M(X,Y)=2:GOTO 2840
  184. 2830 IF M(X,Y)=2 THEN M(X,Y)=1
  185. 2840 IF M(X,Y)=3 THEN U=U+1:M(X,Y)=U+5:DEF SPRITE 1,U,(X*16-40+W,Y*16+W),32:SPRITE 0,U,1
  186. 2850 IF M(X,Y)=4 THEN M(X,Y)=0:XX=X:YY=Y:DEF SPRITE 1,0,(X*16-40+W,Y*16+W),40:SPRITE 0,0,1
  187. 2860 IF M(X,Y)=5 THEN U=U+1:M(X,Y)=U+261:DEF SPRITE 1,U,(X*16-40+W,Y*16+W),36:SPRITE 0,U,1:K=K+1
  188. 2870 NEXT X,Y:U=U-K
  189. 2880 X=XX:Y=YY:XX=0:YY=0
  190. 2890 P1$="@12L1O1V12CE-E<G+":P2$="L8@76(CCCCCCCCCCCCCCCC)2"
  191. 2900 P1=PAD(1):P2=PTRIG(1):GI&=GI&+1
  192. 2910 IF GI&=200000 THEN P1=1:GOTO 3140
  193. 2920 IF PLAY(0)=0 THEN PLAY P1$,P2$
  194. 2930 IF P1=1 THEN YY=-1
  195. 2940 IF P1=5 THEN YY=+1
  196. 2950 IF P1=3 THEN XX=+1
  197. 2960 IF P1=7 THEN XX=-1
  198. 2970 IF (P1 MOD 2)=0 AND P2=0 THEN 2900
  199. 2980 IF M(X+XX,Y+YY)<>2 THEN X=X+XX:Y=Y+YY ELSE BEEP:P1=0
  200. 2990 IF M(X,Y)>5 AND M(X+XX,Y+YY)<2 THEN BO=(M(X,Y) AND 255)-5:M(X+XX,Y+YY)=M(XX+X,YY+Y)*256+(M(X,Y) AND 255):M(X,Y)=M(X,Y)\256
  201. 3000 IF BO AND M(X+XX,Y+YY)>255 AND M(X,Y)=0 THEN U=U-1:SPRITE 1,BO,36
  202. 3010 IF BO AND M(X+XX,Y+YY)<256 AND M(X,Y)=1 THEN U=U+1:SPRITE 1,BO,32
  203. 3020 IF M(X,Y)>5 AND M(X+XX,Y+YY)>1 THEN X=X-XX:Y=Y-YY:P1=0
  204. 3030 IF (P1 MOD 2)=0 THEN 3130
  205. 3040 FOR I=0 TO 15
  206. 3050 FOR TX=0 TO 30
  207. 3060 IF PLAY(0)=0 THEN PLAY P1$,P2$
  208. 3070 NEXT TX
  209. 3080 SPRITE 6,0,XX,YY
  210. 3090 IF BO>0 THEN SPRITE 6,BO,XX,YY
  211. 3100 IF H=5 THEN H=0:S=4-S:SPRITE 1,0,S+(P1-1)*4
  212. 3110 H=H+1
  213. 3120 NEXT
  214. 3130 XX=0:YY=0:BO=0
  215. 3140 IF P2=1 THEN PLAY OFF:PLAY "V15@74O4A1":FOR I=0 TO 5:SPRITE 1,0,40+I*4:FOR T=0 TO 1000:NEXT T,I:SPRITE OFF:U=0:GOTO 1790
  216. 3150 IF U=0 THEN ST=ST+1:IF ST=51 THEN ENDING=1:GOTO *STO ELSE 3240
  217. 3160 GOTO 2900
  218. 3170 '
  219. 3180 FOR I=0 TO 100
  220. 3190 DEF SPRITE 1,I,(0,0),48
  221. 3200 NEXT
  222. 3210 PIO=0:U=0:GI&=0
  223. 3220 GOTO 2760
  224. 3230 '
  225. 3240 OPEN "O",#1,"MEN.SAV"
  226. 3250 PRINT #1,ST
  227. 3260 CLOSE
  228. 3270 GOTO 3180
  229. 3280 *ER2
  230. 3290 IF ERR=75 THEN RESUME 3260
  231. 3300 KILL"MEN.SAV"
  232. 3310 RESUME 3240
  233. 3320 'LOAD
  234. 3330 *LO
  235. 3340 A=0:ST=0:W=0:I=0:P=0:M=0:TX=0:T=0:X=0:Y=0:XX=0:YY=0:U=0:K=0:S=0:H=0:BO=0:I=0:GI&=0:P1=0:P2=0:PIO=0:ENDING=0:STT=0
  236. 3350 CLS:ON ERROR GOTO 0:ON ERROR GOTO *ER3
  237. 3360 OPEN "I",#1,"MEN.SAV"
  238. 3370 INPUT #1,ST
  239. 3380 CLOSE:ON ERROR GOTO 0
  240. 3390 STT=ST
  241. 3400 SYMBOL(50,50),"何面にしますか",2,2,7
  242. 3410 LINE(150,150)-(200,200),PSET,0,BF
  243. 3420 SYMBOL(150,150),STR$(ST),2,2,7
  244. 3430 P=PAD(1)
  245. 3440 IF P=1 AND STT<>ST THEN ST=ST+1:FOR I=0 TO 900:NEXT:GOTO 3410
  246. 3450 IF P=5 AND ST<>1 THEN ST=ST-1:FOR I=0 TO 900:NEXT:GOTO 3410
  247. 3460 IF PTRIG(1)=1 THEN 2590 ELSE 3430
  248. 3470 '
  249. 3480 *STO
  250. 3490 HAGIME=0
  251. 3500 VIEW(0,0)-(511,255)
  252. 3510 WINDOW(0,0)-(511,255)
  253. 3520 DEFSNG V:PLAY OFF:DEF SPRITE 99,0
  254. 3530 IF ENDING=1 THEN RESTORE 4020:S=4:SPRITE ON:SPRITE SCREEN (0,0):SPRITE SCREEN 1
  255. 3540 PUT@A(0,0)-(47,127),PO
  256. 3550 LINE(16,0)-(31,31),PSET,[0,0,0,1],BF
  257. 3560 FOR I=0 TO 4
  258. 3570 GET@A(32,48+16*I)-(47,63+16*I),C
  259. 3580 DEF SPRITE 0,I*4,C,1
  260. 3590 NEXT
  261. 3600 GET@A(16,32)-(31,47),B
  262. 3610 PAINT@(16,32),6
  263. 3620 GET@A(16,32)-(31,47),C
  264. 3630 CLS
  265. 3640 LINE(0,0)-(511,255),PSET,[0,0,0,1],BF
  266. 3650 FOR I=0 TO 58
  267. 3660 CIRCLE(410,31),58-I,[I*2+125,I*2+125,I*2+125],.5!,,,F
  268. 3670 NEXT
  269. 3680 FOR I=0 TO 60
  270. 3690 CIRCLE(410,31),85-I,[I*3+70,I*3+70,0],.1!,,,F
  271. 3700 NEXT
  272. 3710 GET@A(320,0)-(500,62),A
  273. 3720 CLS
  274. 3730 CONSOLE 22,2,0
  275. 3740 READ A$:IF A$="A" THEN S=S+1:ON S GOSUB *S1,*S2,*S3,*S2,*S1,*S2,*S3,*S4,*S2,*S5,*S1,*S6:IF EN=1 THEN 1790 ELSE 3740
  276. 3750 IF A$="" THEN 1790
  277. 3760 PRINT A$:I=0
  278. 3770 I=I+1
  279. 3780 IF PTRIG(1) THEN 3800
  280. 3790 IF I<>10000 THEN 3770
  281. 3800 WHILE PTRIG(1)=1:WEND
  282. 3810 GOTO 3740
  283. 3820 DATA A
  284. 3830 DATA             ------20XX年------
  285. 3840 DATA あるところに星を見るのが大好きなジロー君がいました。
  286. 3850 DATA ジロー君は毎晩空を見ていました。
  287. 3860 DATA そんなある日、ジロー君は不気味な赤い色の星を発見しました。
  288. 3870 DATA 次の日、そのほしを見ようと空を見ると・・・
  289. 3880 DATA A
  290. 3890 DATA ジロー君の所にUFOが来て・・・
  291. 3900 DATA A
  292. 3910 DATA ジロー君はつかまえられてしまいました。
  293. 3920 DATA 宇宙人「■*=§※〒&($!!)」
  294. 3930 DATA ジロー君は「自動ほんやくき」を使った。
  295. 3940 DATA 宇宙人「おまえが、各部屋にある「超強力接着機」を、「ひび」がはいったブロックの上に
  296. 3950 DATA "         全部もっていけば、おまえをこの船からだしてやろう。"
  297. 3960 DATA "         ただし、もしそれができなければ、"
  298. 3970 DATA "         おまえは生きてここから出ることはできないだろう。」"
  299. 3980 DATA と言うと、何かのスイッチを押した。
  300. 3990 DATA すると、ジロー君は気絶してしまった。
  301. 4000 DATA A
  302. 4010 DATA 
  303. 4020 DATA A,A,A,A,A,A
  304. 4030 DATA " "
  305. 4040 DATA 1,-1,20,1,0,10,1,1,5,1,1,1,0,1,20,-2,0,95,0,0,2,0,0,35,0,0,0
  306. 4050 DATA A,A,A
  307. 4060 *S1
  308. 4070 LINE(0,180)-(319,199),PSET,[150,0,0],BF
  309. 4080 IF ENDING=0 THEN PUT@A(152,164)-(167,179),B
  310. 4090 RETURN
  311. 4100 *S2
  312. 4110 IF S=2 OR S=6 THEN FOR Y=-60 TO 40:GOTO 4130
  313. 4120 FOR Y=40 TO -60 STEP -1
  314. 4130 PUT@A(-20,Y)-(160,Y+62),A,,2:PLAY "V15@80O1C32"
  315. 4140 NEXT
  316. 4150 RETURN
  317. 4160 *S3
  318. 4170 V=1
  319. 4180 IF ENDING=0 THEN FOR Y=0 TO 63:V=V-.01! ELSE V=.37!:FOR Y=63 TO 0 STEP -1:V=V+.01!
  320. 4190 PLAY "@80O4L52N"+STR$(INT(Y/2)+50)
  321. 4200 CONNECT(150,101)-(100,179)-(220,179)-(170,101),6,,F,6
  322. 4210 PUT@A(152+Y/35,164-Y)-(167+Y/35,179-Y),C,,V,V
  323. 4220 CONNECT(150,101)-(100,179)-(220,179)-(170,101),0,,F,0
  324. 4230 NEXT
  325. 4240 IF ENDING=1 THEN PUT@A(152,164)-(167,179),B
  326. 4250 RETURN
  327. 4260 *S4
  328. 4270 DEF PEN 0,8
  329. 4280 CONNECT(140,-20)-(120,20)-(140,30)-(120,70)-(140,80)-(120,120),6
  330. 4290 PLAY"@76O1L128(CCCCC)4"
  331. 4300 LINE(0,0)-(319,101),PSET,0,BF
  332. 4310 LINE(0,103)-(319,150),PSET,0,BF
  333. 4320 PUT@A(-20,40)-(160,102),A,,2
  334. 4330 FOR I=0 TO 20
  335. 4340 DEF SPRITE 1,0,(RND*160+40,40+RND*50),0
  336. 4350 SPRITE 0,0,1
  337. 4360 PLAY"@67O4C8"
  338. 4370 FOR X=0 TO 4
  339. 4380 SPRITE 1,0,4*X
  340. 4390 FOR T=0 TO 500:NEXT T
  341. 4400 NEXT X,I
  342. 4410 SPRITE 0,0,0
  343. 4420 RETURN
  344. 4430 *S5
  345. 4440 CLS:DEF PEN 0,1
  346. 4450 CIRCLE(150,150),15,1,,,,F
  347. 4460 CONNECT(150,135)-(140,139)-(140,142)-(145,141),4,,F,4
  348. 4470 CONNECT(145,142)-(147,143)-(149,155)-(144,156)-(141,150)-(138,151)-(137,148),4,,F,4
  349. 4480 CONNECT(164,145)-(161,143)-(159,146)-(159,150)-(163,151)-(165,150),4,,F,4
  350. 4490 CONNECT(148,163)-(155,162)-(153,163),7,,F,7
  351. 4500 IF HAGIME=1 THEN RETURN
  352. 4510 GET@A(135,135)-(167,175),D
  353. 4520 X=150:Y=134:V=.01!:I=0:RESTORE 4040:ENDING=0
  354. 4530 PUT@A(X,Y)-(X+180,Y+62),A,,V*2,V
  355. 4540 IF V<.2! THEN LINE(X,Y)-(X+180*V*2,Y+62*V),PSET,0,BF
  356. 4550 IF I=XY THEN I=0:READ XX,YY,XY:IF XY=0 THEN CLS:RETURN ELSE IF XY=1 THEN UP=1 ELSE IF XY=2 THEN MA=1
  357. 4560 IF UP THEN UP=UP+1:PUT@A(135,135-UP)-(167,175-UP),D,,1-UP/200,1-UP/200
  358. 4570 IF PLAY(0)=0 THEN PLAY"@67O1V15(C32A64)3"
  359. 4580 IF UP>165 THEN UP=0
  360. 4590 IF MA THEN MA=MA+1:CIRCLE(155,395-MA),155,[100,255,0],,,F
  361. 4600 X=X+XX:Y=Y+YY:I=I+1:V=V+.01!:IF V>1 THEN V=1
  362. 4610 GOTO 4530
  363. 4620 *S6
  364. 4630 CIRCLE(190,50),20,[100,255,0],,,,F
  365. 4640 LINE(400,0)-(431,15),PSET,[0,0,0,1],BF
  366. 4650 PUT@A(400,0)-(580,62),A,,.2!,.25!
  367. 4660 GET@A(400,0)-(415,15),D:DEF SPRITE 0,100,D,1
  368. 4670 GET@A(416,0)-(431,15),D:DEF SPRITE 0,104,D,1
  369. 4680 DEF SPRITE 1,1,(30,50),100,2
  370. 4690 SPRITE 0,1,1
  371. 4700 FOR I=0 TO 105:SPRITE TIME
  372. 4710 SPRITE 6,1,1
  373. 4720 NEXT
  374. 4730 DEF SPRITE 1,0,(145,50),0
  375. 4740 SPRITE 0,0,1
  376. 4750 FOR I=0 TO 30
  377. 4760 PLAY"@67O4C32"
  378. 4770 FOR X=0 TO 4:FOR T=0 TO 80:NEXT T
  379. 4780 SPRITE 1,0,X*4
  380. 4790 NEXT X,I
  381. 4800 PLAY"@67O4C1"
  382. 4810 CIRCLE(190,50),20,0,,,,F:DEF SPRITE 99,0
  383. 4820 COLOR 7,[150,150,150]:SYMBOL(30,30),"THE END",2,2,[200,200,200],,,9:COLOR 7,0
  384. 4830 IF PTRIG(1)<>1 THEN 4830
  385. 4840 SPRITE OFF:EN=1:ENDING=0:RETURN
  386. 4850 *ER3
  387. 4860 ON ERROR GOTO 0:RESUME 1780
  388.