くだらです。
わたしはぷよ通に加え初代ぷよも好きですが、そこにさらに加えてなぞぷよも好きです。
どれくらい好きかというと、ソルバーおよび自動作問アプリを作るくらい好きです。
こういうのです。通称
「なぞぷよジェネレータくん」です。
条件を指定したらそれに沿って自動で問題を作ってくれるワケですが、やってることはランダムに配置しまくって条件をクリアするまでひたすら繰り返してるだけなので、生成される問題の質に関しては基本ノータッチです。
ここらへんもっと上手く改良して、「人が難しいと思うなぞぷよ」をうまく定量化できればいいんですけど、難しそうなのもあってあんまり手を出してません。
なので見た瞬間に答えが分かるようなクソしょーもない問題も多いわけですが、たまに悩んでしまう問題も生まれます。
そういう問題だけを抽出して、私が考えて作りました感を出してツイッターに投稿することで承認欲求を満たすのが最近のトレンドです。
そういうわけで、今回はそんな問題たちをまとめてみました。
ツイッターで公開してるやつばかりなので、見てる人は大体知ってるかもしれない。
私は作問において生成ボタンを押しただけです。
画像クリックでシミュレータに飛びます。
1問目「2手3連鎖するべし」
1問くらいは未公開の問題あったほうがいいかなっていう気持ちの表明。
あとバランス的に2手も1個くらい入れとこかなっていう。それだけ。
2問目「3手4連鎖するべし」
簡単そうに見えて、ちょっと考えちゃう系問題。
難しくはないけど、解けたらなるほど~ってなるちょうど良いバランス感。すき。
3問目「3手5連鎖するべし」
初期配置がめちゃくちゃ尖ってますが、これも単なるランダム配置の偏り。
地味に結構難しい。なぞぷよ慣れてない人だと結構ハマるかもしれない。
4問目「3手5連鎖するべし」
難しくはないけど、初期配置のL字の位置関係が見た目いい感じ。ただしこれもランダム配置の産物。
消え方もなぞぷよによくある感じで、教科書的な美しさがある。
5問目「3手5連鎖するべし」
前の問題とちょっと似てる。
ありがちなぞぷよなので、慣れてる人なら瞬殺できそうな問題。
6問目「3手4連鎖するべし」
これは癒し寄りの問題。
なぞぷよ頻出の消え方をコンパクトにまとめて問題にしました感。勝手にまとまっただけなんですけど。
どうでもいいけど画像に操作パネルついてたりクリア条件消えたりで統一感しっかりしろ
7問目「3手4連鎖するべし」
Twitterに投稿した時はあんまり伸びなかったけど、個人的にはけっこう好き。
伸びるときと伸びないときの差がよくわからない。
8問目「3手6連鎖するべし」
数少ない3色かつおじゃまなし問題。
ジェネレータくんはどうも3色以上だとあまり難しくならない傾向にあるので、基本的に2色で作問することが多いです。
なんていうか、体感良い問題率が高くなるような条件を人間が手探りで探しているところはあり、やはり人間は労からは逃れられないんだなと思います。
9問目「4手4連鎖するべし」
ジェネレータくんには初期配置に使う列を指定する機能もあるので、それを使ってツインタワー系の問題作ってみたシリーズ。
わりとすぐできたので、案外ジェネレータくんに適した条件なのかもしれない。
10問目「4手4連鎖するべし」
ツインタワー系2問目。見た目的にさっきの問題と対になっている感じがなんとなくよくないですか?
ちなみにこの2問はぷよイベント「UT杯」に提供しました。
提供時になぞぷよ勢の作るなぞぷよはそれっぽさがあってすごいとの感想を貰いましたが、あの、ジェネレータくん作です…
11問目「4手5連鎖するべし」
ツモ順の偏りやべーし絶対簡単でしょと思ってたら案外悩んでしまった問題。
秒で解ける人もいれば嵌る人もいたし個人差ありそう。
どうでもいいけど、色の順番的に2色問題を赤緑ばっかりで作ってたら「赤緑の2色問題はジェネレータ問題」っていうミーム汚染感があったので抵抗した。
以上です。解けた、解けない、感想等、お待ちしてます。
以下余談
開発的な話①
ジェネレータくんがあると、別の作業中であってもすぐ現実逃避でとりあえず作問させてしまうところがあり、作業が捗らなくてキレます。
ただ逆にそれだけの数を作問させているんですが、実際にいい感じの問題になるのはここで紹介した10問とかそこらだったりするわけです。
なんとかもうちょっと打率を上げたいわけですが、なにか良い案はないものか…
自分が現時点でやっていることは、「連結しているぷよが段差ズレによって分離され、それぞれ別に消える」、いわゆる
「連結の分離」を検出する機能をつけていて、分離が起きた問題だけを生成するモードが最初の画像にある「高難易度モード」です。
おそらく効果はあると思いますが、条件によってはそもそも分離が起きにくく作問が困難になる問題もあったり。
あとは、
「発火に使うぷよ(1連鎖目のぷよ)が、初期盤面に何個置かれているか」も数えています。
これが少ないほど難しいかなと思って付けた機能ですが、実際どうなのかはなんとも。
ちなみに現在は表示だけするもののそれで出力にフィルターはかけてません。
自分とは別にジェネレータくんを作ってる某人は、「n連鎖するべし」の条件時に「n-1連鎖する置き方の数」を数える機能をつけて、これが多いほど難しいとしたりしてるらしい?
実装はしてないけど考えている案には
・「ハチイチ発火」を検出(最後の手の1つを発火に使い、もう1つが2連鎖目に使われる)
・「3連結しているぷよに4個目を置いて発火」ではなく「2個1個に別れているぷよを4個目のぷよで繋げて発火」を検出
あたりがあります。
要はどっちも発火点が見にくいほど難しいはずだ、っていう話です。
次に現実逃避したいタイミングができれば実装してみたい。ただ効果あるのかはやってみないとよくわからないからツラい。
なにかいい案あればコメントで教えてください。
開発的な話②
このジェネレータくん、高速化の面がうんちなので手数多くなるとすぐ厳しくなったり、一部クリア条件にしか対応してなかったりで、粗まみれなわけですが、これで遊びたいって需要はけっこうあるんでしょうか。
勉強を兼ねてブラウザで動くものを作ってみたい欲は最近あったりなかったりします。
個人的にはこの技術を独占していたい気持ちもなくはないですが!!
もっとも自分程度で作れるものなので、やってないだけで出来る人ならすぐ出来ると思いますけどね。
あとそもそも作問を自動に任せるっていうのは言ってしまえば邪道なので、そこら辺の価値観の問題もあるかもしれない。
ただ思うのは、自分は怠惰なので出力時点でほぼ100%の出来の問題ができるまで待ってしまいますが、惜しい問題は比較的たくさんできるので、そういった問題をうまく自分の手でアレンジできる人なんかはより有用に使える気がします。
どういう問題が人間にとって難しいか、あるいは簡単か、というのは困難な問題ですね…。単純に難しくしたいだけなら例えば「10手n連鎖、別解無し」みたいなのを力任せに探索すればいいのでしょうが、それは幾ら難しくても全然面白くないでしょうし。
時間かかりましたが全問解けました、どれも面白かったです。
「癒し寄り」となっている6問目が多分一番手間取りました…