わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

ぷよぷよ2連鎖100種類

ぷよぷよ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通りあることを確認でき,とりあえず満足です.

*1:また別の達人からは,「ふたりでぷよぷよ」をスタートさせ,片方のプレイヤーのみを操作し,もう片方はぷよを自由落下させて,「ばたんきゅ〜」になるまでに8連鎖を作れるようになりましょう,と言われたものです.