解説
このゲームは「四川省」という「上海」に似たゲームをJavaScriptで作成したもので、目的はタイリングされた麻雀牌を2牌ずつ消していき、全て消すことです。
条件
このゲームは IE4 または NN4 以上でプレイすることができます。
ルール
同じ図柄の2つの牌をクリックして、2つずつ牌を消していきます。
2つの牌の結びつけは、お互いが縦または横の3つ以下の線分で結べる場合にのみ可能です。
線分は他の牌が配置されていない場所、つまり、すでに取り払った牌の領域とタイリングされている周囲の領域に引くことができます。
(1)縦または横に隣り合った牌は消せます。(斜めはダメです)
   
    |
この場合、縦に並んでいる は消すことができます。
横に並んでいる も消せます。しかし斜めの は消せません。
( を消した後なら、 も消せます) |
(2)線分2本でつながる牌は消せます。
   
   |
は隣り合ってはいません
。斜めです。しかし、この2つの は、線分2本でつなぐことができるので、消せます。左下の から見ると、線を上に引いて、右に引けば、右上の につながります。 |
(3)線分3本でつながる牌の簡単な例です。
   
   |
は隣り合ってはいませんが、間にある を避けて結ぼうとすると、
直角に曲がる線分3本でつなぐことができるので、消せます。左側の から見ると、線を上に引いて、右に引いて、下に引くと、右側の につながる、という訳です。 |
(4)線分3本でつながる牌の応用例です。
   
   |
左側の から線を右に引いて、下に引いて、また右に引くと、右側の につながります。これで、直角に曲がる線分3本でつなぐことができるので、消せます。 |
(5)消せそうで消せない例です。
   
   |
上の例(4)と似ていますが、この場合は、2つの を3本以下の線分でつなぐことができません。どうしても4本になってしまいます。
ですから、この場合は、消せないのです。 |
例として、短い線でつないだものを掲げましたが、長い線でもokです。遠くにある牌でも、線分3本以内でつなげれば、消すことができます。
この説明だけでは「よく判らない」という方も、やってみればすぐ判ると思います。
ゲームは、3種類あり、タイル数が少ない方が簡単です。最初はタイル数が少ないゲームで、「HINT」ボタンを使って下さい。
操作
該当する2つの牌をマウスでクリックすることで、消すことができます。
この他の操作に関しては以下の通りです。
- 「サイズ」リスト
- 現在表示しているタイルの大きさ( 横×縦 )を表します。これを変更するとタイリングしなおしてゲームが開始されます。初期表示状態では 18×8 です。
- 「開始」ボタン
- 現在のサイズで新しくゲームを開始します。このボタンはゲーム中でも有効です。
- 「HINT」ボタン
- ゲーム中にこのボタンを押すと、消すことができる2つの牌の間に線を引きます。ただし、隣り合っている牌がある場合には線は見えません。
- 「UNDO」ボタン
- もし、間違って取り去ってしまった場合、このボタンを操作すると1回だけ元に戻すことができます。
- 「about」ボタン
- このゲームのバージョンを表示します。
- 「残り枚数」
- 画面上に表示されている残りの牌の枚数を表示します。
- 「最高値」
- あなたの過去の成績のうち最も早かった時の時間を表示します。この値「記憶」ボタン操作により Cookie を使用して記憶することができます。(Cookie が有効でなければなりません)
- 「記憶」ボタン
- 現在の最高の成績を Cookie に記憶します。
- 「経過時間」
- ゲーム開始からの経過時間(秒単位)を表示します。
- 「終わり」ボタン
- ゲームを終わり、この画面に戻ります。
注意
このゲームは多くのレイア(84 〜 288枚)を使用しています。このため、牌を並べている間(経過時間領域に「初期化中」と表示されている間)に他のページに移動したりすると異常終了するかも(特にNN4)しれませんので、この間は他の操作をしないようにしてください。
また、IE 及び NN6 では画像のロードミスのため、初期表示時に全ての牌が表示されないことがあります。その際は一度ウィンドウを閉じて開き直すか、またはゲームサイズを変更してみてください。
謝辞
2003年5月よりJavaScriptの勉強を始めたのですが、この無料配布のゲーム、はぎさんのJavaScript版「四川省」を見て、本当に驚き、感激しました。
正直言ってJavaScriptでここまでのことができるとは思ってもいませんでした。
作者のはぎさんに厚く御礼申し上げます。
なお、ここの「四川省」は、私ひいいが、若干手を入れています。
|