Scream ™ Winter Sale aktif dan Anda baru saja menangkap permainan aksi minimalis yang intens, Super Square . Setelah memainkannya, Anda menyadari bahwa permainan itu sangat sulit atau Anda benar- benar buruk. Secara khusus, ada pola "hujan" ini yang sepertinya membuat Anda setiap kali ...
Frustrasi, Anda memutuskan untuk memberi diri Anda tantangan yang berbeda: Gambar pola hujan dalam seni ASCII!
Memasukkan
Input adalah bilangan bulat positif tunggal yang menunjukkan ukuran pola n
, yang diberikan melalui STDIN atau argumen fungsi.
Keluaran
Output adalah pola hujan pada ukuran yang ditentukan, dikembalikan sebagai string atau dicetak melalui STDOUT. Memimpin atau membuntuti spasi sebelum atau sesudah seluruh gambar tidak masalah. Selain itu, gambar tidak perlu rata ke kiri layar, tetapi harus jelas terlihat.
Inilah n = 10
:
...................
| ----------------- |
| ............... |
| | ------------- | |
| | ........... | |
| | | --------- | | |
| | | ....... | | |
| | | | ----- | | | |
| | | | ... | | | |
| | | | | - | | | | |
| | | | | | | | | |
| | | | | - | | | | |
| | | | ... | | | |
| | | | ----- | | | |
| | | ....... | | |
| | | --------- | | |
| | ........... | |
| | ------------- | |
| ............... |
| ----------------- |
...................
Inilah n = 5
:
---------
.......
| ----- |
| ... |
| | - | |
| | | |
| | - | |
| ... |
| ----- |
.......
---------
Dan akhirnya, inilah n = 1
(hanya dua dinding terdalam):
-
-
Konstruksi (untuk kejelasan ekstra)
Area bermain dibagi menjadi dua pasang kuadran seperti:
AAAAAAAAA
B AAAAAAA B
BB AAAAA BB
BBB AAA BBB
BBBB A BBBB
BBBBB BBBBB
BBBB A BBBB
BBB AAA BBB
BB AAAAA BB
B AAAAAAA B
AAAAAAAAA
Kuadran atas / bawah harus bergantian antara dinding horizontal yang diwakili oleh tanda hubung -
, dan celah yang diarsir dengan titik-titik .
. Kuadran kiri / kanan harus bergantian antara ruang dan dinding vertikal yang diwakili oleh pipa
|
. Diagonal utama kosong, dan harus selalu diisi dengan spasi.
Pola hujan ukuran n
memiliki 2n
dinding, dengan dinding dari kuadran atas / bawah paling dekat dengan pusat dan dinding bergantian antara kuadran saat kita bergerak menjauh dari pusat.
Mencetak gol
Ini adalah kode-golf, sehingga kode dalam byte paling sedikit menang.
Jawaban:
CJam,
93 87 78 6159 byteMengambil nilai
n
melalui STDINBeberapa contoh:
Ini bisa bermain golf banyak, yang akan saya lakukan besok pagi.
Cobalah online di sini
sumber
Haskell 150 byte
Saya menyadari itu tidak akan menang, hanya ingin memposting codegolf pertama saya: D
Gunakan dengan memuat ke GHCi dan menelepon di
q n
manan
ukurannya.Beberapa contoh:
Seseorang mungkin bisa berbuat lebih baik, saya cukup baru di Haskell.
sumber
Python,
204,198, 191 byte"r" adalah fungsi utilitas yang menulis "b" dikelilingi oleh tercermin "a", dengan pembatas opsional, (ya parameter lambda dapat memiliki default). "f" bersifat rekursif, menghasilkan sisi dan bagian tengah untuk setiap level "g" adalah fungsi hujan, yang dapat dipanggil dengan integer untuk mengembalikan teks yang diminta.
sumber
Perl 5: 74 byte (73 kode +
-p
)Mengambil parameter pada input (karakter baris akhir diperlukan untuk fungsi yang tepat):
Tidak Disatukan:
sumber