ぷよぷよ7,CMやYoutube動画を見る限り,面白そうです.
といったところで問題です.
- 「2連鎖」の状態を100種類以上,書いてください.
2連鎖の一例を挙げます.
× ○× ○× ○○×
「○」と「×」が,別々の色のぷよです.○が消えると
× × ××
となり,次に×が消える,という2連鎖です.
2連鎖100個を求めるにあたり,以下の制限を課しました.
- 最初(1連鎖目)はちょうど4個消え,2連鎖目もちょうど4個消えます.
- 消える4個+4個以外のぷよ(おじゃまぷよを含む)は使用しません.
- フィールドは6列です(7列を使う連鎖は,認めません).
- 鏡像は同一とします.
- 組み方や発火点が違っていても,消去を始める状態が同じなら,同一とします.
- 1組のぷよを置いて,消去を始めるという状態に限定します.
- 1連鎖目のぷよは「1」,2連鎖目のぷよは「2」で表記します.
- プログラムで生成するのではなく,手で(テキストエディタで)一つ一つ書きます.
同一の例を挙げます.鏡像は
2 21 21 211
と
2 12 12 112
です.発火点云々というのは,
2 12 112
の状態から「1」と「2」からなる組ぷよが落ちて来て,すぐ上に書いた2連鎖を作るのと,
12 12 12
の状態から以下同文というのは,消去を始める状態が同じになるので,別カウントにしてはいけませんよ,ということです.
「1組のぷよを置いて,消去を始めるという状態に限定します」については,これに反する2連鎖の例を挙げたいと思います.
2 2 1 1 1 1 2 2
「1」,「2」の順に消える2連鎖ですが,消去を始める一つ前の状態は
1 1 1 1 2 2
しかなく,この時点で「1」が消えなければならないので,これは認められません,という意味です.
たくさん制約を課しましたが,なんとか100を超えました.
# 1列,最下段は1 1 2 2 2 2 1 1 1 # 2列,最下段は11 2 2 2 1 12 11 # 2列,最下段は12 2 1 12 12 12 # 2 2 11 12 12 # 22 11 12 12 # 2 2 11 12 12 # 2 2 21 11 12 # 22 21 11 12 # 2 2 21 11 12 # 2 2 2 1 11 12 # 2 2 2 1 11 12 # 2 2 12 11 12 # 22 12 11 12 # 2 2 12 11 12 # 2列,最下段は22 2 1 1 1 12 22 # 2 2 1 1 11 22 # 2 1 12 11 22 # 12 12 11 22 # 2 2 11 11 22 # 22 11 11 22 # 2 1 11 12 22 # 12 11 12 22 # 21 11 12 22 # 2 1 11 12 22 # 3列,最下段は112 2 2 1 12 112 # 2 12 12 112 # 2 1 122 112 # 2 12 12 112 # 2 22 11 112 # 2 22 11 112 # 22 112 112 # 2 2 2 11 112 # 2 2 112 112 # 2 21 21 112 # 2 2 1 21 112 # 2 1 212 112 # 2 2 2 1 1 112 # 2 2 1 12 112 # 2 12 12 112 # 22 211 112 # 2 2 211 112 # 22 211 112 # 2 2 2 11 112 # 2 22 11 112 # 2 22 11 112 # 2 2 2 11 112 # 3列,最下段は122 2 1 1 12 122 # 2 1 1 1 2 122 # 2 2 1 11 122 # 2 12 11 122 # 2 1 112 122 # 2 12 11 122 # 12 112 122 # 2 21 11 122 # 2 21 11 122 # 21 112 122 # 2 2 1 11 122 # 2 1 112 122 # 2 2 111 122 # 22 111 122 # 2 2 111 122 # 2 2 111 122 # 22 111 122 # 2 2 111 122 # 3列,最下段は212 2 12 11 212 # 2 12 11 212 # 12 112 212 # 2 21 11 212 # 2 2 1 11 212 # 2 1 112 212 # 22 111 212 # 2 2 111 212 # 2 1 1 21 212 # 3列,最下段は222 2 1 1 1 1 222 # 2 1 1 11 222 # 1 12 11 222 # 1 21 11 222 # 2 1 1 11 222 # 2 11 11 222 # 2 11 11 222 # 2 1 111 222 # 12 111 222 # 1 2 111 222 # 21 111 222 # 2 1 111 222 # 4列,最下段は1112 2 122 1112 # 2 122 1112 # 2 122 1112 # 2 212 1112 # 2 2 12 1112 # 22 12 1112 # 2 122 1112 # 2 2 12 1112 # 2 221 1112 # 22 21 1112 # 2 2 21 1112 # 2 212 1112 # 2 2 2 1 1112 # 2 2 12 1112 # 4列,最下段は1122 2 1 12 1122 # 12 12 1122 # 1 12 2 1122 # 22 11 1122 # 2 2 11 1122 # 2 112 1122 # 2 11 2 1122 # 2 1 21 1122 # 2 2 1 1 1122 # 2 1 12 1122 # 2 1 1 2 1122 # 2 211 1122 # 2 2 11 1122 # 22 11 1122 # 2 112 1122 # 2 2 11 1122 # 2 112 1122 # 4列,最下段は1222 2 1 1 1 1222 # 2 1 11 1222 # 12 11 1222 # 21 11 1222 # 2 1 11 1222 # 2 111 1222 # 2 111 1222 # 2 111 1222 # 5列,最下段は11122 122 11122 # 2 12 11122 # 2 12 11122 # 2 21 11122 # 2 2 1 11122 # 2 12 11122 # 5列,最下段は11222 1 12 11222 # 2 11 11222 # 2 1 1 11222 # 2 11 11222 # 2 11 11222 # 6列,最下段は111222 1 2 111222 # 12 111222 # 2 1 111222
それぞれの連鎖の状態(パターンと呼びます)の前に「#」を書いています.パターンを「#」で区切っている,とも言えます.この記号の使い道は別のところにありまして,具体的には,テキストエディタの上で,「#」を「#」に一括置換すると,パターンがいくつあるかを知ることができます.138と出ました.
いくつかの「#」の行を見れば分かるとおり,最下段が何になるかで場合分けしてから,それぞれでパターンを漏れなくダブりなく,書いていきました.
「2連鎖100種類書く」というのは,10年ほど前,ぷよぷよに耽っていたときに,ある達人から聞いた,連鎖力をつけるための訓練の一つです*1.
他の色のぷよやおじゃまぷよを段差として利用したり,5個以上消しや同時消しも許したりすれば,もっともっと2連鎖のパターンを書くことができます.なのですが,4個+4個という最小のケースでも,100通りあることを確認でき,とりあえず満足です.