生成時に詰みチェックしているので、手順を間違えなければ解けるはず。 四川省用の経路探索 四川省用の経路探索を簡単に図示すれば、以下のようになります。 この麻雀ゲームはパソコンがNECのPC9801でOSがBASICだったころ、 子育てが一段落した、お母さん(女房)が熱中したパソコンゲーム「上海」(別名:マージャン ソリティア がモデルです。
11次に「2角」でとれる牌を探す 隣同士の牌をある程度取り終わったら、続いて「2角」でとれる牌を探していきます! 右端の部分をご覧ください!! ちょうど「2角」でとれる牌がありますね!!! このように 牌の周りのスペースは使えるスペースなので、2角で取れるものはじゃんじゃん取っていきましょう。 ランキング機能も搭載されており、名前とコメントを残せます。
すべての牌を取り除くと勝ち(終了)となる。
というわけでまず、 p と q の左右にどれだけ空きがあるか調べて、最も左側を p0, q0 右側を p1, q1 とします。
牌を取り除けるのは以下の条件のときである。
とりあえず遊んでみよう というわけで CodePen。 同種の2つの牌が隣接しているとき• ・ご利用の端末の状況、状態によっては正しく表示されない場合があります。
「ワンパターンでは飽きてしまう!」と言われ、プログラムの汎用化が大変でしたが7通り作れました。
同じ列or行の2点間に他の牌があるかを確認する関数Retu・Gyouを 組み合わせてこれらの処理を行っているので、 これらの関数かmain内のそれらの入っている前後の処理が間違っているんだと思います。
See the Pen by nagtkk on. 現役時代、トヨタのプログラムコンテストにBASICの「トヨタ麻雀」を出品し、女房が「サクラ」になって展示場の係員を冷やかしていたことを思い出しながら「作るか!」と安請け合いしたのが発端になりました。
関連リンク [ ] この項目は、に関連した です。 Babel が Spread Properties を変換してくれないらしい。
指定範囲の数値が入った配列を作成します。 com 四川省ゲーム。
詳しいルールはをどうぞ。
そのまま作っても面白くないので、今回は XYX の判定と YXY の判定を共通化してみます。
柄は適当ですがご容赦ください。
軸に沿った三本以内の連続した線分で結ぶことのできる同じ柄の牌 でした。 X 方向に i 移動して、Y 方向に j 移動して、X 方向に k 移動• 一応、応用しやすいように、外部ライブラリ等使わずに作っていきます。 経路が YXY の場合についても、縦横入れ替えて同じことをするだけなので省略。
16壁や空白なら何もせず。 ・アドブロック等のプラグインにより正常に表示されない場合があります。
線分の間に、別な牌が在ってはいけません。
線分 2 本や線分 1 本、隣り合っている場合も、 i,k に 0 が入っていると思えば、結局はこの条件に合致します。
Tomohisa Nakajima• Y 方向に i 移動して、X 方向に j 移動して、Y 方向に k 移動 のどちらかにしかなりません。
とある牌からもう一方の牌への経路だと考えれば、閉じた二次元平面ですから、• それではよろしくお願いします。 あとは p0-p1 と q0-q1 の X 軸方向の重複領域について、その間に一本でも縦の線を引くことができれば、つまり、空列 すべて空の列 が一つでもあれば、経路が見つかったと言うことになります。 全ての牌を消すとクリアです。
8周りの牌を取っていくことで、だいぶスペースを広げることができました。
これ以上取ることができない状態 詰み になったら game over と表示されます。
・隣同士であること。
言語は JavaScript で。
関連項目 [ ]• 毎日、5万人を越える方々に遊んでいただけるとは思ってもみませんでした。
同じ種類の2つの牌を消していく、パズル系の麻雀牌ゲーム「四川省」。
ポインタや構造式以降は理解がまだなので、 使うほうが楽でも極力避けていただけるとありがたいです。
取ることができるかどうかの判定 取ることができる牌の組は、• 柄IDでも振っておけば良し。
覚えたてのJavaScriptを使って、女房に遊ばせ、ケチをつけられながらプログラムし改良を繰り返しました。
熱中して長時間連続して遊び、視力障害や運動不足で肥満などにならないように留意して遊んでください。
画面右のボタンで「ヒント」「爆弾」「シャッフル」「時間回復」を使用できます。
「麻雀ゲーム・QPON上海」開発の裏話 「麻雀ゲーム・QPON上海」へ、お遊びにお出かけいただいてありがとうございます。
Qiita には解説たくさんあるからきっと大丈夫。
[消せる例とダメな例]. (二角取りと呼ばれることもあります) 消せるのは同じ絵柄の麻雀牌ですが、もうひとつ以下の条件のどちらかが必要です。 また、麻雀牌の代わりに、独自の絵柄が入った駒を取り除いていく様式のゲームもある。
というわけで、XYX と YXY のどちらかの条件に合致する経路を見つけ出す、というのが判定アルゴリズムの本体となります。
同じ絵柄の牌を2つずつ消していき、全ての牌を消すとクリア。
「時間が記録されないと張り合いがない」と言われCGIを勉強しサーバーに保存するプログラムを作りました。
JavaScript での実装例 さて、実際にゲームを作るには、これを実装すればいいわけです。 Qpon. ゲーム• 皆さんも、お暇なときに、上海の公式サイトへもお越しいただきたいと思います。 今回はこちらのアプリで、二画取りの説明をしていきます!!• 注意事項 ・ブラウザ等は最新のバージョンをご利用ください。
17一つ目の牌の座標を p 、もう一つを q とします。
そこから pick でランダムに取り出しています。
まずは下準備。
並べ方は不規則である。