Six Rock(シックス・ロック) by 三毛乱ジェロ

再生

 一見何の画面か分からない? 実はコレ、数字を使った落ち物パズルゲームなのだ。
 動画のプレーとタイトル画面の説明文を見てもらえばすぐわかるだろう。選んだ隣同士の数字の合計を「6」にするのが目的だ。たとえば互いにとなり合った「2」「3」「1」を選べば、その3つが全部消えて、その穴を埋めるように数字が落ちてくる。
 時間切れでゲームオーバーだが、合計が「6」になればタイムメーターが回復する。数字を何個もつなげるほど戻る時間も多いし、得点も高くなるぞ。合計が「6」を超えてしまったら選び直し。Lボタン+Rボタンで、ゲーム中1回だけ数字のシャッフルができるからうまく使いこなそう。

私が作りました

三毛乱ジェロ
mixi

昔はMSX・FAN誌によく投稿してました。
今はmixiやってます。マイミクも募集中です。


 CHECK POiNT 

インテリ
最初におことわりしておくと、プレイ動画はルールとゲームオーバーがわかるようにわざとゆっくり遊んでいて、本当はもっとスピーディーなゲームだそうです。

博士
う……うむ、まあ重要なことではあるな。ヘタだと思われたくない言い訳のような気もするが。

ワンパク
ウォオー! そうは言うがジッサイ、オレが遊ぶとすぐに手詰まりになっちまうぜ! どうなってやがる?

神崎
何も考えずに消していくとすぐに「どう選んでも合計が6以上になってしまう」エリアができちゃうんだね。落ちてくる数字を調節しながら遊ぶのがコツになるのかな。

ワンパク
ナルホドな……「落ちてくる」感覚がピンと来なかったが、よく見るとたしかに重力にそって数字が下りてきてんのか。ソコに注意して遊ぶと、シンプルだがかなりアツくなるルールだゼ!

博士
そういう意味では一瞬で落ちてくるより、アニメ状に落ちてきた方がわかりやすかったかもしれんな。
改造でそう変えることもできるじゃろうが、そこまでできるなら「落ちる」感覚もとっくに分かっとるハズじゃし、フクザツなとこじゃのう。

プログラムリスト

  1. ’
  2. ’ SIX ROCK
  3. ’ 2011 Michelan-gelo.
  4. ’
  5. ’ ショキセッテイ
  6. ’
  7. CLEAR
  8. DIM D(16,11),GX(7),GY(7),BE(5)
  9. HS=0
  10. BE(0)=38:BE(1)=7
  11. BE(2)=60:BE(3)=37:BE(4)=32
  12. GOTO @TITLE
  13. ’
  14. ’ メイン
  15. @MAIN
  16. BGMSTOP:CLS
  17. X=FLOOR(XD/2):Y=FLOOR(YD/2)
  18. ZX=X:ZY=Y
  19. TM=30:TE=0:GV=0:SC=0:RT=0
  20. COLOR 15
  21. LOCATE 10,12:PRINT”R E A D Y ?”
  22. BEEP 32:VSYNC 150
  23. ’
  24. ’ MAKE SCREEN+スウシ゛ヲイレル
  25. ’
  26. @MAKESC
  27. CLS:COLOR 15
  28. FOR I=1 TO YD
  29.  FOR J=1 TO XD
  30.   R=RND(RN)+1
  31.   D(J,I)=R
  32.   LOCATE J*2-1,I*2-1:PRINT R
  33.  NEXT
  34. NEXT
  35. ’
  36. E=1:C=0:F=0
  37. LOCATE 1,22:PRINT”SCORE:”;SC
  38. IF RT==0 THEN LOCATE 19,22:PRINT”К+К:RESET”
  39. GOSUB @JIKAN
  40. BGMPLAY BP
  41. ’
  42. ’ メイン
  43. ’
  44. @LOOP
  45. ZX=X:ZY=Y
  46. BT=BUTTON()
  47. IF BT==8 AND X<XD THEN X=X+1:E=1
  48. IF BT==4 AND X>1  THEN X=X-1:E=1
  49. IF BT==2 AND Y<YD THEN Y=Y+1:E=1
  50. IF BT==1 AND Y>1  THEN Y=Y-1:E=1
  51. IF BT==768 AND RT==0 THEN RT=1:GOTO @MAKESC
  52. ’
  53. IF BT==16 AND C==0 THEN GOSUB @CHOICE
  54. VSYNC 6
  55. TE=TE+1:IF TE>=10 THEN GOSUB @MINUS
  56. IF GV==1 GOTO @GMOVER
  57. IF E!=1 GOTO @LOOP
  58. ’
  59. COLOR 9
  60. LOCATE ZX*2-2,ZY*2-2:PRINT”   ”
  61. LOCATE ZX*2-2,ZY*2  :PRINT”   ”
  62. LOCATE X*2-2,Y*2-2  :PRINT”┌ ┐”
  63. LOCATE X*2-2,Y*2    :PRINT”└ ┘”
  64. ’
  65. IF F>=1 THEN GOSUB @CHOICE
  66. IF C==6 THEN GOSUB @ERASE
  67. IF C>=7 THEN GOSUB @OVER
  68. BEEP 49:E=0
  69. GOTO @LOOP
  70. ’
  71. ’ センタク
  72. @CHOICE
  73. IF F==0 GOTO @CHOICE2
  74. G=0
  75. FOR I=1 TO F
  76.  IF GX(I)==X AND GY(I)==Y THEN G=1
  77. NEXT
  78. IF G==1 THEN RETURN
  79. ’
  80. @CHOICE2
  81. BEEP 3
  82. C=C+D(X,Y):F=F+1
  83. COLOR 7
  84. LOCATE X*2-1,Y*2-1:PRINT D(X,Y)
  85. GX(F)=X:GY(F)=Y
  86. VSYNC 10
  87. RETURN
  88. ’
  89. ’ ショウキョ
  90. @ERASE
  91. COLOR 3
  92. FOR I=1 TO F
  93.  ZX=GX(I):ZY=GY(I)
  94.  LOCATE ZX*2-1,ZY*2-1:PRINT ”м”
  95.  BEEP 12:VSYNC 15
  96.  LOCATE ZX*2-1,ZY*2-1:PRINT ” ”
  97. NEXT
  98. ’
  99. ’ シタカラ ウエニ エランテ゛ナイカ チェック+イレカエ
  100. ’ コレカ゛ナイト ケシタアトノ スウシ゛カ゛ オカシクナル
  101. FOR I=1 TO F
  102.  ZY=GY(I)
  103.  FOR J=I TO F
  104.   IF GX(I)==GX(J) AND ZY>GY(J) THEN ZZ=ZY:GY(I)=GY(J):GY(J)=ZZ
  105.  NEXT
  106. NEXT
  107. ’
  108. ’ ケス
  109. COLOR 15
  110. FOR I=1 TO F
  111.  BEEP BE(F-2)
  112.  ZX=GX(I):ZY=GY(I)
  113.  FOR J=ZY TO 1 STEP -1
  114.   D(ZX,J)=D(ZX,J-1)
  115.   LOCATE ZX*2-1,J*2-1:PRINT D(ZX,J)
  116.  NEXT
  117.  D(ZX,1)=RND(RN)+1
  118.  LOCATE ZX*2-1,1:PRINT D(ZX,1)
  119.  VSYNC 3
  120. NEXT
  121. ’ オオク ケスト ホ゛-ナスアリ
  122. SC=SC+FLOOR(F*1.3)
  123. TM=TM+FLOOR(F*1.3)-1
  124. IF F==6 THEN TM=TM+1:SC=SC+1
  125. LOCATE 1,22:PRINT”SCORE:”;SC
  126. ’ ノーマルモート゛ノミ レヘ゛ルアッフ゜アリ
  127. IF SC>100 THEN RN=5
  128. GOSUB @JIKAN
  129. C=0:F=0:TE=0
  130. RETURN
  131. ’
  132. ’ モト゛ス
  133. @OVER
  134. COLOR 15
  135. FOR I=1 TO F
  136.  ZX=GX(I):ZY=GY(I)
  137.  LOCATE ZX*2-1,ZY*2-1:PRINT D(ZX,ZY)
  138.  BEEP 11:VSYNC 15
  139. NEXT
  140. C=0:F=0
  141. RETURN
  142. ’
  143. ’ シ゛カン ヲ ヘラス
  144. @MINUS
  145. TM=TM-1
  146. IF TM==0 THEN GV=1
  147. GOSUB @JIKAN
  148. TE=0
  149. RETURN
  150. ’
  151. ’ シ゛カン ノ ヒョウシ゛
  152. @JIKAN
  153. COLOR 4:IF TM<10 THEN COLOR 7
  154. IF TM>30 THEN TM=30
  155. FOR I=0 TO TM-1
  156.  LOCATE I,21:PRINT”■ ”
  157. NEXT
  158. RETURN
  159. ’
  160. ’ ケ゛ームオーハ゛ー
  161. @GMOVER
  162. BGMPLAY 6
  163. COLOR 13:LOCATE 0,21:PRINT” ”
  164. FOR I=0 TO 4
  165. ’ 23コノ クウハク
  166.  LOCATE 4,I+8:PRINT”                       ”
  167. NEXT
  168. LOCATE 7,10:PRINT”G A M E   O V E R”
  169. LOCATE 12,21:PRINT”PUSH Х”
  170. IF HS<SC THEN HS=SC
  171. ’
  172. @GLOOP
  173. BT=BUTTON()
  174. IF BT!=128 GOTO @GLOOP
  175. ’
  176. ’ タイトル
  177. @TITLE
  178. CLS:BGMPLAY 0
  179. COLOR 15:PRINT”HIGH SCORE:”;HS
  180. COLOR 7:LOCATE 0,2
  181. PRINT”   ┠┠          ┠┠”
  182. PRINT”  ┻           ┻  ┛        ┻”
  183. COLOR 8
  184. PRINT”  ┻    ┃      ┻  ┛        ┻ ┗”
  185. PRINT”   ┏┏┓ ┳ ┫ ┗  ┳┏┏ ┳┏┏┓┳┏┏ ┳┗”
  186. COLOR 7
  187. PRINT”     ┛ ┻  ┫   ┻ ┫ ┻  ┛┻   ┻ ┫”
  188. PRINT”   ┠┠━ ┻ ┗ ┫  ┃  ━┃┠┠━┃┠┠ ┃  ━”
  189. ’
  190. COLOR 4
  191. LOCATE  1, 9:PRINT”ヤリカタ:トナリアウ スウシ゛ノ コ゛ウケイカ゛”
  192. LOCATE  6,10:PRINT”6ニ ナルヨウニ スウシ゛ヲ エランテ゛ネ”
  193. LOCATE  6,11:PRINT”タテ ヨコ カキ゛カ゛タ ナンテ゛モ OK”
  194. COLOR 9
  195. LOCATE  6,12:PRINT”Aホ゛タンテ゛ スウシ゛ヲ ヒトツ エランタ゛ラ”
  196. LOCATE  6,13:PRINT”アトハ Пキーテ゛ イト゛ウスルタ゛ケ”
  197. LOCATE  6,14:PRINT”シタノ タイマーカ゛ ナクナッタラ オワリタ゛ヨ”
  198. ’
  199. COLOR 15
  200. LOCATE  5,16:PRINT”Aホ゛タン:ノーマル モート゛(8*6)”
  201. LOCATE  5,17:PRINT”Xホ゛タン:スハ゜ルタモート゛(15*10)”
  202. LOCATE  5,18:PRINT”Bホ゛タン:シュウリョウ”
  203. LOCATE  7,21:PRINT”2011 Michelan-gelo.”
  204. ’
  205. H=0
  206. ’
  207. @TITLE2
  208. BT=BUTTON()
  209. IF BT==16 THEN XD=8:YD=6:BP=1:RN=4:H=1
  210. IF BT==64 THEN XD=15:YD=10:BP=3:RN=5:H=1
  211. IF BT==32 GOTO @SHURYOU
  212. ’
  213. IF H==0 GOTO @TITLE2
  214. GOTO @MAIN
  215. ’
  216. ’ シュウリョウ
  217. @SHURYOU
  218. BGMSTOP
  219. END