Ini akan menjadi tantangan kode-golf yang relatif menantang.
Input: URL apa pun, harus memiliki protokol yang dilampirkan, misalnya http://codegolf.stackexchange.com (yang akan menjadi uji coba kami)
Output: Kode QR yang dihasilkan yang mewakili URL ini, yang, ketika dipindai oleh perangkat pintar akan membawa Anda ke URL itu di peramban perangkat pintar tersebut.
Aturan untuk Golf-Kode ini
- Seperti biasa, kode terkecil menang.
- Tidak ada sumber daya web eksternal, pustaka atau plugin untuk menghasilkan kode untuk Anda. Kode Anda harus menghitung gambar kode QR.
- Output dapat disajikan oleh gambar, dihasilkan oleh HTML5 / CSS3, atau bahkan menggunakan blok Unicode yang sesuai, atau jika ASCII platform Anda memilikinya tersedia, melalui karakter ASCII yang dapat membentuk kode QR (yang terakhir ini diarahkan pada Commodore 64 Basic, Amiga QBasic, Amstrad Basic, dll pengguna), tetapi harus menghasilkan output kode QR sehingga saya dapat memindai kode.
- Entri kode harus diikuti dengan output yang dihasilkan, baik dengan cuplikan layar output setelah mengeksekusi kode Anda, atau dengan tautan yang menunjukkan output (mana yang paling sesuai dengan situasi)
- Anda harus menguji kode Anda dengan URL " http://codegolf.stackexchange.com ", dan melaporkan hasilnya sesuai dengan Aturan 3 hingga 4.
- Anda juga harus menguji kode Anda dengan URL pilihan Anda, dan melaporkan hasilnya sesuai dengan Aturan 3 hingga 4.
Referensi:
1) http://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders
2) http://www.pclviewer.com/rs2/calculator.html
3) http://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction
4) http://en.wikipedia.org/wiki/QR_code
5) http://www.qrstuff.com/ untuk inspirasi ...;)
code-golf
graphical-output
browser
WallyWest
sumber
sumber
Jawaban:
Python 3: 974 karakter [nb]
Selanjutnya kocok dengan tongkat jelek, lihat notebook di GH-Gist . Python 3 memiliki pengkodean ASCII-85 bawaan, yang membantu dengan sosis zip. Algoritma kompresi bawaan (LZMA) 3 yang lebih canggih tampaknya tidak bekerja dengan baik dengan hal-hal kecil seperti itu.
Zip sangat berubah-ubah tentang mengubah karakter sekitar, hampir tergoda untuk menulis sesuatu yang secara acak akan mencoba nama 1 huruf berbeda untuk variabel untuk meminimalkan ukuran zip.
Python 2:
1420 1356 10851077 karakterSaya membaca argumen pertama yang diloloskan ketika dipanggil, yang bisa berupa string hingga 106-ish karakter. Outputnya selalu berupa kode QR 5-L versi dan mask 4 yang berarti 37x37 modulnya besar dan hanya bisa menangani ~ 5% kerusakan.
Satu-satunya dependensi program adalah
numpy
(manipulasi array) danmatplotlib
(hanya tampilan); semua pengodean, pengemasan data, dan tata letak modul Reed-Solomon ditangani dalam kode yang disediakan . Untuk RS, saya pada dasarnya merampok fungsi Wikiversity ... itu masih semacam kotak hitam bagi saya. Belajar banyak tentang QR dalam acara apa pun.Inilah kode sebelum saya mengalahkannya dengan tongkat jelek:
Setelah:
(mengandalkan tab untuk menghitung 4/8 / berapapun jumlah spasi> = 2., tidak yakin seberapa baik ia akan menyalin)
Karena begitu lama, kita dapat meng-zip-nya (melihat seseorang melakukan ini di tempat lain, lupa siapa :() untuk menyimpan beberapa karakter lagi, sehingga totalnya turun menjadi
10851077 karenapylab
kotor:Jika Anda mengganti baris terakhir dengan yang berikut (ini menambahkan 62 karakter), Anda mendapatkan output yang hampir sempurna, tetapi yang lainnya masih memindai, jadi apa pun.
sumber
struct
panggilan dan beberapa dorongan yang tidak perlu dengan hanya memotong 'master string' saya ...