(terkait / terinspirasi oleh: Menggambar formasi bowling )
Sebuah hiburan yang menyenangkan di bulan-bulan musim dingin di sini adalah melakukan bowling snowman, menggunakan bola besar (seperti bola basket) dan figur manusia salju kecil. Mari kita buat ulang ini di ASCII.
Setiap manusia salju terdiri dari yang berikut:
(.,.)
( : )
Berikut adalah keselarasan dari sepuluh pin "manusia salju"
(.,.) (.,.) (.,.) (.,.)
( : ) ( : ) ( : ) ( : )
(.,.) (.,.) (.,.)
( : ) ( : ) ( : )
(.,.) (.,.)
( : ) ( : )
(.,.)
( : )
Ini "pin" diberi label dari 1
ke 10
sebagai
7 8 9 10
4 5 6
2 3
1
Sejauh ini standar. Namun, tidak seperti bowling normal, pin manusia salju hanya rata dan tidak sepenuhnya dihapus. Hal ini dilakukan oleh seseorang yang perlu meratakan salju pin yang dipukul secara manual. Manusia salju yang rata diwakili oleh _____
(lima garis bawah), dengan spasi putih di atas. Berikut adalah contoh dengan 1 3 5 6 9 10
pin diratakan (artinya hanya 2 4 7 8
pin yang tersisa):
(.,.) (.,.)
( : ) ( : ) _____ _____
(.,.)
( : ) _____ _____
(.,.)
( : ) _____
_____
Memasukkan
- Daftar bilangan bulat dari
1
ke10
dalam format apa pun yang mewakili pin mana yang dipukul dan karenanya perlu diratakan. - Setiap angka hanya akan muncul paling banyak satu kali, dan angka-angkanya dapat dalam urutan apa pun (diurutkan, tidak disortir, diurutkan secara menurun) - pilihan Anda, apa pun yang membuat kode Anda lebih golf.
- Input dijamin memiliki setidaknya satu bilangan bulat.
Keluaran
Representasi seni ASCII yang dihasilkan dari pin manusia salju, dengan pin yang benar diratakan.
Aturan
- Leading atau trailing newlines atau whitespace semuanya opsional, asalkan karakter itu sendiri berbaris dengan benar.
- Program lengkap atau fungsi dapat diterima. Jika suatu fungsi, Anda dapat mengembalikan output daripada mencetaknya.
- Jika memungkinkan, harap sertakan tautan ke lingkungan pengujian online sehingga orang dapat mencoba kode Anda!
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
Contohnya
1 3 5 6 9 10
(.,.) (.,.)
( : ) ( : ) _____ _____
(.,.)
( : ) _____ _____
(.,.)
( : ) _____
_____
1 2 3
(.,.) (.,.) (.,.) (.,.)
( : ) ( : ) ( : ) ( : )
(.,.) (.,.) (.,.)
( : ) ( : ) ( : )
_____ _____
_____
1 2 3 4 5 6 8 9 10
(.,.)
( : ) _____ _____ _____
_____ _____ _____
_____ _____
_____
sumber
Jawaban:
05AB1E ,
4544 byteCobalah online!
Penjelasan
sumber
Snowman 1.0.2 , 157 byte
Cobalah online!
Ketika saya melihat tantangan ini, saya tahu saya harus menjawab dalam bahasa yang sempurna ...
Ini adalah subrutin yang mengambil input sebagai array angka dan output sebagai string melalui permavar saat ini.
Dibungkus untuk "keterbacaan" / estetika:
Versi sedikit ungolfed / berkomentar:
sumber
ditumpuk , tidak bersaing, 118 byte
Saya menambahkan
deepmap
dan beberapa hal lain setelah tantangan ini, bersama dengan banyak perbaikan bug. Coba di sini!Tidak disatukan
Keluaran:
sumber
Python 2,
248243241226224223221210206200177 byte-5 dengan terima kasih kepada @Rod
-15 lagi terima kasih kepada Rod
-1 menggunakan perhitungan ruang lagi dari Rod
Terlihat lebih panjang karena lebih banyak garis dan indentasi tetapi secara mengejutkan 11 byte lebih pendek.
Saya yakin ini akan berada di bawah 200 ...
Saya benar tetapi tidak tanpa 23 byte petunjuk serius dari @ Pietu1998. Terimakasih banyak!
Cobalah online!
Mengambil input sebagai daftar bilangan bulat. Terlalu besar di 248 tapi berhasil.
sumber
C #
233221213203 byteMetode mengambil array int sebagai daftar pin yang jatuh
terbungkus
diperluas
menjatuhkan beberapa byte oleh saran dalam komentar dari Ghost, raznagul dan auhmaan.
sumber
new[]{7,4,2,1}.Contains(i--)
kei<9&&i%3==1||i==2
i==7||i<5&&i!=3
i==7|i<5&i--!=3
var o="";var x=...
denganstring o="",x=""...
.Batch, 262 byte
Catatan: Baris 2, 3 dan 4 berakhir di spasi, dan juga menampilkan spasi tambahan di setiap baris. Ini dapat dihapus dengan biaya 5 byte. Bekerja dengan membuat variabel s1 ... s10 sebagai bagian bawah manusia salju, lalu meratakan yang diberikan sebagai argumen baris perintah. Baris yang sesuai dicetak dua kali, pertama kali dengan bagian bawah diganti dengan bagian atas. Ini menghemat 18 byte daripada menggunakan dua set variabel atas dan bawah setengah.
sumber
JavaScript,
154149 bytesumber
Pyth, 63 byte
Program yang mengambil input dari daftar bilangan bulat dan mencetak hasilnya.
Suite uji
[Penjelasan datang nanti]
sumber
Pyth, 51 byte
Kode ini mengandung beberapa unsintables, jadi ini adalah
xxd
hexdump.Cobalah online.
Tanpa unsintables, 52 byte
Cobalah online.
sumber
Javascript
178169 bytePada dasarnya sebuah port dari jawaban C # saya.
Mengambil array int sebagai daftar "pin" yang diratakan;
Terbungkus:
Diperluas & Dijelaskan:
sumber