Dari codegolf.com (tidak memuat pada 15 September 2011) adalah salah satu yang membuatku gila. Mencetak ke STDOUT jam dari bentuk yang tepat, waktu membaca dari STDIN dan menandai h
jam dan m
menit (dibulatkan ke kelipatan 5) dan x
jika mereka tumpang tindih, tanda centang yang tidak digunakan ditandai dengan tanda o
, sehingga
echo "23:13" | perl script.pl
hasil panen
o
h o
o m
o o
o o
o o
o
Punya saya:
$/=':';($h,$m)=<>;printf'%9s
%5s%8s
%2s%14s
%s%16s
%2s%14s
%5s%8s
%9s',map{qw'o h m x'[2*($_==int$m/5)^$_==$h%12]}map{$_,11-$_}0..5
untuk 136 karakter, menggunakan Perl. Saya berharap saya bisa mendapatkan di situs, tetapi saya ingat bahwa para pemimpin di bawah 100, juga menggunakan Perl. Bisakah orang lain mengalahkannya?
Jawaban:
Golfscript, 75 byte
Terinspirasi oleh artikel yang terhubung dalam komentar .
Bagian tersebut
XXXXXXXXXXXX
mewakili 12 byte data, beberapa di antaranya tidak dapat dicetak, dan harus diganti dengan urutan byte120 47 253 22 194 9 183 44 196 55 125 246
.Untuk kenyamanan, berikut adalah versi yang disandikan base64:
Contoh dijalankan:
sumber
C,
259244163 karakterArgumen baris perintah yang diganti dengan stdin (sesuai kebutuhan, juga berakhir lebih pendek).
Dukungan yang dihapus untuk menit di atas 59 - buang-buang 3 karakter.
Kode ditampilkan dengan jeda baris dan lekukan, tetapi karakter dihitung tanpa mereka.
Upaya yang lebih lama (menggunakan kode pelarian ANSI), 244 karakter:
sumber
Python, 175 karakter
Tidak mengalahkan kode Perl Anda, tetapi mungkin bahasa yang lebih ringkas dengan bilangan kompleks (atau fungsi trigonometri) dapat menggunakan ide ini untuk melakukan yang lebih baik.
sumber
Python, 226 karakter
Penggunaan: jalankan 'python script.py' lalu ketikkan waktu yang diperlukan. (Kel: 09:45)
Keluaran:
sumber
Solusi perl saya:
527 byte
Solusi C saya:
440 byte
sumber
<>
dan saya tidak berpikir Anda perluprintf
cara Anda menggunakannya,print
akan bekerja :)Scala 327 karakter
digunakan dengan bentuk lingkaran yang tepat, bukan lemon-XXXX Anda:
ungolfed:
Menggunakan Ansi-Code untuk output pada pos (y, x). Karena kita hanya membutuhkan akurasi 5 menit, nilai yang dihitung sebelumnya untuk x dan y tampaknya lebih pendek daripada menangani fungsi sin dan cos dengan impornya.
sumber
Python, 176 karakter
sumber
Perl 131 karakter
sumber