2010年05月22日

四川省のアルゴリズム考察

四川省(二角取り)系のゲームを作ることになったので、いろいろ解析してみた。こんな感じだと思うんだ。どう?

2010_0520_01.gif
同じ模様の牌がとなりあっていたら取れる。

2010_0520_02.gif
2つの牌の間になにもなかったら取れる。

2010_0520_03.gif
同じ方向に画面の端までなにもなかったら(ピンクの部分を調べる)

反対方向も調べる。

2010_0520_04.gif
途中になにかほかの牌がある場合は、ピンクの部分について今度は横になにもないか調べる(黄色い部分)。
一行でもつながっていれば、取れる。

縦方向→横方向を調べ終わったら、
今度は横方向→縦方向についても調べる。

そのけっかすべてが偽のときは2つの牌はとることが出来ない。
これでいい…はず…

これさえ実装できれば、牌の初期表示時に解けない面ができないようにするルーチンと、ヒントルーチンは半分できたようなもんですが…

さてオレに実装できるかしらん?
posted by t2c at 00:00| Comment(3) | TrackBack(0) | Flash
この記事へのコメント
解けない面対策なら配置用辞書を持つのも手。
配置キーマップを複数載せて、配置キーに対して牌を割り当てれば見た目上ランダムに見えるし生成が早い。

ヒントは移動ルーチンを移動可能な牌全てに対してシーケンシャルに試す。
総当りだからレスポンスアップに為にはアイドル時間にマルチスレッドで常に解法を求めておく。
Posted by 黒 at 2010年05月22日 21:54
本格的だなあ(´Д`)
辞書作るのか…
どーにか関数だけでなんとかならないものか…

いま考えてるのは、最初に任意の場所に牌を置いてから、その隣接する周囲に配置していくパターン。
どんどんおおきな塊ができていって、次に置く場所はその周囲の座標から任意に選ぶという感じ。
Posted by かんりにん at 2010年05月25日 00:04
辞書作ると卍みたいな変則的な配置も出来ます

多段にはしないの?(゚∀゚*)
Posted by 黒 at 2010年05月25日 02:16
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/38314267

この記事へのトラックバック