1790

セガぷよの配ぷよデータを公開してみました

by
低頭ちゃん
低頭ちゃん
前回の投稿はプログラムを公開することを前提に書いていたのですが、編集中に「アルゴリズムを公表してしまうのはまずいのでは?」と思い至って大部分を削除したため、中途半端になってしまいました。
書き方が分かりにくかったかもしれませんが、自分が作成したプログラムは、基本的には四色通ルール対戦で使われている(と思われる)配ぷよに関するものです。この投稿もそのことを前提に書きます。

タイトルの通り、自分のプログラムが出力した配ぷよデータをアップローダーで公開しました。
リンク (改行CRLF版リンク よくわからない人はこっちの方がいいかも)
特殊な解析などによらないと容易には得られないようなデータ(前回投稿で触れたツイートの方(注1)については、実際にどんな解析をしたかは自分には分からないところもありますが)を勝手に公開してよいか迷いましたが、データといっても基本的にはただの不規則なぷよの配列なので、プログラムよりも問題は小さいだろうという判断です。
(また、配ぷよパターン数がそれほど多くはないので、特殊な解析によらずとも、なんらかの自動化で大部分を収集できる可能性は十分にあります。)
公開の不適切性について、コメントなどで納得のいく指摘があれば、削除を検討します。

データは65536行のテキストファイルで、一行に一試合分(128手でループするので256個)のぷよが順に羅列される形式です。
rgbypのアルファベットが、赤緑青黄紫に対応しています。
軸ぷよが先になっていることに注意してください。

投稿タイトルには、さもこのデータが実際に使われている配ぷよであるかのように書いてしまいましたが、あくまで自分が確認した範囲で正しそうだ、というだけではあります。(注2)
ただ、土曜日のぷよぷよカップの試合の配ぷよでも一致が見つかるようなので、現状でもローカル対戦、ネット対戦問わず多くの試合の配ぷよがこの65536通りからとられていると考えてよいように思います。
動画で長い手数が確認できる実例を一つ挙げると、ファイナルズのマッキー対fronの最後の一先(動画リンク)は、ファイルの34067行目にあります。(配ぷよbpbpbpypgybgbpbbpyby...)ご自分で確認される方は、ぷよクロなどの例もぜひ調べてみてください。

このデータを何に使うかと言えば、個人的にまずは「セガぷよの配ぷよの品質」に関心があります。
というのも、セガぷよのツモについては、時に「色が偏る」といった不平が聞かれるからです。
(配ぷよが数万通りしかないとしたらそれも問題だという話はあるかもしれませんが、その点は不問にしたとしてです。)
私自身はまだ簡単な統計しかとっていませんが、世評に反して、このデータは普通のランダムシャッフル(256個のぷよの配列にフィッシャー・イェーツ法を適用するなど)で生成される配ぷよに比べて、ほんの少しだけ「偏りが少ない」データになっているように見えます。たとえば、ゾロの出現率が低めになっているなどです。(「シャッフルが不十分」と表現することも可能かもしれません。これが意図的なものなのかどうかは疑問の余地もあります。)
ただし、このデータは、各ぷよが対等に扱われる普通のランダムシャッフルとは少し性質が違っているので、特定の区間を切り出して統計を取ったりすれば、何か望ましくない性質が浮かび上がってくるかもしれません。また、仮に配ぷよデータ自体に問題がなくても、配ぷよの選択法になにか偏りがある可能性もあります。(注3)ここでは性急な結論は避けて、興味を持たれた方の分析に期待したいと思います。

この議論をする上では、時に比較の対象となるACぷよ通の配ぷよがどんなものか知っておく必要もあるかもしれません。
(三色が二手か三手かというのはありますが、四色部分についての話です。)
現状私は、ACぷよ通はランダムシャッフルを目指していて、(注4)いろいろ問題(配色が偏る等を含めて)はあるにせよ、実際に概ね達成していると考えており、自分なりの根拠もありますが、これについては私よりよく知っている人がいると思うので詳しく述べるのはやめておきます。
(必要を感じたらまた何か書くかもしれません。)
それはともかく、仮にセガぷよのツモがACぷよ通より問題があるとは言えない、と結論できたとしても、ACぷよ通をゴールと考える必要はないでしょう。
多くの人が合意できる、より「良い」配ぷよがあるなら、そういう方向に移行していってほしいものです。

配ぷよデータの公開を受けて、開発者がゲームのプログラムを変更してしまえば、(それが低いコストではできない事情が何かあるかもしれませんが)このデータは直接役立つわけではないただのランダムなファイルになってしまいます。
とはいえ、ゲーム側が変更された後でも、データの分析から何か得られれば、開発にフィードバックされる可能性もあるでしょう。


この投稿を準備中に、配ぷよ分析に関する別の方の記事がアップロードされたようです。
https://puyo-camp.jp/posts/86112
あわせて読まれることをお勧めします。

(追記1)
最後のリンク先の記事の分析には問題があったとのことです(https://puyo-camp.jp/posts/86163)。
追記のついでに若干表現を修正しましたが、ほぼ投稿時のままです。

(追記2)
(注1)前回の投稿にも追記しましたが、こちらが情報源のツイートです。(スレッドに追加情報があります。)
(注2)(注3)このあたり、譲歩を含んだ書き方をしすぎたせいで誤解を生んだかもしれません。
まず私は現時点では、少なくともぷよスポ、ぷよクロ、ぷよテト、20thの特定の機能で使われる配ぷよは、全てファイル中の65536通りからとられると予想しています。
また、「配ぷよの選択法になにか偏りがある可能性もあります」とは書きましたが、現時点でそのようなことを疑う理由はないと思います。コンパイルぷよでは、性質の奇妙な乱数生成器を使っていて取れる状態が限られる、といった問題があったようですが、仮にそのようなことがあったとしても配ぷよの色の偏りに一貫した影響を与える可能性は低いように思います。

(注4)ほかの部分もそうですが、「ランダムシャッフル」と言っているのは、順列に関して一様なシャッフルということです。要するに、ACぷよ通のシャッフルは一様分布そのものではなかったとしても、色の偏りを抑える特別な工夫や誤算を含んではいないと思われる、と主張しています。
更新日時:2019/05/21 03:27
(作成日時:2019/05/20 00:05)
コメント( 3 )
こもさわ
こもさわ
5月20日 7時34分

もし全てのパターンを暗記していたとして、該当の配ぷよだとわかるのは大体何手目でしょうか。
というのも、ぷよぷよのAIを人間と戦わせるというときに配ぷよの予測が使えるのではないかと思ったからです。
人間もある程度早めにわかるのであれば、「このパターンだと後半に赤が偏っている」という検討もつけられたりするのかなと。

低頭ちゃん
低頭ちゃん
5月20日 9時29分

4手目で約2/3が、8手目で全パターンが確定するようです。
AIはともかく、生身の人間がこれを有効活用できるのか、興味をひかれるところです。

こもさわ
こもさわ
5月20日 21時23分

返答ありがとうございます。
しかし、8手目までの65536通りを一つでも覚えてそのパターンを引くことを考えると人間業ではありませんね。

コメントするにはログインが必要です
シェア