Tantangan:
Beberapa ascii-art sulit dibuat, tetapi membuat komentar kode lebih mudah dibaca, terutama ketika kodenya padat. Tantangannya adalah membuat alat sederhana yang mengubah komentar menjadi ascii-art sederhana dengan panah. Komentar yang akan diubah dibatasi oleh komentar kosong.
Misalnya, seandainya sintaksis komentar Haskell, ubah ini:
--
-- Here's a thing
-- Here's another thing
-- The most important thing
-- * * *
--
f x=x+1*x*1*1*0
Untuk ini:
-- /------------< Here's a thing
-- | /-------< Here's another thing
-- | | /-< The most important thing
-- | | |
-- v v v
f x=x+1*x*1*1*0
Aturan:
- Jawaban Anda dapat berupa fungsi atau program lengkap
- Anda dapat memilih bahasa ini untuk bekerja dengan, mengganti "-" dengan dua atau lebih karakter yang membatasi komentar dalam beberapa bahasa
- Jika menggunakan format komentar lain yang membutuhkan pembatas awal dan akhir, setiap baris dari bagian yang diformat ulang harus merupakan komentar yang tepat
- Bagian yang akan diformat ulang dibatasi oleh komentar kosong "\ n - \ n"
- Selain menambahkan baris baru, program tidak boleh mengubah input apa pun kecuali bagian yang dibatasi
- Sebuah komentar yang diisi dengan sejumlah ruang arbitrer dapat muncul segera sebelum bagian output yang diformat dengan benar
- Celah standar tidak diijinkan
Contoh tambahan:
(input)
--
--
(output)
nothing
(input)
[Code Here]
--
-- important
-- *
--
(output)
[Code Here]
-- /-< important
-- |
-- v
(input)
--
-- Do
-- Re
-- Mi
-- Fa
-- So
-- *****
--
(output)
-- /-----< Do
-- |/----< Re
-- ||/---< Mi
-- |||/--< Fa
-- ||||/-< So
-- |||||
-- vvvvv
Mencetak:
- Bytes paling sedikit menang
- Pengajuan tanpa penjelasan atau contoh input / output non-sepele tidak akan dipertimbangkan (meskipun saya akan meninggalkan masa tenggang untuk memberikan waktu untuk menambahkannya)
Jawaban:
Ruby, 160 karakter
Contoh dijalankan:
Deskripsi singkat:
sumber
JavaScript (ES6),
418,237,233, 236 byteWah, ini kiriman pertama saya di CG.
Saya kira, mengambil cara yang sama sekali berbeda dari Washington Guedes. Berakhir 54 byte lebih pendek dari operan pertamanya. Meminimalkan semua ini dengan tangan sangat melelahkan. Satu penyesalan saya adalah belum bisa menghilangkan loop sementara, yang juga akan membiarkan saya memotong kembalinya.Total menulis ulang, mengambil inspirasi parsial dari beberapa jawaban lainnya. Saya harus menutup semuanya di peta, membuat pengembalian jauh lebih baik. Cuplikan kode berisi versi yang dikomentari.
Mengambil beberapa byte lagi, dan membuat contoh beroperasi dengan sendirinya. (Anda akan membutuhkan monitor yang lebih besar.) :)
Lupa seluruh huruf dalam spec! Untungnya, menambahkan pemimpin '<' adalah perbaikan kecil, sepele.
Tampilkan cuplikan kode
sumber
Python 2, 299 byte
Harapkan baris tambahan di input
Penjelasan / Contoh
Memasukkan:
Pisahkan input dengan
--\n
. Setiap string kedua adalah blok komentar yang dibatasi.Berjalan melalui setiap string. Jika string bukan komentar, maka cetak saja string tersebut. Jika tidak:
Pisahkan setiap baris di blok komentar.
Buat dua garis terbawah dengan mengganti garis
*
s denganv
dan|
.Untuk setiap baris komentar (mundur) hapus kolom paling kanan, tambahkan
/
, pad dengan-
dan tambahkan komentar.Cetak Segalanya
Kurang golf:
sumber
JavaScript (ES6), 253
Sebagai fungsi anonim, dengan kode untuk memformat sebagai parameter string dan mengembalikan kode yang diformat.
Catatan
Kurang golf
Uji
Tampilkan cuplikan kode
sumber