Kode-Bowling
Anda telah disewa oleh Brunswick Bowling untuk membuat program sederhana untuk menampilkan teks Code Bowling
pada monitor mereka. Perusahaan ini bernilai sepeser pun dan Anda merasa dapat menipu mereka dengan sedikit uang.
Uraian pekerjaan dengan jelas menyatakan bahwa mereka membayar berdasarkan penilaian dan Anda cukup yakin Anda dapat memanipulasi sistem penilaian mereka untuk keuntungan Anda dan mendapatkan cek gaji sebesar mungkin dari orang-orang ini. Untuk melakukannya akan mengharuskan Anda mengemas kode sebanyak yang Anda bisa ke dalam program / fungsi Anda, meskipun sistem penilaian mereka dirancang untuk mencegah Anda melakukannya.
Keluar dari celengan Anda, mari kode!
Tantangan
Tantangannya adalah hanya mengeluarkan teks Code Bowling
, persis seperti yang ditulis di sini, dengan skor setinggi mungkin. (Lihat bagian: Sistem Penilaian di bawah)
Memimpin dan membuntuti baris baru (line-break) dapat diterima.
Kode Anda mungkin keseluruhan program atau hanya fungsi yang dapat dieksekusi.
Aturan
Wajib: Tantangan ini menggunakan Code-Bowling: Common Rules, Revisi 1.0.0 ; Lihat Meta untuk detailnya.
Karakter: Rasio Byte
Dalam Code-Bowling, jumlah karakter lebih disukai daripada jumlah byte. Alasan yang jelas untuk ini adalah bahwa karakter unicode multi-byte (misalnya 🁴) dapat digunakan sebagai pengganti karakter unicode byte tunggal untuk menambah jumlah byte dan akan membuat bowling lebih lanjut tentang siapa yang paling mengubah nama variabel dengan karakter unicode byte tinggi daripada daripada siapa yang paling strategis menciptakan kode kompleks yang bermakna.Variabel / Fungsi / Nama Objek
Semua nama variabel (atau pointer objek, nama fungsi, dll) harus sepanjang 1 karakter. Satu-satunya waktu yang dapat diterima untuk menggunakan nama variabel 2 karakter adalah setelah semua variabel 1 karakter yang mungkin telah digunakan. Satu-satunya waktu yang dapat diterima untuk menggunakan nama variabel 3 karakter adalah setelah semua variabel 2 karakter yang mungkin telah digunakan. DllKode Tidak Digunakan
Semua kode harus digunakan. Berarti program harus gagal untuk selalu menyelesaikan tugas dengan benar jika ada karakter individu (atau beragam set karakter) yang dihapus. Secara alami, suatu subset dari program seharusnya tidak dapat menyelesaikan tugasnya sendiri tanpa sisa dari program.Komentar
Komentar tidak diizinkan untuk penghitungan karakter, kecuali jika digunakan oleh program / fungsi Anda.
Sistem penilaian:
Tantangan Pangram:
Pamram adalah kalimat yang menggunakan setiap huruf setidaknya satu kali. (Rubah coklat cepat melompati anjing malas).
Tipe tantangan ini memiliki sistem penilaian yang dirancang di mana pangram sempurna akan mencapai skor maksimum teoretis (meskipun Anda tidak diharuskan menggunakan setiap karakter setidaknya satu kali.) Selain itu, menggunakan karakter apa pun lebih dari satu kali akan mulai menimbulkan penalti. Tantangan ini juga berkembang lebih dari sekedar karakter alfabet.
Metrik Penilaian:
- Setiap karakter yang digunakan meningkatkan skor Anda sebesar 1.
- Penggunaan berulang karakter alfanumerik apa pun (az, AZ, 0-9) akan menghasilkan pengurangan 3 poin per pengulangan (penggunaan pertama tidak menghasilkan pengurangan).
- Penggunaan tanda baca dasar berulang
([!?.-,":';])
- termasuk tanda kurung - akan menghasilkan pengurangan 2 poin per pengulangan.- Penggunaan berulang karakter ASCII lainnya
{`~@#$%^&*_+=|\/><}
- termasuk kurung keriting - akan menghasilkan pengurangan 4 poin per pengulangan.- Penggunaan spasi, tab, dan baris baru akan menghasilkan pengurangan 1 poin per penggunaan. Artinya, mereka tidak diperhitungkan total karakter.
- Karakter yang tidak disebutkan di atas (Karakter Eksotis) akan menghasilkan pengurangan 1 poin per penggunaan. Artinya, mereka tidak diperhitungkan total karakter.
Alat Penilaian:
Sebuah otomatis mencetak gol widget telah dibuat dan dapat ditemukan di sini .
Ini adalah varian kode-bowling . Program dengan skor tertinggi menang! (Karena ada skor maksimum 94
, siapa pun yang mencapainya terlebih dahulu (jika dapat dijangkau) akan ditandai sebagai jawaban yang diterima, meskipun yang lain bebas untuk terus menjawab untuk bersenang-senang)