özet
Bu zorluğun amacı, Fransızca'da taquin olarak da adlandırılan 15 bulmaca / kayan bulmacanın geri alınmamış bir görüntü sürümünü oluşturmaktır .
Detaylar:
Aşağıdakilerden oluşan bir girdi verildiğinde:
- bir şekil,
- bir tamsayı
n
, - başka bir tam sayı
r
,
programınız veya işleviniz veya uygun olan herhangi bir şey , girişle aynı görüntüyü ( yani aynı boyut ve biçim) çıktılamalıdır , ancak aşağıdaki işlemlerden geçmiştir:
- görüntüyü
n²
dikdörtgenlere bölün , - bu dikdörtgenlerden birini rastgele,
- nokta (2) 'den etkilenen çizgi / sütundan rastgele sayıda bitişik dikdörtgen taşıyın, böylece oluşturulan delik doldurulur ve bu çizgi / sütunda başka bir tane oluşturulur. Bu sayı
0
, boşluk bir köşede veya kenardaysa olabilir.
(3.) r
kez tekrarlayın .
Açıklamalar:
- Dikdörtgenleri (3.) adımındaki satırdan taşıdıysanız, dikdörtgenleri bir sonraki tekrardaki sütundan taşımalısınız,
- dikdörtgenleri bir satır adımında sola-sağa taşıdıysanız, sütunlarla ilgili yukarıdan aşağıya ve aşağıdan yukarıya doğru bir sonraki adımda sağdan sola taşınmaları gerekir,
n
bunun resmin kenarlarının uzunluklarını böldüğü şekilde seçileceğini varsayabilirsiniz .
Son nokta:
.gif
Tüm süreci gösteren bir animasyon çok memnuniyetle karşılanmaktadır.
Aşağıdaki resmi (yani 1024x768
), bir modelle n=16
ve r=100
bir model olarak kullanmayı öneririm ( başka bir resmi kullanabilirsiniz (tabii ki ilgili ve SE kurallarına uyduğu sürece).
Standart boşlukların politikalarının geçerli olduğunu unutmayın .
Bu kod golf , bu yüzden kısa teslim kazanır!
Bir örnek istendiğinden, işte "elle" yapılan, n=4
ver=1
Adım 1 ve 2
3.Adım : Çizgi şeklinde, sola 2 dikdörtgen
move a random number of contiguous rectangles
0 dikdörtgen olabilir mi? (boşluk bir kenarda / köşede olduğunda programın değişiklik davranışını değiştirmek acı