今日は、ローグライクRPGのマップを生成します!
サンプルマップ:
##########
#### F#
#### ##
## C#C#
# ## #
# C #E #
#### # #
# #
#P #
##########
#
壁でP
あり、プレイヤーの開始位置でF
あり、到達しなければならないフィニッシュであり、C
収集できるコインでありE
、戦うことができる敵です。
地図の仕様:
- 高さと幅は両方とも10から39の間でなければなりません。高さは幅と同じである必要はありません。
- マップの境界は壁で埋める必要があります。
P
左下隅に配置する必要があります。F
右上隅に配置する必要があります。- 1〜3人の敵がいるはずです。
- 2〜4枚のコインがあるはずです。
- 中央にある程度の壁があるはずです。そこから取得するためのパスでなければなりません
P
すべてにC
、E
とF
、プレイヤーが斜めに動くことができないということを念頭に置いて。 - 可能なすべての組み合わせには、発生する可能性があります。
ルール
- 最少バイトのプログラムが勝ちます。
- プログラムは何も入力しないでください。
- プログラムはエラーで終了しない可能性があります(致命的でない出力は問題
STDERR
ありませんが、マップ生成後に不正なクラッシュを起こすことはできません!) - 単一の末尾の改行が許可され、末尾のスペースが許可されます。
- 他の出力は許可されません。
3
それはローグライク、ただのfyiです。
—
Rɪᴋᴇʀ
「考えられるすべての組み合わせで、発生する機会が等しくなるはずです」を明確にできますか?文字通り、すべての有効なマップ(特に、PがすべてのC / E / Fに到達できるすべてのマップ)が同じ確率で発生する必要があるということですか?もしそうなら、可能な唯一のアルゴリズムはランダムにマップを一様に生成し、Pがすべてに到達できることを確認し、それが起こるまで無効なマップを破棄することであるようです。
—
グレッグマーティン
また、「真ん中にある程度の壁があるはずです」、常に2つの壁しか配置しない場合はどうでしょうか。
—
グルパッドママダプール16
@GregMartin私もそれを「すべての可能なレイアウトが発生する可能性があるはず」に変更しますが、必ずしも均等な機会ではありません。
—
パベル
壁に囲まれた到達不可能な空の正方形はどうですか?それは有効なレイアウトですか、それとも完全に避けるべきですか?(換言すれば、各空の正方形は到達可能であるべきですか?)
—
アーナルド