Hasilkan saya chip QFP!
QFP adalah jenis faktor bentuk untuk komponen listrik tempat pin keluar dari sisi chip. Berikut adalah gambar komponen QFP yang khas:
Anda dapat melihat bahwa rumus umum adalah memiliki 4 sisi pin dengan jumlah yang sama.
Tantangan Anda adalah membuat program yang menggunakan integer, yang mewakili jumlah pin di satu sisi, dan membuat komponen ASCII QFP dengan pin bernomor.
Memasukkan:
bilangan bulat tunggal yang mewakili jumlah pin di satu sisi
Keluaran:
Chip ASCII QFP dengan pinout yang sesuai.
Contoh:
input: 1
4 ┌┴┐ 1┤ ├3 └┬┘ 2
input: 2
87 ┌┴┴┐ 1┤ ├6 2┤ ├5 └┬┬┘ 34
input: 12
444444444333 876543210987 ┌┴┴┴┴┴┴┴┴┴┴┴┴┐ 1┤ ├36 2┤ ├35 3┤ ├34 4┤ ├33 5┤ ├32 6┤ ├31 7┤ ├30 8┤ ├29 9┤ ├28 10┤ ├27 11┤ ├26 12┤ ├25 └┬┬┬┬┬┬┬┬┬┬┬┬┘ 111111122222 345678901234
Aturan:
- semua chip QFP harus tertutup dan disegel serta ascii menyediakan. jarak sangat penting. Debu di dalam mikroprosesor adalah hal buruk!
- penomoran pin harus dilakukan seperti pada contoh (Baca kiri ke kanan, atas ke bawah, bernomor berlawanan arah jarum jam)
- Anda dapat memulai penomoran pada 0, tetapi ini tidak boleh mempengaruhi chip (input 12 masih membutuhkan 12 pin per sisi)
- Satu-satunya karakter yang valid dalam output Anda adalah
1,2,3,4,5,6,7,8,9,0,┌,┴,┐,├,┘,┬,└,┤
, spasi, dan baris baru. - semua penyandian untuk bahasa diperbolehkan, tetapi hasil Anda HARUS konsisten dengan aturan di atas.
Ini adalah codegolf, dan karena itu, Kode dengan jumlah byte paling sedikit menang! Semoga berhasil!
code-golf
string
ascii-art
kolmogorov-complexity
tuskiomi
sumber
sumber
Jawaban:
Mathematica, 271 byte
Fungsi anonim. Mengambil angka sebagai input dan mengembalikan string sebagai output. Karakter Unicode non-kotak-gambar adalah U + F3C7 (penggunaan pribadi) untuk
\[Transpose]
.sumber
Kotlin ,
397393 byteLambda yang tidak disebutkan namanya.
Anda dapat mencobanya di sini , tetapi Anda harus menempelkan sumbernya sendiri karena editor sepertinya tidak menyimpan program dalam pengkodean UTF-8. Versi ungolfed adalah program lengkap, jadi Anda harus dapat menggunakannya secara keseluruhan.
Golf
(Semacam) Tidak Disatukan
Menyimpan banyak byte dengan membebani
%
operator dan menggunakannya untuk mencetak. Saya mungkin akan meninjau kembali nanti - saya pikir saya dapat menyimpan beberapa byte jika saya menggunakanmod
atau operator lain sebagai fungsi gabungan. Interpolasi lebih banyak dan lebih sedikit panggilan cetak.sumber
Python 2,
352343331 byteCoba di sini. Perhatikan bahwa file harus mulai dengan BOM UTF-8
\xef\xbb\xbf
agar unicode literals berfungsi dalam juru bahasa CPython standar. 3 byte ini dihitung berdasarkan ukuran di sini.repl.it
sudah menggunakan unicode sehingga tautannya hanya memiliki kode yang ditampilkan di sini.Terima kasih @tuskiomi untuk ide penyandian yang disimpan
921 byteSebagian tidak diserang:
sumber
# -*- coding: utf-8 -*-
ditambah satu baris baru ke atas untuk penerjemah menerimanya. Pengkodean UTF-8 untuk masing-masing karakter tersebut adalah 3 byte, sehingga tidak cukup untuk membayar biaya arahan pengodean. Saya baru saja memeriksa PEP 263 dan saya bisa pergi dengan adil#coding=utf-8
dan baris baru sehingga akan menghemat beberapa byte.JavaScript (ES6),
295284 byte (268 karakter), tidak bersaingKode ini tidak mendukung nomor pin di atas 99 dan karenanya mungkin tidak memenuhi syarat sebagai entri yang sepenuhnya valid. Itu sebabnya saya menandainya sebagai non-bersaing untuk saat ini.
Itu bisa dengan mudah dimodifikasi untuk mendukung sejumlah besar pin yang sewenang-wenang dengan menggunakan margin statis yang lebih luas di sekitar chip. Namun, itu mungkin melanggar aturan juga (tidak yakin tentang itu). Margin yang sepenuhnya dinamis akan membutuhkan biaya yang lebih banyak byte.
Demo
Tampilkan cuplikan kode
sumber
Java 11,
451425393 byte-26 byte berkat @ceilingcat .
Penjelasan:
Cobalah online.
sumber