Sekarang dengan BONUS untuk penempatan run-time.
Tulis program untuk mengisi kotak teks dengan pengidentifikasi yang digunakan dalam program Anda sambil menjaga program Anda kecil. Dengan semua pengidentifikasi yang Anda gunakan (tidak termasuk yang Anda buat) dalam program Anda, isi kotak 12x6 dengan sebanyak yang Anda bisa. Anda mendapatkan poin tambahan untuk pengidentifikasi yang menyeberang (gaya teka-teki silang), tetapi mereka tidak dapat bergabung ujung ke ujung.
Keluaran
Program Anda harus mencetak (untuk stdout) kotak karakter 12x6 dengan pengidentifikasi dikemas dan #
perbatasan. Kotak harus memiliki kolom berlabel huruf AL dan baris 1-6 (diberi spasi seperti contoh di bawah). Kemudian cetak garis untuk setiap pengenal yang digunakan. Setiap baris akan memiliki lokasi huruf pertama, pengenal itu sendiri, dan skor. Skor sama dengan jumlah huruf dalam pengidentifikasi dengan kemungkinan '+ bonus' ditambahkan. Pengidentifikasi mendapat bonus 5 poin untuk setiap surat yang dibagikan dengan pengenal persimpangan. Baris terakhir melaporkan 'TOTAL:' dan jumlah skor pengidentifikasi. Contoh output untuk program Python yang mungkin akan terlihat seperti ini:
ABCDEFGHIJKL
##############
1 # pinsert #
2 # o #
3 # print #
4 # not #
5 # #
6 #import #
##############
C1 pop 3+5
D1 insert 6
C3 print 5+10
E3 in 2+10
E4 not 3+5
A6 import 6
TOTAL: 55
Catatan:
- Pengidentifikasi dapat dilepaskan (seperti di
import
atas). - Anda tidak dapat bergabung
pop
danprint
segaris denganpoprint
. - String
in
di dalamnyainsert
tidak dapat digunakan. Kata-kata yang bergabung harus ortogonal. - Pengidentifikasi dapat ditempatkan di sebelah satu sama lain (seperti
pop
dan diinsert
atas).
Jawaban Anda harus mencakup keluaran program Anda dengan kode sumber Anda dan judul yang terdiri dari nama bahasa dan skor Anda.
Skor
Skor Anda untuk tantangan akan skor puzzle kuadrat dibagi dengan ukuran kode sumber Anda (dalam byte). Contoh: Teka-teki di atas dengan program 300 byte akan menghasilkan skor 55*55/300 = 10.08
. Kemenangan skor tertinggi.
Aturan
- Anda dapat menggunakan pengidentifikasi apa pun di program Anda yang tidak ditentukan oleh Anda. Kata kunci, nama kelas, nama metode, nama pustaka, dan nama fungsi bawaan adalah contoh pengidentifikasi yang memenuhi syarat.
- Diedit: Anda hanya dapat menggunakan perpustakaan standar yang disertakan dengan rilis bahasa minimum. Paket bahasa yang diperluas dan penggunaan perpustakaan eksternal (sekarang) dilarang. Sejumlah besar perpustakaan dengan daftar pengidentifikasi yang luas akan mengacaukan tantangan ini. Jika Anda tidak yakin bagaimana ini bekerja dengan bahasa Anda, silakan tinggalkan pertanyaan di komentar.
- Pengidentifikasi hanya terdiri dari karakter [a-zA-Z_] dan memiliki setidaknya 2 karakter.
- Anda hanya dapat menggunakan setiap pengidentifikasi satu kali dalam puzzle.
- Pengidentifikasi hanya dapat digunakan dari kiri ke kanan atau ke bawah.
Bonus Dinamis!
Jika kode Anda menentukan di mana harus menempatkan pengidentifikasi pada waktu berjalan, bonus surat bersama akan menjadi 20 dan bukan 5. Anda dapat mendaftar pengidentifikasi mana yang akan digunakan, tetapi kode Anda harus memutuskan di mana dalam kotak untuk menempatkannya. Kode Anda juga harus menghitung dan mencetak daftar skor. Jika penempatan Anda bergantung pada urutan daftar pengidentifikasi, pasangan kode-keras, atau jalan pintas penempatan non-dinamis lainnya, Anda tidak memenuhi syarat untuk Bonus Dinamis.
Pada contoh output di atas, skor puzzle untuk program penempatan run-time akan menjadi 145. Kemudian jika kodenya 800 byte, skornya adalah 145*145/800 = 26.28
.
Bonus Dinamis dirancang untuk menghargai algoritma yang cerdas daripada string solusi hard-kode statis, dan mengimbangi ukuran kode sumber yang dihasilkan lebih besar.
EDIT:
- Pustaka yang diubah hanya digunakan untuk pustaka yang memiliki bahasa minimum.
- Menambahkan opsi bonus dinamis.
xyzw
/ rgba
/ stpq
:)