セイムゲーム作ったよ

セイムゲームとはパズルゲームの一種です。下の図をご覧ください。画面には数種類のブロックがあり、同じ種類のブロックが2つ以上繋がっている場所をクリックすると、ブロックが消えます。ブロックが消えた箇所の上にブロックが乗っていれば、上のブロックが落ちてきます。最終的に残ったブロックの数が少ないほど高得点になります。


追記 2010/1/24

デザインを改良しました。


遊び方

以下のURLで遊べます。
http://www17.atpages.jp/prime503/samegame/
古いバージョンはこちら
http://www17.atpages.jp/prime503/samegame-old/


上で説明したルールに加えて、画面の左端にある消しゴムアイテムをクリックしてから、ブロックをクリックすると、一つだけブロックを削除することができます。消しゴムは、三回だけ使うことができます。これをうまく使ってなるべくたくさんのブロックを消しましょう。消せるブロックがなくなったらゲーム終了になります。ゲームを再びプレイしたい場合は、ページをリロードしてください。

得点について

一つのブロックについて、一緒に消したブロックの数 * 10の得点が入ります。例えばブロックを2つ消した場合、一つのブロックについて、2*10=20の得点が入ります。これが二つあるので、20*2=40のポイントが一度に入ることになります。同様に5つのブロックを消した場合、5*10*5=250の得点が入ります。要するに一度に消した数をxとした場合、xの二乗*10の得点が入ります。

またゲーム終了時、ボーナス得点があります。まず、消しゴムの使用回数です。消しゴムの使用回数は少ないほど良く、残している消しゴムの数 * 300の得点が入ります。次に、最後に残っているブロックの数が10個以内になった場合もボーナス得点が入ります。残っているブロックの数を10から引いたものをaとすると、以下のような配点になります。

a = 10 - (残っているブロックの数)
x = (a + 50) * ( a * 4 + 10)

10個ブロックが残っている場合、500点もらえます。また最大3000点になります。

ブラウザの動作環境について

IEFirefoxGoogle Chromeで動作確認しました。IEの場合少しブロックのサイズのバランスが悪くなってしまうようです。これはブロックを文字で表現しているからです。ブロックに画像を使えばよかったのですが、そこらへんは手抜きです。

最後に

今回このゲームを作ろうと考えたきっかけは、ハンゲームの聖娘というゲームです。このゲームもセイムゲームの一種で、私がはまっていたのですが、いつの間にやらサービスが終了していました。そんなわけで、今回JavaScriptの勉強ついでに、このゲームを作ろうと考えました。ソースコードについては以下の記事で公開します。気軽に遊んでもらえると幸いです。

セイムゲームのソースコード解説