Doktor, Dalek kuvvetlerinden kaçmaya çalışırken, sarmal bir hareketle çeşitli alan ceplerinde seyahat ederek onları bir dönüşe göndermeye karar verdi.
Mevcut uzay-zamanın doğasına bağlı olarak, Doktorun TARDIS'e girmesi gerekir, alan bölümünün yüksekliğini ve genişliğini ve spiralin başlayacağı giriş noktasını kontrol eder.
Uzayın kesiti, 1'den başlayarak soldan sağa, yukarıdan aşağıya sıralı tamsayılarla dolu bir h x w ızgara olarak düşünülebilir .
Başlangıç konumu, sıra ve sütun için rc olarak sağlanır ... Bundan TARDIS'in yazılımı, satır r sütunu c'den yukarı doğru başlayarak saat yönünün tersine doğru spiral şeklinde döndürülerek elde edilen tam sayıların listesini çıkarmalıdır ...
Göreviniz, Doktor'un arkadaşı olarak TARDIS'i dört sayı alacak şekilde programlamak ve TARDIS'in height width row column
aşağıda açıklanan spiral hareketine uyacak şekilde hangi alan sektörüne ihtiyacı olduğunu belirlemesini sağlamaktır ...
Giriş 1
5 5 3 3
(5 x 5 ızgara, 3,3 konumundan başlayarak)
Çıktı 1
13 8 7 12 17 18 19 14 9 4 3 2 1 6 11 16 21 22 23 24 25 20 15 10 5
Çıktı açıklanıyor
Orijinal ızgara
Oluşturulan spiral
Giriş 2
2 4 1 2
(1,2 konumundan başlayan 2 x 4 ızgara)
Çıktı 2
2 1 5 6 7 3 8 4
Çıktı açıklanıyor
Spiral olarak biraz farklı olan, şimdi ilgili çıktıyı oluşturmak için ızgara etrafında daire çizmek zorundadır ...
Orijinal ızgara
Oluşturulan spiral
Kurallar:
Bu kod golf, bu yüzden en kısa kod uzunluğu onay alır.
Yukarıdaki örnekler kodunuzu test etmek için kullanılmalıdır. İlgili çıktıyı sağlamazsa, yanlış bir şey var ...
Cevabınızda hem golf hem de golf içi kod sürümleri bulunmalıdır ...
İyi şanslar!