A - Silhouette Block Puzzle Creation 解説 by poka

メモ書き

はじめに

メモ書きです。

解法の大枠

ランダムプレイアウトをしました。

詳細

置ける場所全部にブロックを置いた際、上から見ると各Zにおける平面(XY平面)は長方形からなっている。
(seed0の23のシルエットではZ=0は4x4, Z=1は2x2, Z=2は3x3, Z=3は2x2, Z=4は5x4の長方形からなっている)
複雑な平面図形でもXY平面に置けば、シルエットを満たすかどうかは縦と横のサイズだけで決まる。
このことから、片方のシルエット組のXY平面にもう片方のシルエット組から抜き出した平面図形を配置するという方針を取った。

seed0を例にすると、シルエット23の4x4, 2x2, 3x3, 2x2, 5x4に当てはまる平面図形をMCのシルエット側から抜き出すことを考えればよい。
各平面図形の抜き出す場所には複数の候補があるため、それをランダムで選ぶランダムプレイアウトを採用した。
また、2つの平面を合体させて立体にできそうなときは確率で合体させるようにした。

これが終わってもシルエットが一致していない場合は、1~3のサイズのブロックを配置してシルエットを一致させた。

その他

ChatGPT(GPT-3.5)を使ってダッシュボード作って試行錯誤の効率がアップした。
ほぼ知識が無い状態でもそれっぽいものが作れたため、ChatGPTはローカルのAHC環境整えてみたいがどうすればいいかわからないって人の味方かもしれない。

投稿日時:
最終更新: