Tantangan:
Buat fungsi atau program yang akan mengambil input N (angka dari 0 - 24) yang mewakili JAM.
Output harus menarik jam analog dari tanda bintang yang menunjukkan jam N.
🕛🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛
Catatan:
• Jarum menit harus lebih panjang dari jarum jam (dalam hal jumlah tanda bintang yang digunakan)
• Jarum menit harus minimal 2 tanda bintang.
• Tengah hari, 15:00, 18:00, dan 21:00 akan selalu ortogonal. Output Anda untuk jam perantara, bila diatur oleh derajat, harus dalam urutan yang sama dengan jam sehari. Yang saya maksud adalah pada siang hari jam tangan adalah 0º dan pada 3:00 jam tangan 90º jadi untuk kasus output dari 13:00 dan 2PM berikut harus benar: 0pm_deg < 1pm_deg < 2pm_deg < 3pm_deg
. Terlepas dari aturan ini, jumlah gelar aktual dapat menjadi apa pun yang Anda putuskan, jelas itu akan berubah tergantung pada font dan faktor asli lainnya.
• Sambungan penghubung antara jarum jam dan jarum menit adalah karakter unicode melingkar / oval dalam bentuk apa pun. o, O, •, 0, etc.
Contoh Input / Output (Dapat bervariasi tergantung pada gaya gambar)
N = 3;
*
*
*
O * *
N = 4;
*
*
*
O
*
*
N = 5;
*
*
*
0
*
*
N = 6;
*
*
o
*
N = 7;
*
*
*
•
*
*
N = 0,12,24;
*
*
*
o
Contoh Membedakan Output:
N = 4 VS N = 5 VS N = 6
* * *
* * *
O O O
* * *
Ini adalah kode-golf , sehingga program dengan bytecount terpendek menang!
3
ukuran yang berbeda dari jarum menit7
?23:00
adalah11:00
. Dalam pikiran saya, saya mencoba untuk memutar kembali ke 12 tangan lagiJawaban:
Javascript (ES6),
1057665 byte-29 byte:
-11 byte:
y==(N%12).toString(16)?'*':' '
->'0x'+y^N%12?' ':'*'
Asli dengan tangan yang lebih panjang: (
10594 byte)sumber
CSS / HTML (JavaScript), 62 + 106 =
180168 byteSunting: Disimpan 9 byte berkat @nderscore.
sumber
<body onload=f(prompt())>
<input oninput=h.style.transform=`rotate(${this.value*30}deg)`>
Python 2 ,
148140135 byte-8 dengan menghapus beberapa ruang sisa dan baris baru yang tidak dibutuhkan.
-5 dengan mengubah
(' ','*')
ke' *'
Cobalah online!
sumber
C (gcc) , 144 byte
Cobalah online!
sumber
SmileBASIC,
908874 byteContoh output:
sumber
Python 3 ,
8685 byte-1 byte, clockface yang lebih baik (kredit DuctrTape, seperti yang digunakan dalam jawaban Jelly saya)
Cobalah online!
sumber
Jelly ,
35 3433 byteCobalah online! (
tI©
!) atau lihat semuanya (0 - 24) .Bagaimana?
Perhatikan bahwa
“ tI©’Œ?Ḋ
(permutasi pada indeks, dequeued) adalah byte save over“9ȧỤ_ÑḶ’b⁴
(basis 16 of), yang merupakan byte save over“¦þxṙ<ȥ’ḃ13
(bijective base 13 of).†
Mengenai pop - kami memiliki ruang ekstra dalam string, yang merupakan tanda bintang untuk 0, 12, 24 akan memungkinkan mod-12 mengindeks daftar indeks, memunculkan karakter terakhir dari sana byte-lebih murah daripada melakukan penyatuan“**o”
sebelumnya dan menimpa salah satu tanda bintang itu.‡
Mengenai rotasi - ini adalah byte penyimpanan lebih dari membangun string dengan `" ** o "di tengah (baik dengan itu sebelum atau setelah penempatan tanda bintang).sumber
Haskell, 148 byte
Fungsi c adalah fungsi yang menyelesaikan tugas yang diberikan
sumber
Utilitas Bash + Unix, 57 byte
(Ada spasi setelah backslash terakhir.)
Cobalah online!
Bukan jam yang sangat cantik, tetapi memenuhi semua persyaratan.
sumber
PHP, 71 byte
1 jam tangan asterisk, 2 menit tangan asterisk.
mengambil input dari argumen baris perintah; jalankan bersama
-nr
.sumber
05AB1E , 41 byte
Ini terlalu lambat untuk TIO.
Untuk kode serupa yang berfungsi pada TIO coba ini
Cukup yakin ini masih bisa golf dan dipercepat.
Penjelasan datang nanti.
sumber
Logicode 634 bytes
Tidak dapat menemukan cara memasukkan sehingga ada var a = ... untuk masukan di bagian atas tautan tio
Sudah menyerah bermain golf ini. Bisa membuatnya lebih pendek dengan biaya membuat jam tampak mengerikan.
Cobalah secara Online
sumber