概要
このチャレンジの目標は、フランス語でタキンとも呼ばれる15パズル / スライディングパズルの元に戻すイメージバージョンを作成することです。
詳細:
以下で構成される入力が与えられた場合:
- 画像、
- 整数
n
、 - 他の整数
r
、
プログラム、関数、または適合するその他のものは、入力と同じイメージ(つまり、同じサイズと形式)を出力する必要がありますが、次のプロセスが行われました。
- 画像を
n²
長方形に分割し、 - それらの長方形の1つをランダムに削除し、
- ポイント(2.)の影響を受ける行/列からランダムな数の連続した長方形を移動して、作成された穴を埋め、この行/列に別の1つを生成します。この番号は
0
、ブランクがコーナーまたはエッジにある場合になります。
(3.)r
回繰り返します。
明確化:
- 手順(3.)で行から長方形を移動した場合、次の繰り返しで列から長方形を移動する必要があります。
- 行ステップで長方形を左から右に移動した場合、次の行ステップで長方形を右から左に移動する必要があります。これは、列に関して上から下および下から上と同じです。
n
画像の辺の長さを分割するように選択されると仮定できます。
最後のポイント:
.gif
全体のプロセスを示すアニメーションは大歓迎です。
私は(これは、次の画像を使用することを提案1024x768
して、)n=16
とr=100
モデルとして、あなたは使用することができ、他の画像を(それはもちろん、SEの規則に関連するだと準拠限り)。
標準の抜け穴ポリシーが適用されることに注意してください。
これはコードゴルフなので、短い提出が勝ちます!
例がリクエストされたので、ここに「手で」作られたものn=4
とr=1
ステップ1および2
ステップ3:行ごとに、左に2つの長方形
move a random number of contiguous rectangles
0個の長方形にすることはできますか?(ブランクがエッジ/コーナーにある場合にプログラム変更動作を行うのは苦痛です)