プチコン

  1. ’┌──────────────────────────┐
  2. ’│DOT-RACER v1.0            │
  3. ’└──────────────────────────┘
  4. VISIBLE 1,1,0,0,0,1
  5. CLS:COLOR 0
  6. GPAGE 0:GCOLOR 0:GCLS
  7. CLEAR
  8. DIM MYCHR$(4),VX(4),VY(4),CL(4)
  9. DATA ”Ь”,1,0,14
  10. DATA ”Э”,0,1,8
  11. DATA ”Ю”,-1,0,7
  12. DATA ”Ы”,0,-1,3
  13. FOR I=0 TO 3
  14.  READ MYCHR$(I),VX(I),VY(I),CL(I)
  15.  VX(I)=SGN(VX(I))
  16.  VY(I)=SGN(VY(I))
  17.  PRINT MYCHR$(I),VX(I),VY(I)
  18. NEXT
  19. ’---
  20. DIM E(16,16)
  21. _X=0:_Y=1:_C=2:_D=3
  22. _W=4:_WM=5
  23. ’---
  24. FL=0:RQ=FL:BGMW=FALSE
  25. GOSUB @TITINIT
  26. ’---
  27. @LOOP
  28.  OLDB=B:B=BUTTON()
  29.  ’
  30.  GOSUB @FLOW
  31.  ’
  32.  VSYNC(1)
  33. GOTO @LOOP
  34. END
  35. ’───────────────────────────
  36. @FLOW ’カ゛メンセンイ
  37. ’───────────────────────────
  38. IF RQ==FL GOTO @FLJUMP
  39. IF BGMW AND BGMCHK() THEN RETURN
  40. BGMW=FALSW
  41. ’--- アタラシイ カ゛メンヘ
  42. ON RQ GOSUB @TITINIT,@SSINIT,@GAMEINIT,@GOVINIT,@SCINIT
  43. FL=RQ
  44. ’--- カ゛メンコ゛トノショリヘ
  45. @FLJUMP
  46. ON FL GOTO @TIT,@SSTART,@GAME,@GOVER,@SCLEAR
  47. RETURN
  48. ’───────────────────────────
  49. ’
  50. ’───────────────────────────
  51. @ANYBUT
  52. R=FALSE
  53. IF OLDB THEN RETURN
  54. IF B==0 THEN RETURN
  55. R=TRUE
  56. RETURN
  57. ’---
  58. @SE
  59. P=(128/23)*X
  60. V=(100/23)*Y+27
  61. BEEP B,F,V,P
  62. RETURN
  63. ’───────────────────────────
  64. @TIT
  65. ’───────────────────────────
  66. GOSUB @TITPUT
  67. GOSUB @ANYBUT
  68. IF R==FALSE THEN RETURN
  69. BGMSTOP
  70. RQ=1
  71. RETURN
  72. ’---
  73. @TITINIT
  74. CLS:BGMPLAY 14
  75. STG=0
  76. @TITPUT
  77. I=(C/4) AND 7
  78. IF I>3 THEN I=7-I
  79. COLOR CL(I):C=C+1
  80. X=6:Y=8
  81. LOCATE X,Y+0:PRINT”┣┫┳┏┗╋┏ ┻┏┓┗┫┳┏━┣┏┻┏┓”
  82. LOCATE X,Y+1:PRINT”┛┻┻ ┛┻ ┏┻┠━┯┨┻  ┣┏┻┠━”
  83. LOCATE X,Y+2:PRINT”┯┗┃┠━┻  ┻┃┓┛┻┃┠┓┯┠┻┃┓”
  84. COLOR 9:X=8:Y=Y+7
  85. LOCATE X,Y:PRINT”PUSH ANY BUTTON!”
  86. COLOR 2:X=4:Y=Y+5
  87. LOCATE X,Y:PRINT”(C)2011 SmileBoom Co.Ltd.”
  88. RETURN
  89. ’───────────────────────────
  90. @SSTART
  91. ’───────────────────────────
  92. W=W-1:IF W<0 GOTO @_SIEND
  93. GOSUB @ANYBUT
  94. IF R==FALSE THEN RETURN
  95. @_SIEND
  96. RQ=2
  97. RETURN
  98. ’---
  99. @SSINIT
  100. CLS:BGMSTOP
  101. X=13:Y=11:W=60*1
  102. LOCATE X,Y:PRINT”Ready?”
  103. RETURN
  104. ’───────────────────────────
  105. @SCLEAR
  106. ’───────────────────────────
  107. GOSUB @ANYBUT
  108. IF R==FALSE THEN RETURN
  109. RQ=3
  110. RETURN
  111. ’
  112. @SCINIT
  113. CLS:BGMPLAY 9
  114. X=13:Y=11:W=60*1
  115. LOCATE X,Y:PRINT”CLEAR!”
  116. RETURN
  117. ’───────────────────────────
  118. @GOVER
  119. ’───────────────────────────
  120. GLINE MX*8,MY*8,RND(256),RND(256),RND(256)
  121. GCIRCLE MX*8,MY*8,RND(100)+2,RND(256)
  122. IF BGMCHK() THEN RETURN
  123. GOSUB @ANYBUT
  124. IF R==FALSE THEN RETURN
  125. GCLS
  126. RQ=0
  127. RETURN
  128. ’---
  129. @GOVINIT
  130. CLS:BGMPLAY 6:BGMW=TRUE
  131. X=11:Y=11
  132. LOCATE X,Y:PRINT”GAME OVER”
  133. RETURN
  134. ’───────────────────────────
  135. @GAME
  136. ’───────────────────────────
  137. GOSUB @MYCAR
  138. GOSUB @ENEMY
  139. GOSUB @PUTSCO
  140. IF DOT==0 GOTO @MYCLR
  141. RETURN
  142. ’---
  143. @MYCAR
  144. MW=MW+1
  145. IF MW<WMAX THEN RETURN
  146. MW=0
  147. LOCATE MX,MY:PRINT” ”
  148. @_MYRETRY
  149. X=MX+VX(MD):Y=MY+VY(MD):D=MD
  150. IF MS THEN MS=FALSE:GOTO @_MYSVEC
  151. ’--- ニュウリョクカクニン
  152. GOSUB @GETVEC
  153. ’---
  154. @_MYSVEC
  155. X=X+KX:Y=Y+KY
  156. GOSUB @CHKDOT
  157. IF C==ASC(”Е”) GOTO @DEAD
  158. IF R GOTO @_MYMOVE
  159. ’--- ホウコウチョウセイ
  160. MD=D
  161. GOTO @_MYRETRY
  162. ’--- イト゛ウ
  163. @_MYMOVE
  164. IF C!=ASC(”・”) GOTO @_MYMOV2
  165. ’--- ト゛ットケ゛ット
  166. B=62:F=-4000:GOSUB @SE
  167. DOT=DOT-1
  168. SCO=SCO+10
  169. GOSUB @SPDUP
  170. ’---
  171. @_MYMOV2
  172. MX=X:MY=Y
  173. GOSUB @PUTMCAR
  174. RETURN
  175. ’---
  176. @MYCLR
  177. BEEP 32
  178. STG=STG+1
  179. IF STG==4 THEN RQ=4:RETURN
  180. ’---
  181. BGMPLAY 4
  182. BGMW=TRUE
  183. RQ=1
  184. RETURN
  185. ’---
  186. @GETVEC
  187. KX=0:KY=0:
  188. IF B==1 THEN KY=-1:O=3
  189. IF B==2 THEN KY=1:O=1
  190. IF B==4 THEN KX=-1:O=2
  191. IF B==8 THEN KX=1:O=0
  192. ’---
  193. IF D==O GOTO @GVOFF
  194. O=O+2:O=O AND 3
  195. IF D==O GOTO @GVOFF
  196. ’---
  197. OX=X+KX:OY=Y+KY
  198. C=CHKCHR(OX,OY)
  199. MS=TRUE
  200. IF C==ASC(”・”) THEN RETURN
  201. IF C==ASC(” ”) THEN RETURN
  202. @GVOFF
  203. KX=0:KY=0:MS=FALSE
  204. RETURN
  205. ’---
  206. @SPDUP
  207. WMAX=WMAX-0.05
  208. IF WMAX<0.01 THEN WMAX=0.01
  209. RETURN
  210. ’---
  211. @DEAD
  212. BEEP 55,-2000
  213. RQ=3
  214. RETURN
  215. ’---
  216. @ENEMY
  217. IF ECNT==0 THEN RETURN
  218. FOR I=0 TO ECNT-1
  219.  WM=E(I,_WM)
  220.  W=E(I,_W):W=W+1
  221.  IF W<WM GOTO @_ESKIP
  222.  W=0
  223. @_ERETRY
  224.  X=E(I,_X):Y=E(I,_Y):D=E(I,_D)
  225.  LOCATE X,Y:PRINT CHR$(E(I,_C))
  226.  X=X+VX(D):Y=Y+VY(D)
  227.  GOSUB @CHKDOT
  228.  IF R GOTO @_EMOVE
  229.  E(I,_D)=D
  230.  GOTO @_ERETRY
  231. @_EMOVE
  232.  E(I,_X)=X:E(I,_Y)=Y
  233.  E(I,_C)=CHKCHR(X,Y)
  234.  GOSUB @PUTENE
  235. @_ESKIP
  236.  E(I,_W)=W
  237. NEXT
  238. RETURN
  239. ’---
  240. @CHKDOT
  241. C=CHKCHR(X,Y):R=TRUE
  242. IF C==ASC(”・”) THEN RETURN
  243. IF C==ASC(” ”) THEN RETURN
  244. D=D-1:D=D AND 3
  245. R=FALSE
  246. RETURN
  247. ’---
  248. @PUTSCO
  249. X=25:Y=2
  250. LOCATE X,Y:PRINT”     ”
  251. LOCATE X,Y:PRINT SCO
  252. Y=Y+3
  253. LOCATE X,Y:PRINT”     ”
  254. LOCATE X,Y:PRINT WTOP-WMAX
  255. Y=Y+3
  256. LOCATE X,Y:PRINT”     ”
  257. LOCATE X,Y:PRINT DOT
  258. RETURN
  259. ’---
  260. @GAMEINIT
  261. CLS
  262. BGMPLAY 13
  263. ’---
  264. COLOR 7
  265. X=24:Y=1
  266. LOCATE X,Y:PRINT”SCORE”;
  267. Y=Y+3
  268. LOCATE X,Y:PRINT”SPEED”;
  269. Y=Y+3
  270. LOCATE X,Y:PRINT”REST”;
  271. LOCATE 0,23:PRINT”STAGE:”;
  272. PRINT STG+1;
  273. COLOR 0
  274. ’---
  275. MW=0:WTOP=8:WMAX=WTOP
  276. MS=FALSE
  277. SCO=0
  278. ’---
  279. @STAGE1
  280. ’---
  281. DATA”┌─────────────────────┐”
  282. DATA”│・・・・・・・・・・・・・・・・・・・・・│”
  283. DATA”│・┌───────   ───────┐・│”
  284. DATA”│・│・・・・・・・・・・・・・・・・・│・│”
  285. DATA”│・│・┌─────   ─────┐・│・│”
  286. DATA”│・│・│・・・・・・・・・・・・・│・│・│”
  287. DATA”│・│・│・┌───   ───┐・│・│・│”
  288. DATA”│・│・│・│・・・・・・・・・│・│・│・│”
  289. DATA”│・│・│・│・┌─   ─┐・│・│・│・│”
  290. DATA”│・│・│・│・│・・・・・│・│・│・│・│”
  291. DATA”│・ ・ ・ ・ ・┌─┐・ ・ ・ ・ ・│”
  292. DATA”│・ ・ ・ ・ ・│Ч│・ ・ ・ ・ ・│”
  293. DATA”│・ ・ ・ ・ ・└─┘・ ・ ・ ・ ・│”
  294. DATA”│・│・│・│・│・・・・・│・│・│・│・│”
  295. DATA”│・│・│・│・└─   ─┘・│・│・│・│”
  296. DATA”│・│・│・│・・・・・・・・・│・│・│・│”
  297. DATA”│・│・│・└───   ───┘・│・│・│”
  298. DATA”│・│・│・・・・・・・・・・・・・│・│・│”
  299. DATA”│・│・└─────   ─────┘・│・│”
  300. DATA”│・│・・・・・・・・・・・・・・・・・│・│”
  301. DATA”│・└───────   ───────┘・│”
  302. DATA”│・・・・・・・・・・ ・・・・・・・・・・│”
  303. DATA”└─────────────────────┘”
  304. DATA 11,21,0
  305. DATA 3
  306. DATA 11,1,2
  307. DATA 11,5,2
  308. DATA 11,7,2
  309. ’---
  310. RESTORE @STAGE1
  311. FOR I=0 TO 22
  312.  READ C$
  313.  LOCATE 0,I
  314.  PRINT C$
  315. NEXT
  316. ’--- ト゛ットヲカソ゛エル
  317. DOT=0
  318. FOR Y=0 TO 22
  319.  FOR X=0 TO 22
  320.   IF CHKCHR(X,Y)==ASC(”・”) THEN DOT=DOT+1
  321.  NEXT
  322. NEXT
  323. ’--- シ゛フ゛ン
  324. READ MX,MY,MD
  325. GOSUB @PUTMCAR
  326. ’--- テキノハッセイ
  327. READ ECNT
  328. ECNT=STG
  329. IF STG==0 THEN RETURN
  330. FOR I=0 TO ECNT-1
  331.  READ X,Y,D
  332.  E(I,_X)=X:E(I,_Y)=Y:E(I,_D)=D
  333.  E(I,_C)=CHKCHR(X,Y)
  334.  E(I,_WM)=4+RND(60)
  335.  GOSUB @PUTENE
  336. NEXT
  337. ’---
  338. RETURN
  339. ’---
  340. @PUTMCAR
  341. LOCATE MX,MY
  342. PRINT MYCHR$(MD)
  343. RETURN
  344. ’---
  345. @PUTENE
  346. LOCATE E(I,_X),E(I,_Y)
  347. PRINT ”Е”
  348. RETURN