Tantangan
Musim dingin semakin dekat dengan banyak tempat menerima lapisan salju pertama untuk musim 15/16, jadi mengapa kita tidak mengeluarkan mesin salju dan memberi kode pada kita salju?
Diberikan bilangan bulat n
melalui STDIN, menghasilkan representasi ASCII kepingan salju Beta (seperti yang dijelaskan di bawah) di tingkat n
.
Kepingan Salju Beta
Kepingan salju dimulai pada level 0 dengan satu x:
x
Lalu, di setiap sudut Anda menambahkan salah satu dari bentuk ini:
x
xx
Anda menambahkan bentuk di atas ke sudut kanan atas. Untuk sudut kanan bawah, putar 90 ° searah jarum jam, untuk kiri bawah, 180 ° searah jarum jam dan untuk kiri atas, 270 ° searah jarum jam.
Jika Anda melakukannya, Anda mendapatkan bentuk berikut:
x x
xx xx
x
xx xx
x x
Perhatikan orientasi bentuk. Melanjutkan kita menambahkan lebih banyak bentuk ke setiap sudut, menggunakan aturan orientasi yang dijelaskan di atas, ke diagram untuk mendapatkan level 2:
x x x
xxxxxxx
xx x x xx
xxx xxx
xx x xx
xxx xxx
xx x x xx
xxxxxxx
x x x
Perhatikan bahwa bentuk hanya ditambahkan ke x
s dengan dua sisi terbuka atau lebih (yang disebut sebagai sudut di atas).
Bentuk-L dapat dan akan tumpang tindih untuk nilai yang n
lebih besar dari 1. Misalnya:
Jika level 0 adalah:
x x
Maka harus ada tumpang tindih di level 1 (ditunjukkan dengan o
, jangan termasuk o
dalam output Anda):
x o x
xxxoxxx
x x
xxxoxxx
x o x
Tugas Anda adalah menampilkan representasi kepingan salju Beta dari ASCII ini.
Bonus
Akan ada bonus 50 rep untuk program terpendek yang, ketika n
negatif, mengeluarkan kepingan salju (pada level n*-1
) sebagai gambar atau secara grafik ke layar.
Anda mungkin memiliki program terpisah untuk karunia dan tugas utama.
Kemenangan
Program terpendek dalam byte menang.
2 or more exposed sides
aturannya? Dengan asumsi center 0,0
kemudian 1,1
, 1,-1
, -1,-1
, -1,1
semua memiliki 2 sisi terkena (sisi menghadap ke arah yang lain 4 poin). Bukankah seharusnya 3+ sisi terbuka untuk menghindari pengisian? Atau bergantian hanya mengembang jika memiliki 0 atau 1 tetangga (kardinal).