Üflediğin ve dönüp döndükleri eğlenceli fırıldakları hatırla. Birini kodlayalım!
Bir fırıldak \ | / _
, merkezini ve kollarını çizen karakter kümesine sahip olacaktır . Bir olası fırıldak şunun gibi görünebilir:
|
|
|_ ___
___|_|
|
|
|
Ama dönmeyen bir fırıldak nedir? Eğlenceli değil! Sembolleri yeniden düzenleyerek döndürmesini sağlayabiliriz:
/
\ /
\ /
\/\
\/\
/ \
/ \
/
Buradaki zorluk, üç tamsayı alan ve aşağıda belirtildiği gibi bir fırıldak çıkaran bir program oluşturmaktır. Bunlardan ilki sahip olduğu kol sayısı, ikincisi fırıldak kollarının uzunluğu ve üçüncüsü saat yönünde bir turun sekizde birini döndüreceği sayıdır.
Aşağıdakileri varsayabilirsin:
- Silah sayısı her zaman 0, 1, 2, 4 veya 8 olacaktır.
- Tüm kollar birbirinden eşit aralıklarla yerleştirilecektir.
Çarkın başlangıçtaki konumu şu şekilde olacaktır:
_ |_|
Kol sayısı 1 ise, kolun hangi yöne dönük olduğuna karar verebilirsiniz.
- Kol sayısı 2 ise, kolları dikey veya yatay olarak göstermeye karar verebilirsiniz.
STDIN veya komut satırı argümanı yoluyla girdi alan tam bir program veya işlev argümanları aracılığıyla girdi alan bir işlev yazabilirsiniz. Programınız, her biri en az bir boş satırla ayrılmış, fırıldak dönüşünü gösteren bir çıkış dizisi göstermelidir. Çarkın ortasından birden fazla boşluk hareket etmemelidir. Gerektiği kadar çok sayıda ön ve arka boşluk çıkarabilirsiniz.
İşte bazı örnekler:
0 2 1
_
|_|
/\
\/
1 3 2
|
|
|_
|_|
/
/
/
/\
\/
_ ___
|_|
2 2 0
_ __
__|_|
8 4 1
\ | /
\ | /
\ | /
\|_/____
____|_|
/ |\
/ | \
/ | \
/ | \
| /
\ | /
\ | /
\ |/
____\/\____
\/\
/| \
/ | \
/ | \
/ |
Bu kod golf, yani en kısa kod kazanır. İyi şanslar!
1 3 5
ve kol başlangıçta yukarı bakacak şekilde), bunun için daha önceki çıkışlarda boşluklar hazırlanmalıdır.