チャレンジ
文字列の入力が与えられたら、その破壊されたバージョンを出力します。
プロセス
P
r Pr r
o o o
g g g
r r r rogr r
a -> a -> a -> a -> a -> -> -> -> ->
m m m m m
m m m m m mmar m
i i i i i i i mi m
n n n n gn gn gn gn gni mgni
g g Pg Pg roPg roPg roPgmar roPgmar roPgmar roPgmar
- 文字列を垂直に配置します。
- との間のランダムな整数
1
と(height of the column of characters) - 1
ランダムな方向(左または右)を選択します。 - その方向にその文字数を回転します(これらのスペースが空いている場合はステップ4に進み、そうでない場合はステップ2に戻ります)。
- それらのキャラクターを重力のために落下させます。
- 文字の列の高さが最大
1
でその隣の列の高さより大きくなるまで繰り返します(つまり、列をさらに取り壊すことができなくなります(ステップ2〜4))。 1
周囲の列の1つ以上の文字よりも高い文字の別の列がある(つまり、解体可能)場合は、その列が解体不可能になるまで繰り返しその列を解体します。破壊可能な列が複数ある場合は、最も高い列を完全に破壊します(最も高い列が複数ある場合は、左端の列を完全に破壊します)。- すべての列が取り外せなくなるまで繰り返します。
入力にスペース文字が含まれている場合は、最初にスペース文字を一度に破棄します。
C
o
d
e -> oC -> -> ...
de
G G G
o o o
l l l
f f defoC
ルール
- 標準的な抜け穴は禁止されています。
- 末尾と先頭の改行が許可されます。
- あなたのプログラムは、文字列/同等のものを印刷するか返すかもしれません。
- 出力は非決定的である必要があります(入力が破壊可能でない場合を除く)。
これはcode-golfであるため、言語でバイト数が最小の提出が勝ちです!
1
ランダムがここに本当に必要であれば、私は疑うだろう
—
Keyuガン
@KeyuGan固定数の文字を選択し、左/右を交互に選択しなければならない場合、課題はかなり簡単になると思います。
—
ジョンファンミン
我々はまだ4がランダムかつ公正なダイスロールによって返さあると言うことができます
—
私の代名詞はmonicareinstateです
@someone
—
ジョンファンミン
4
は、出力を決定的、つまり「ランダム」ではありません。ルールを編集して、明示的にしました。