ほむのアトリエ

不思議な単位の錬金術士

OpenSiv3Dで全連鎖理論を考える

はじめに

この記事はCCS Advent Calendar 2020 13日目の記事です。

adventar.org

 

昨日のFidiaくんの記事です。

note.com

 

画像

ふえぇぇぇぇぇぇぇ(ようじょ)

 

こんにちは。CCSの清楚担当、ほむです。

 

「宇宙」に釣られてきた地学オタクとボルテ勢の方々、すみません。

大宇宙ステージはカス

 

昨年に引き続きぷよぷよの話をします。

Wikiみたいなカス記事じゃないので安心してください。

homu-neko.hatenablog.com

なんで今年はぷよぷよ学基礎B」じゃないの?????

 

なんでやろなぁ… 

 

申し訳程度のCCS要素として、OpenSiv3Dで連鎖のシミュレーターを作りました。

(大体500行)(えらい)

 

 

全連鎖理論とは

世界の均質化または未来と現在を等価にする操作のことです。

 

嘘です。

Tom氏が提唱したぷよぷよの理論のことです。

ch.nicovideo.jp

「超上級者向け」と書いてありますが、内容がとても難解なわけではありません(意味不明な箇所はある)

使いこなすのが難しいのです。

上記のTom氏のブログに書いてあることもこの下で解説していますので、読まなくても問題ありませんが、面白いので暇なときにでも読んで下さいね^^

 

まずは基本用語を確認していきましょう。

 

キーぷよの重要性

この連鎖を繋げるにはどうすればいいか。

f:id:homu_neko:20201117131715p:plain

1列目に赤を置けばいいですね。これにより、6列目の赤で発火すると土台に繋がり10連鎖になります。

このようなぷよをキーぷよといいます。 

 

逆に考えれば、キーぷよを置かなければ連鎖が止まる

 

 この場合、赤を置かなければ赤→黄→青→緑の4連鎖止まりになりますね。

 

大連鎖を組んでぶっ放すのはとても楽しいのですが、そんなに単純なゲームではないのです。

このゲームは割と理不尽なところがありまして、相手の2,3連鎖をも受けたらおじゃまぷよで埋まります。

こうなってしまうと発火までにかなり時間がかかりますよね?

その間に追撃されて負けます。オワッタ

 

相手が短めの連鎖(催促・潰し等)を撃ってきたときは(相手の連鎖数+1)連鎖を返してあげるのがもっとも効率がいいと言えますね。

※同時消しを考慮すると微妙に変わります。

 

こちらはリソースを残しつつ、相手に少量のおじゃまぷよを送ることができます。

つまり、キーぷよの有無で連鎖数を自在に操れる!

このテクニックを「キーぷよ外し」 といいます。

 

この考え方が全連鎖理論の基本となります。

ぷよぷよを始めたばかりだと連鎖をできるだけ多くするためにキーぷよを早めに置いてしまいがちですが、それをあえて後回しにすることで高度な中盤戦を繰り広げることができるというわけです。

 

さて、ここから全連鎖理論の話に入っていきますが……

Tom氏の定義には一部あいまいなところがあるので、この記事内ではそれを基にした独自の定義を用います。

 

領域と操作

定義する上で盤面を座標平面で表したいので、左下を点(1,1)、右上を点(6,13)と定めます。

x座標を列、y座標を段と呼ぶことが多いです。

 

確定領域

ぷよが置かれていない点(x,y)に色cのぷよを置くと2連鎖以上となる時、消えたぷよが初めに置かれていた領域を確定領域D(x,y,c)とします。

 

f:id:homu_neko:20201118002404p:plain

 先程の盤面をシミュレーターに入力しました。

 

f:id:homu_neko:20201118003707p:plain

確定領域D(6,8,r)が赤で塗られています。

これは点(6,8)に色r(赤)が置かれたときに2連鎖以上となり、赤で塗られた範囲のぷよが消えることを示しています。

横の数字は点数です。

 

D(4,7,y)D(6,8,r)の上にありますね?

確定領域が2種類あるようです。

こちらも見てみましょう。

 

f:id:homu_neko:20201118003728p:plain
D(4,7,y)は黄で妥協発火した時の確定領域です。

 

このように確定領域は一つの盤面において複数存在する場合があります。

確定領域の数が多いほど緊急発火性に優れていると言えるでしょう。

 

※Tom氏の確定領域の定義

「ある列の一番上のぷよを削除する」操作を任意回繰り返した後の盤面において、ある点にある色のぷよを置くと2連鎖以上となるとき、消えたぷよが初めに置かれていた領域を確定領域としています。多分。

本人が厳密に定義していない上に、感覚的なところがあるため別の定義を用いました。

 

未確定領域

確定領域ではない領域を未確定領域U(x,y,c)とします。

よって

D(x,y,c)+U(x,y,c)=(盤面全体)

となります。

 

f:id:homu_neko:20201118004428p:plain

未確定領域U(6,8,r)が緑で塗られています。

先程のキーぷよを外した盤面を入力すると、確定領域D(6,8,r)の下半分が未確定領域U(6,8,r)に移動したことが分かります。

 

ぷよが置かれていない領域も未確定領域に含みますがシミュレーター上では着色していません。

 

確定操作

未確定領域U(x,y,c)内の点がある操作により確定領域D(x,y,c)に移動した時、この操作を「確定操作」とします。

 

f:id:homu_neko:20201118004928p:plainf:id:homu_neko:20201118005123p:plain

(1,5)に赤を置くことで全てのぷよがU(2,6,g)からD(2,6,g)に移動しました。

この場合「点(1,5)に赤を置くこと」が確定操作となります。

 

未確定操作

確定領域D(x_1,y_1,c_1)内の点がある操作により未確定領域U(x_2,y_2,c_2)に移動して、

(x_1,y_1)=(x_2,y_2)」または「点(x_1,y_1) \in D(x_2,y_2,c_2)」の時、

この操作を「未確定操作」とします。

 

f:id:homu_neko:20201118005123p:plainf:id:homu_neko:20201118005607p:plain

 操作前の盤面(左)のD(2,6,g)の下部について考えます。

(1,6),(2,6)に赤、点(1,7)に緑を置いた盤面(右)に注目すると下部が未確定領域U(2,7,r)となっています。

また点(2,6) \in D(2,7,r)となり、未確定操作の条件を満たしていることが分かります。

よって「点(1,6),(2,6)に赤、点(1,7)に緑を置く」操作は未確定操作であると言えます。

 

ですが、下部を無視して赤→緑の2連鎖に注目すると、「点(1,7)に緑を置く」操作は確定操作にもなっているのです。

このように、一つのぷよを置く操作は確定操作かつ未確定操作である場合があります。

 

確定操作の不可逆性

確定操作と未確定操作を比較してみましょう。

 

確定操作は、要はキーぷよを置く操作のことです。

これは分かりやすいと思います。

 

逆に未確定操作は、置いたキーぷよを取り除く操作のことです。

1連鎖で消したり、同時消しを起こして止めたりする(キーぷよ飛ばし)方法がありますね。

 

そして、キーぷよは比較的高い場所に置かれていることが多いですね。

 

つまり……

未確定操作の方が圧倒的にコストが高い!

 

ですから、未確定操作の不要な盤面の方が理想的であると言えます。

もう一度確認しましょう。

未確定操作は、置いたキーぷよを取り除く操作のことです。

 

え、じゃあ…

キーぷよ置かなければいいのでは……?

 

なるほどな、これが世界の均質化で未来と現在を等価にする操作か……

 

弥生時代

f:id:homu_neko:20191201165805p:plainf:id:homu_neko:20201118013220p:plain

弥生時代とは、高床式倉庫に見える土台である。

え、見えないって???

(別名:卑弥呼)(???????????????????) 

 

4色の座布団を下2列に敷き詰めた土台です。

とても単純ですがツモ制約等で組むのが難しい形です。

 

f:id:homu_neko:20201118065222p:plain

弥生時代の一番分かりやすい繋ぎ方がこれ(多分)

最大の確定領域はD(5,3,g),D(6,3,g)ですが、D(1,3,y)の緊急発火点もあります。

弥生時代の強みは組みにくさ相応の受けの広さなのです。

 

弥生時代弥生時代やほかの土台

f:id:homu_neko:20201118062642p:plain

(Tom氏の配信より)

 

Tom氏「うん?弥生じd弥生じゃねぇこれ。これ弥生じゃねぇ。なんですけど、まあ、それもいいんですよね。それも含めて弥生時代

ぼく「???????????????????????????」

 

つまり弥生時代は全てである…

 

 

弥生時代の派生も弥生時代である」的なことなのでしょう。知らんけど。

 

弥生時代は受けが広いため多くの派生があります。

ツモが悪い場合、純弥生時代(勝手に命名)を無理やり組むよりも派生形にした方が強くなる場合が多いと思います。

純正弥生時代になったらラッキーって感じで。ラッキー…?

 

未確定土台

f:id:homu_neko:20201118013220p:plain

弥生時代をよく見てみましょう。

なんと、確定領域がありません! !

このような土台を「未確定土台」と呼ぶことにしましょう。

今決めました。

 

第一折り返しについても、これに含むとしましょう。

 

f:id:homu_neko:20201118070753p:plainf:id:homu_neko:20201118070757p:plain

fron積み(左)やGTR(右) は確定領域が存在します。

つまり未確定土台ではありません。

この2つの土台は、どちらも2連鎖が確定しています。

 

上の図では省略しましたが、当然この先に連鎖尾が繋がっています。

連鎖尾というのは普通、確定領域となっているので、土台から連鎖尾まですべてが確定領域となっているのです。

 

このような土台は構築しやすく、暴発も起きにくい、連鎖尾も分かりやすいものが多いです(ぷよぷよを始めたばかりの人は取り敢えずGTR覚えておけばいいみたいなとこあるよね)

 

しかし、連鎖数を自在に操ることはできません。半分くらいは確定してしまっている場合が殆どです。土台の発火点の上でキーぷよ外しをする必要があります。

 

なんて自由度が低いんだ!!

(筆者はめちゃくちゃfron積みやGTRを使います)

 

全連鎖理論に基づくとよろしくない形であるというだけです。

ぷよぷよというゲームにおいては強いですよ。

 

f:id:homu_neko:20201118073510p:plain

その他の未確定土台の代表例としてL字土台(別名:だぁ積み・スーパー耳かき連鎖・丸め込み)を挙げておきます。

なんとなく分かってきたのではないでしょうか?

 

未確定土台はL字や座布団のような3連結の組み合わせ方が重要なのです!!

 

宇宙

宇宙って、何だろうね。

 

 

 

f:id:homu_neko:20201118200520p:plain

これが宇宙や…

 

宇宙猫になりました…(*´Д`*) | 二宮和也くん応援日記☆ゆる〜く好きを叫ぶブログ

いや、分からんよ、この土台。

なんやねんこれ……

※この記事を書くためにめちゃくちゃ練習しましたが、分かりません

※誰にも分かりません

 

f:id:homu_neko:20201118201835p:plain

宇宙はTom氏が考案した土台(いつもの)で、全連鎖理論を折り返しに適用した理論上最強といわれる土台です。

理論上最強ですが、考案した本人も難しすぎてこれよりは簡単な弥生時代にシフトしていったらしい……えぇ(困惑)

 

宇宙の研究はぷよらーの間でも結構活発に行われています。

そもそも「宇宙」という名前は多分自由度が超高いことを表していると思うので(所説)、それはそうって感じ。

 

Tom氏はこう言っています。

「宇宙はキーぷよを外していないと意味がない」と。

 

f:id:homu_neko:20201118202342p:plain

土台完成直後にキーぷよ置いて確定させちゃいけないよ、ってことです。

これはあんまりよろしくない例(でもこうしちゃう)

 

宇宙が理論上最強と言われるのは、折り返しのすべてのキーぷよを外せて、かつその受け入れ範囲が3列あるから。

 

Tom氏曰く「組む難易度は高いが、それは土台としてのデメリットではない」とのこと。つまりプレイヤーの実力不足というわけ。

実力不足ですみません。

 

宇宙の理想形は宇宙であるか

見出しの時点でちょっと意味が分かりませんね。

 

「宇宙は柔軟性が高いのが強みなのだから、宇宙の理想形(先ほど紹介)に固執してしまうこと自体が宇宙を弱くする」という意味です。

 

つまり、無理やり理想形にするなら派生しろ、と。

ちぎりも増えて時間がかかりますし、宇宙のそもそもの弱点「速攻に弱い」をカバーできなくなります。

 

「この形を目指す!」という意識を捨てなければ宇宙に到達することはできないのです。

 

月の満ち欠け

f:id:homu_neko:20201118212740p:plain

宇宙を組むとき、大抵の場合左下のL字と点(3,4)は同色となります。

この点(3,4)を含む連結部分を「月」と呼び、1連結(1個)の場合「新月」、3連結の場合「満月」と呼びます。

上の状態は新月です。

 

f:id:homu_neko:20201118214244p:plainf:id:homu_neko:20201118214258p:plainf:id:homu_neko:20201118214341p:plain

 満月はこの3通り。

で、新月と満月どっちが強いのかという話ですが……

 

満月は中盤戦を攻撃的なものに変化させるのです。

乱戦開始や……

 

あくまでも試合展開を決めるものであって優劣はつけられないですね。

 

なぜ満月にすると攻撃的になるのか、と言いますと…

そもそも新月のままだったら点[tex(3,4)]のぷよは中盤で利用されないわけですから、中盤的にはゴミぷよになってしまうことになります。

つまりほぼ確実に左下のL字に対応したキーぷよであることが分かります。

それにより確定領域が生まれますね。

 

それに対し満月の場合は、左下のL字に対応したキーぷよかもしれないし、そうじゃないかもしれないというあいまいな状態が生まれます。

 

f:id:homu_neko:20201118220601p:plainf:id:homu_neko:20201118220754p:plainf:id:homu_neko:20201118220658p:plain

2ダブ(左)、発火点(中)、キーぷよ(右)になりました。

よって相手は何をされるか不確定な状態で中盤を戦うことになります。

だから攻撃的な中盤戦になるというわけです。

新月を満月にするという操作も、自由度をさらに上げているわけです。

 

「宇宙が人類に課す最も困難な課題は月」とも言われています。

月を制する者が宇宙を制するかもしれん…

 

マクロコスモス

 宇宙には無限の広がりがあるのですよ……

 

宇宙は宇宙としては狭すぎる……

座布団から連鎖の流れを感じたらそれも宇宙……

太陽系のその先を見ることで宇宙を知るのだ……

 

今これを読んでいるあなたも宇宙の一部です。

そういうことです(????)

 

Tom氏が考えた3つの形を見ていきましょう。

 

カシオペア

f:id:homu_neko:20201119001949p:plainf:id:homu_neko:20201119002012p:plain

縦3の存在感が凄いですね。未確定土台です(いつもの)

 

f:id:homu_neko:20201119002606p:plainf:id:homu_neko:20201119002616p:plain

このようにキーぷよを乗せることでD(2,5,b)の巨大な本線が完成します。

鶴亀を利用した連鎖尾ですね。

 

f:id:homu_neko:20201119003209p:plainf:id:homu_neko:20201119003221p:plain

青の間にぷよを置かない場合、このようなキーぷよの置き方があります。

カシオペア=ヘルファイアですね(つよそう)

 

友達減るファイア

 

アンドロメダ

f:id:homu_neko:20201119010402p:plainf:id:homu_neko:20201119010413p:plain

未確定土台です(知ってた)

 

f:id:homu_neko:20201119011231p:plainf:id:homu_neko:20201119011244p:plain

 キーぷよをこのように置くと本線D(2,5,b)と緊急発火の4連鎖D(3,5,r)が現れます。

つよつよだ……

緊急発火後も宇宙は壊れないのがポイント高いですね。

 

(5,5),(6,5)のキーぷよを外すと緊急発火の連鎖数を減らすことができます。

 

f:id:homu_neko:20201119012305p:plainf:id:homu_neko:20201119012318p:plain

(5,6),(6,6)を緑に変え、点(5,7),(6,7)に赤を置くと本線D(2,5,b)を維持しつつD(3,5,r)を大きくできますね。

 

ベテルギウス

f:id:homu_neko:20201119013528p:plainf:id:homu_neko:20201119013543p:plain

曲芸の領域。色制約厳しすぎィ!!

未確定土台です(ここまでテンプレ)

 

f:id:homu_neko:20201119013840p:plainf:id:homu_neko:20201119013912p:plain

????????????????????

 

いや分かるんだけどさぁ、鶴亀さぁ……

 

第N次元天蓋

Tom氏「数年ぶりに最強の土台を思いついてしまった・・・これは間違いなく流行る」

ぼく「???????????????????????」

 

N次元天蓋とは、N個の「次元」と1個の「天蓋」「月」「橋」をもつ土台のこと。

Tom氏曰く「宇宙の実戦投入モデル」

目で見てもらったほうが早いので紹介していきます。

ちなみに1 \leqq N \leqq 7です。

 

第1次元天蓋

f:id:homu_neko:20201118152019p:plainf:id:homu_neko:20201118152035p:plain

このような形が第N次元天蓋の基本形、第1次元天蓋です。

もはや当たり前かのように未確定土台。

 

用語の説明をしていきましょう。

 

「次元」:L字のこと。画像の赤ぷよ。

「天蓋」:次元の上に置かれた座布団のこと。画像の上側の黄ぷよ。

「月」:次元と天蓋の間を埋めるぷよのこと。画像の緑ぷよ。

「橋」:次元連鎖尾の間にある座布団のこと。画像の下側の黄ぷよ。

 

この「月」は宇宙の「月」と同様に「新月」か「満月」を考えることができます。

 

第2n次元天蓋

f:id:homu_neko:20201118160455p:plain
第4次元天蓋を例に考えて見ましょう。 

別に2でも6でもいいんだけども。

 

f:id:homu_neko:20201118160523p:plainf:id:homu_neko:20201118160537p:plain

次元と天蓋の色次第ではありますが、この配色である場合はD(4,3,g)が存在します。

連鎖尾をもう少し増やすと、点(4,3)にはぷよが置かれている場合が多いと思いますが、それでもD(4,4,r)があります。

 

ここで重要なのが月です。

2n次元天蓋(次元が偶数個)では月は必ず盤面の外側にあるため、必ず新月となります。

 

第2n+1次元天蓋

f:id:homu_neko:20201119021400p:plain

例として第5次元天蓋を用意しました。

 

f:id:homu_neko:20201119021553p:plainf:id:homu_neko:20201119021607p:plain

 この配色ではD(4,3,g)が存在します。

また点(4,3)にぷよが置かれている時はD(4,4,r)が存在します。

このD(4,4,r)は実質本線ですね。

 

同様に月に注目してみましょう。

2n+1次元天蓋(次元が偶数個)では月は必ず盤面の内側にあるため、第2n次元天蓋と異なり満月になることができます。

 

もう一つの月

宇宙と第N次元天蓋(4 \leqq N \leqq 7)を比較してみましょう。

 

f:id:homu_neko:20201118212740p:plainf:id:homu_neko:20201119028048p:plain

宇宙(左)と第4次元天蓋(右)です。

 

一緒やんけ……

 

第3次元天蓋の方が例として適切では?と思ったそこのアナタ!

そうじゃないんだよなぁ……

 

宇宙の「月」とは何だったか?

(3,4)を含む連結でしたね?

 

ん?

 

N次元天蓋には月が2つあるな???????

 

N次元天蓋は(3 \leqq N \leqq 7)において宇宙の「月」を含むのです。

そして(4 \leqq N \leqq 7)においては、その「月は」必ず満月となります。

(N=3)の時は新月または満月となります。

 

紛らわしいので、2つの「月」を定義します。

 

「真の月」:宇宙における「月」。

「偽の月」:第N次元天蓋における「月」。

 

この2つはどちらも新月・満月の状態を持ち、それはNの場合分けで考えることができます。

 

真の月は

1 \leqq N \leqq 2のとき、存在しない。

N=3のとき、新月または満月。

4 \leqq N \leqq 7のとき、満月。

 

偽の月は

N=1のとき、新月

N=2nのとき、新月

N=2n+1のとき、新月または満月。

 

真の月が存在しないという謎現象が起きていますが、許してください。

あとで偽の月も消えるので(?????????????)

 

真の月が満月であるとき、中盤戦がより攻撃的になることは先ほど示しました。

では偽の月にも左右されるのか、考えていきましょう。

 

新月M_N、満月をM_F、どちらか不確定な状態をM_U、月がない状態をM_\phiとします。

また真の月の状態を表す関数をt(N)、偽の月の状態を表す関数をf(N)とおきます。

 

 {t(N)=\begin{cases}M_\phi (1 \leqq N \leqq 2) \\M_U (N=3) \\M_F (4 \leqq N \leqq 7)\end{cases}}\\{f(N)=\begin{cases}M_N (N=1) \\M_N (N=2n) \\M_U (N=2n+1)(1 \leqq n \leqq 3)\end{cases}}

 

t(N)f(N)の組を考えます。

{(t(N),f(N))=\begin{cases}(M_\phi,M_N) (N=1) \\(M_\phi,M_N) (N=2) \\(M_U,M_U) (N=3) \\(M_F,M_N)(N=4) \\(M_F,M_U)(N=5) \\(M_F,M_N)(N=6) \\(M_F,M_U)(N=7)\end{cases}}

 

(t(3),f(3))=(M_U,M_U)のみ2つの月の状態が同じものとなっています。

どちらも不確定な状態で強そう!

と思うかもしれませんが、形を思い出してください。

そもそも第3次元天蓋においては真の月と偽の月が一致します。 

 

ですから、攻撃的かという観点では満月の状態の宇宙とさほど変わらないと考えられます。

 

N=3の場合を除いて、2つの月がどちらも満月になる場合を考えていきます。

プレイヤーの操作次第でM_UM_FまたはM_Nに変化させることができるので、N=5またはN=7のときのみ、(t(N),f(N))=(M_F,M_F)となることが分かります。

 

満月が2つ!つよそう!!!!!!!

(わからん)

(有識者検証してくれ)

 

 まあツモ順にも影響されてしまうので理想の第N次元天蓋を組むのは難しいでしょうね。

実力不足~~~~~~

 

宇宙の拡張

 Tom氏により第N次元天蓋の派生として紹介されているものです。

 

陰陽・陽陰

f:id:homu_neko:20201212103524p:plainf:id:homu_neko:20201212103538p:plain

天蓋を置かずにL字を2つずつ置いています。

左の形を「第1次元陰陽」、右の形を「第1次元陽陰」といいます。

 

月食

f:id:homu_neko:20201212104258p:plain

新月が連鎖尾のぷよと同じ色にしたこの形を「第1次元天蓋月食」といいます。

月が2段目にないといけないので、月食の場合必ず次元は1つとなります。

 

命名

積み重ねた順にパーツ名を並べ、月食ならば最後に「月食」とつけるだけです。

 

f:id:homu_neko:20201212104704p:plainf:id:homu_neko:20201212104714p:plain

 左の土台は、次元が4つで天蓋、その上に陽陰なので「第4次元天蓋陽陰」。

右の土台は、次元が1つで、その上に陰陽と天蓋が3つ、そして月食なので「第1次元陰陽天蓋天蓋天蓋月食」。

 

f:id:homu_neko:20201212105245p:plain

第1次元陽陰天蓋陰陽陽陰天蓋天蓋陽陰!!

※Tom氏のツイ―トより

(なんと、死んでいる)

 

練習問題です。

 

f:id:homu_neko:20201212105850p:plainf:id:homu_neko:20201212105745p:plain

左:第3次元天蓋陰陽陰陽陽陰陰陽

右:第1次元天蓋天蓋天蓋天蓋天蓋天蓋天蓋天蓋天蓋天蓋天蓋月食

(どっちも死んでるんだよなぁ)

 

おわりに

このシミュレーターをダウンロードしたい方はこちらからどうぞ。

このアドカレ書くためだけに突貫工事したので操作方法もめちゃくちゃ適当です。

(リンク切れてたらごめんね)

drive.google.com

 

会室でぷよぷよしてぇ~~~~~

参考文献

ch.nicovideo.jp

 

ch.nicovideo.jp

puyo-camp.jp

puyo-euphonic.com

 

 

おまけ

*1

カロリーゼロのZONe登場!デジタルパフォーマンスエナジー「ZONe Unlimited ZERO Ver.1.0.0」発売!  (2020年12月1日) - エキサイトニュース

 

新作おいしかったです。

*1:ゲーミング魔剤