Datang 1 November, Programming Puzzles dan Code Golf akan lulus, jadi dalam 11 bulan ke depan, kami ingin menyimpan beberapa kenangan dari saat kami tidak lulus.
Tulis program yang menghasilkan favicon PPCG, lihat di bawah.
- Gambar harus minimal 64x64 piksel.
- Biru harus menjadi warna # 62B0DF. Latar belakang bisa putih atau abu-abu terang.
- Gambar tidak perlu pixelated seperti di sini.
- Atau, buat teks (dengan dimensi setidaknya 64x64 karakter non-spasi putih) menggunakan kode warna ANSI cerah standar dari Cyan dan White.
- Gambar bawaan dan mengimpor logo PPCG tidak diizinkan.
Ini kode golf, jadi aturan standar berlaku. Kode terpendek dalam byte menang.
Jawaban:
Bash (OSX),
33272318 BytesAnda mendengar pria itu, apa pun yang kita suka.
Saya sadar bahwa ini adalah kontes popularitas. Tapi, hei, ketika Anda bisa kode golf itu, mengapa tidak?Sekarang kode golf. \ o / Ini berlaku pada saat posting.
Bahkan ada pengecualian yang dibuat untuk saya di beberapa titik! Tapi, sebagai @AlexA. ditunjukkan ...
Saya setuju dengan ini, dan, karenanya, tidak ingin ini dipilih sebagai jawabannya. Bukan berarti saya tidak akan mencoba untuk menurunkannya lagi. ;)
Terima kasih kepada @ ΚριτικσιΛίθος karena mencukur 6 byte dengan URL pendek yang mewah!
Terima kasih kepada @ ev3commander karena telah mencukur LAIN 5 byte dengan URL yang lebih pendek dan keren!
Terima kasih kepada @kennytm karena menunjukkan bahwa saya dapat mengurangi ukuran protokol dan menghapus tanda kutip, menyelamatkan saya 4 byte lagi!
sumber
http://goo.gl/gviJDX
open http:goo.gl/gviJDX
http:yon.se/q
BitShift , 2795 byte
Ini output
Ini mungkin kode terpendek yang dapat Anda gunakan untuk mengenali logo ... Saya membuat bahasa yang mengerikan :(
Coba di sini
Catatan
Ini diajukan sebelum aturan diubah, oleh aturan saat ini jawaban ini tidak valid. Saya akan meninggalkannya di sini untuk menginspirasi orang
sumber
JavaScript
Catatan: Jawaban ini dibuat sebelum aturan diubah secara signifikan sehingga jawaban ini tidak bersaing.
Ini tercetak di konsol browser Anda, melalui beberapa pemrosesan string yang gila dan mengagumkan.
Saya telah membuat versi yang lebih singkat dari ini, tetapi sepertinya saya tidak dapat menemukannya di mana pun.
Chrome / Firefox
Versi ini hanya berlipat ganda pada setiap piksel sehingga terlihat lebih proporsional
Safari
Ini
long_string_here
adalah ppm , saya menulis skrip ini beberapa waktu lalu untuk mencetak gambar yang sewenang-wenang ke konsol .Bagaimana cara kerjanya? Yah JavaScript memiliki fitur di
console.log
mana Anda dapat menyediakan css untuk menata pesan.Saya karakter unicode
█
dan warna yang warna yang benar, yang diambil dari ppm.Untuk menampilkan gambar lainnya berjalan
convert my_img.png -resize 50x50 -trim -compress none -blur 1x2 -flatten -background white ppm:-
:, lalu salin output ke<long_string_here>
Kode lengkap
Karena ini sangat masif, saya telah memasukkan kode lengkap di pastebins sehingga Anda dapat menjalankannya
Chrome / Firefox: pastebin
Safari: pastebin
Hasil
Hasil Firefox
Hasil Safari
sumber
Ruby dengan Sepatu
Output sampel:
sumber
Javascript (ES2015), 199 byte
(+72 byte CSS)
Kode saya mencetak logo ke
<body>
elemen halaman melalui beberapa urutan unicode. Saran meningkatkan kode dipersilakan (terutama untuk0
-pads tugas)Javascript (baris baru disisipkan untuk dibaca)
CSS
Hasil
Tidak Dijelaskan dan Dijelaskan
Jika kami menganggap ikon PCG 16x16 asli yang aslinya diposting, kami dapat menyandikan informasi dalam format biner.
Misalnya baris pertama akan dikodekan sebagai
1100 0000 0000 0011
tempat[0, 1]
peta[blue, white]
. Setiap angka biner dapat dengan mudah disimpan dalam format desimal begitu1100 0000 0000 0011
juga49155
. Arrayberisi semua informasi (dalam format desimal) tentang setiap warna piksel. Setiap elemen array mewakili garis untuk menggambar. Perhatikan bahwa beberapa garis adalah
0
(garis biru penuh) atau panjangnya kurang dari16
digit (garis yang dimulai dengan piksel biru): maka kita perlu menempelkan angka-angka biner ini dengan benarThe
map
Fungsi menambahkan 15 angka nol di sebelah kiri ditambah jumlah biner digabungkan. Dengan demikian hasilnya diiris oleh16
pixel ke kiri. Sekarang array sebenarnyaLihatlah lebih dekat pada digit di atas: kita hampir dapat melihat logo PCG. :)
Perhatikan bahwa jika kita menyimpan informasi ini dalam array, kita perlu menggunakan 16x18 byte (288 byte). Pendekatan ini membutuhkan 135 byte
Langkah selanjutnya adalah menggambar setiap baris. Konstruk
loop over the array
values
(fitur ES6) dan kami tambahkan ke badandimana
[...l
] mewakili string biner sebagai array. Misalnya baris pertama akan dibaca sebagaisekali lagi kita gunakan
map()
untuk mengubah setiap nilai:jika nilainya
0
maka itu menjadi aLEFT SEVEN EIGHTHS BLOCK (U+2589)
kalau tidak itu adalah ruangEM SPACE (U+2003)
. Singkatnya tugas inimengkonversi masing
0
- masing atau1
menjadi blok kuadrat atau ke dalam ruang: kemudian array bergabung dan, bersama dengan urutan baris baru, ditambahkan ke tubuh.CSS yang saya gunakan memperbaiki
line-height
danletter-spacing
(saya sudah menguji Chrome, jadi hasilnya mungkin sedikit berbeda di browser lain)sumber
Brainfuck, 120148 byte
Jawaban ini sekarang tidak kompetitif. Ini sebelum peraturan diubah, dan ini sama sekali tidak ada harapan untuk menang sebagai golf kode.
Kode Brainfuck untuk menampilkan nilai hex gambar. Sangat, sangat, panjang.
Inilah tautan pastebin, dan baris pasangan pertama. https://paste.ee/p/LtcCy
sumber
Jepret , 16 blok
Beri tahu saya jika ini tidak valid.
sumber
Javascript ES6, 461 byte
Saya perlu bekerja pada kompresi lebih lanjut.
sumber
Bubblegum , 175 byte
Salah satu waktu langka Bubblegum berguna untuk grafis-output !
Jalankan di terminal yang mendukung kode pelarian ANSI.
Balikkan hexdump dengan
xxd -r
Berikut screenshot dari output:
Catatan: Pada mesin Windows saya dengan terminal MinGW, biner Windows Python tidak menampilkan kode ANSI dengan benar sehingga kode di atas adalah
python <esolangs reference implementation>.py <infile> | cat
tetapi ia harus bekerja dengan benar pada mesin Linux.sumber
Javascript (ES6), 192 byte
Ini mengambil versi terkompresi dari jalur SVG D. Spasi dihilangkan, jadi semua argumen harus berupa desimal tunggal, jadi angka apa pun dikalikan dengan 20 sebelum ditulis ke svg yang sebenarnya.
Output: Demo: https://jsfiddle.net/Luy6qj80/
sumber
LibreLogo ,
122116115 byteKode:
Hasil:
Penjelasan:
Usaha Sebelumnya:
116 Bytes:
122 Bytes:
sumber
JavaScript, 680 byte
Yah, ini sudah saya selesaikan untuk kontes awal, yang aturannya diubah secara drastis. Ini jelas bukan kode terpendek yang dapat Anda buat. Ini dirancang untuk kontes popularitas dan menciptakan pixel favicon asli dengan piksel. Ini memiliki beberapa fitur lagi. :)
Anda dapat memanggil fungsi dengan hingga tiga parameter:
m
pergi meta dan mengubah warna sesuai. Dan jika Anda merasa kecil, gunakanb
untuk memperbesarnya dari 16x16px ke 64x64px . Akhirnyaa
menjiwai logo, seperti itu terukir di papan biru. Nilainya adalah kecepatan untuk setiap langkah animasi.Tidak disatukan
Keluaran
Default
Animasi
sumber
Python 3, 10.069 byte
Menulis hex dari logo asli ke file baru.
sumber
R, 189 byte
Dengan indentasi untuk kejelasan:
Saya tanpa malu-malu mencuri metode dari jawaban lama saya : Saya mengambil representasi basis-2 dari 16 angka, membuatnya menjadi matriks 16x16 1s dan 0s dan plot seperti apa adanya.
sumber
Google Blockly , 140 blok
Menghasilkan
Akan menambahkan penjelasan jika diminta. Coba di sini
Saran untuk mengurangi fungsi besar di sebelah kiri dipersilahkan!
sumber
Python 2, 211 byte
sumber
05AB1E , 49 byte
Cobalah online!
sumber
Excel VBA,
252246245237 BytesDisimpan 6 byte berkat Taylor Scott.
Menyimpan 8 byte lagi berkat inspirasi dari Taylor Scott
Kode harus dijalankan dari halaman kode lembar kerja dan akan menambahkan bentuk ke lembar kerja itu. Tidak ada yang mewah tetapi tidak secara langsung menggunakan info persegi panjang bulat yang menjadi dasar ikon. (Untuk
AddShape
,106
sesuai denganmsoShapeRoundedRectangularCallout
.)Pemformatan tidak menambah banyak tetapi membuatnya lebih mudah dibaca:
Ada juga solusi satu baris yang dimaksudkan untuk dijalankan di jendela langsung yang lebih panjang 1 byte:
sumber
()
dalamp()
dan mengkonversiWith ActiveSheet. ...
keWith[Sheet1]. ...
Sheet1
. Saya kira kita bisa menganggap pengguna menjalankan kode dalam file baru.Sheet1
objek default mungkin harus menjadi norma yang diterima selama Anda menyebutkan bahwa adalah bagian dari kondisi input / output sebagai bagian dari solusi AndaSheet1
objek - sehingga Anda dapat menjatuhkan byte dengan menggantinyaWith[Sheet1].
denganWith Sheet1.
Sheet1
itu hanya nama kode default dari sheet pertama. Itu pengurangan 0,4% byte yang bagus.MATLAB,
153 150140 byteKode mengambil array angka 16bit (sayangnya tidak ada cara untuk meng-encode mereka yang mengurangi jumlah byte terpisah dari membaca dari file biner yang disimpan). EDIT: Dengan sedikit kreativitas dalam bagaimana array dibuat, saya telah menyimpan 3 byte, dan dengan sedikit lebih banyak dan variabel tambahan, saya dapat menyimpan 10 lagi di atasnya.
Dengan array ini, ia dikonversi menjadi string biner di mana ascii '1' mewakili biru dan ascii '0' adalah putih. Array adalah 2D pada titik ini karena masing-masing dari 16 angka menjadi string 16 karakter.
Saya kurangi 47 untuk mengubahnya menjadi array 1 dan 2 (diperlukan untuk bit berikutnya), di mana setiap elemen mewakili satu piksel. Sekali lagi ini tetap sebagai 2D dan merupakan data gambar kami.
Gambar tersebut kemudian ditingkatkan dengan faktor 8 menggunakan tetangga terdekat untuk menghasilkan gambar yang setidaknya merupakan ukuran minimum 64x64px yang diperlukan - sebenarnya 128x128 karena entah bagaimana saya membagi 64 dengan 16 untuk mendapatkan 8> _ <(jangan meminta!).
Akhirnya ini ditampilkan menggunakan peta warna di mana 1 menjadi putih dan 2 menjadi warna biru # 62B0DF yang diperlukan.
Ini adalah output:
sumber
Memproses, 211 byte
Menyimpan piksel di dalam bilangan bulat yang ditandatangani (tampaknya merupakan cara yang paling efisien, saya mungkin akan mencoba 2 ^ 64 bilangan bulat) dan kemudian mencetaknya dalam bingkai.
sumber
Swift (Playground), 599 Bytes
Saya memutuskan untuk mencobanya, karena menggambar di Swift cukup mudah, dan biasanya tidak golf seperti ini. Akhirnya kehilangan byte berharga dengan teks ... Sialan kamu
NSDescriptiveVariableNames
!Begini tampilannya di taman bermain:
Saya pikir saya bisa golf lebih banyak dengan aliasing hal-hal seperti
CGRectMake
, pengelompokan objek dalam suatu fungsi dllsumber
PHP, 145 byte, tidak bersaing
Saya harus menggunakan non-blank dan warna sebagai gantinya, tapi saya terlalu lelah atm.
Tebak itu akan menambah 10 byte atau lebih ke hitungan, mungkin lebih.
sumber
Excel VBA, 178 Bytes
VBE Anonim Langsung fungsi jendela yang tidak mengambil input dan output PCG Favicon (persis seperti pada prompt di atas) ke kisaran
sumber
C (gcc) , 188 byte
Cobalah online!
Menggunakan kode lepas ANSI untuk mencetak 128 ruang horizontal dan 64 berwarna vertikal.
(Ukuran gambar diubah.)
sumber
C ++ dengan SFML , 607 byte
Kode yang memanggil fungsi:
Persyaratan :
Anda harus memiliki file ttf yang valid yang dipanggil
a.ttf
dalam direktori saat ini di mana executable sedang berjalan, sehingga dapat memuat font untuk menampilkan teksAnda harus memiliki DLL SFML yang sesuai di direktori saat ini di mana executable sedang berjalan
Hasil:
Penjelasan:
sumber
tcl / tk, 113
Tcl / tk, 144
sumber