var QUESTION_ID = 85141; // Obtain this from the url
// It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 41859; // This should be the user ID of the challenge author.
var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page;function answersUrl(index) {return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;}function commentUrl(index, answers) {return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;}function getAnswers() {jQuery.ajax({url: answersUrl(answer_page++),method: "get",dataType: "jsonp",crossDomain: true,success: function (data) {answers.push.apply(answers, data.items);answers_hash = [];answer_ids = [];data.items.forEach(function(a) {a.comments = [];var id = +a.share_link.match(/\d+/);answer_ids.push(id);answers_hash[id] = a;});if (!data.has_more) more_answers = false;comment_page = 1;getComments();}});}function getComments() {jQuery.ajax({url: commentUrl(comment_page++, answer_ids),method: "get",dataType: "jsonp",crossDomain: true,success: function (data) {data.items.forEach(function(c) {if (c.owner.user_id === OVERRIDE_USER)answers_hash[c.post_id].comments.push(c);});if (data.has_more) getComments();else if (more_answers) getAnswers();else process();}});}getAnswers();var SCORE_REG = /<h\d>\s*([^\n,]*[^\s,]),.*?(-?\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;var OVERRIDE_REG = /^Override\s*header:\s*/i;function getAuthorName(a) {return a.owner.display_name;}function process() {var valid = [];answers.forEach(function(a) {var body = a.body;a.comments.forEach(function(c) {if(OVERRIDE_REG.test(c.body))body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>';});var match = body.match(SCORE_REG);if (match)valid.push({user: getAuthorName(a),size: +match[2],language: match[1],link: a.share_link,});});valid.sort(function (a, b) {var aB = a.size,bB = b.size;return aB - bB});var languages = {};var place = 1;var lastSize = null;var lastPlace = 1;valid.forEach(function (a) {if (a.size != lastSize)lastPlace = place;lastSize = a.size;++place;var answer = jQuery("#answer-template").html();answer = answer.replace("{{PLACE}}", lastPlace + ".").replace("{{NAME}}", a.user).replace("{{LANGUAGE}}", a.language).replace("{{SIZE}}", a.size).replace("{{LINK}}", a.link);answer = jQuery(answer);jQuery("#answers").append(answer);var lang = a.language;if (! /<a/.test(lang)) lang = '<i>' + lang + '</i>';lang = jQuery(lang).text().toLowerCase();languages[lang] = languages[lang] || {lang: a.language, user: a.user, size: a.size, link: a.link, uniq: lang};});var langs = [];for (var lang in languages)if (languages.hasOwnProperty(lang))langs.push(languages[lang]);langs.sort(function (a, b) {if (a.uniq > b.uniq) return 1;if (a.uniq < b.uniq) return -1;return 0;});for (var i = 0; i < langs.length; ++i){var language = jQuery("#language-template").html();var lang = langs[i];language = language.replace("{{LANGUAGE}}", lang.lang).replace("{{NAME}}", lang.user).replace("{{SIZE}}", lang.size).replace("{{LINK}}", lang.link);language = jQuery(language);jQuery("#languages").append(language);}}
body { text-align: left !important}#answer-list {padding: 10px;width: 290px;float: left;}#language-list {padding: 10px;width: 290px;float: left;}table thead {font-weight: bold;}table td {padding: 5px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/Sites/codegolf/all.css?v=617d0685f6f3"><div id="answer-list"><h2>Leaderboard</h2><table class="answer-list"><thead><tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead><tbody id="answers"></tbody></table></div><div id="language-list"><h2>Winners by Language</h2><table class="language-list"><thead><tr><td>Language</td><td>User</td><td>Score</td></tr></thead><tbody id="languages"></tbody></table></div><table style="display: none"><tbody id="answer-template"><tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td><a href="{{LINK}}">{{SIZE}}</a></td></tr></tbody></table><table style="display: none"><tbody id="language-template"><tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td><a href="{{LINK}}">{{SIZE}}</a></td></tr></tbody></table>
#0048e0
Jawaban:
Python 3,
190172171169167160160147143 byteMenggunakan PIL versi 1.1.7 yang memiliki metode offset usang tetapi tidak dihapus.
Membuat gambar 25 * 18 piksel diisi dengan merah kemudian menggambar persegi panjang 23 * 16 piksel diisi dengan biru dengan garis putih satu piksel. Ini kemudian mengimbangi gambar dengan (9,9) yang membungkus di tepi, mengubah ukurannya menjadi 100 * 72 kemudian menunjukkannya di jendela.
Tandai sebelum mengimbangi:
(diubah ukurannya menjadi 100 * 72)
Keluaran:
Animasi:
Sunting1: Memotong 18 byte dengan menghapus pemangkasan dengan awalnya membuat gambar 25 * 18.
Sunting2: Golf 1 byte dengan menggunakan
#fff
bukanwhite
.Edit3: Golfed 2 byte dengan alias impor.
Sunting4: Golf 2 byte dengan menghapus argumen kedua dari metode offset.
Sunting5: Golfkan 7 byte dengan menunjukkan gambar alih-alih menyimpan. (perlu imagemagick diinstal pada Unix)
Sunting6: Golf 1 byte dengan menulis ulang impor.
Sunting7: Golf 12 byte dengan menulis ulang impor lagi. (terima kasih oleh @Dennis)
Sunting8: Menambahkan animasi.
Sunting9: Animasi yang diperbarui karena tidak ada bingkai terakhir.
Edit10: Golf 4 byte berkat Albert Renshaw!
sumber
from PIL.ImageDraw import*
,I
menjadiImage
danD.Draw
menjadiDraw
, menghemat 11 byte.x86 kode mesin mode real untuk DOS COM,
69656362 byteKode ini dimaksudkan untuk dieksekusi sebagai executable DOS COM.
Terima kasih khusus
Kode mesin (dalam hex byte)
Sumber perakitan
Sumber untuk NASM.
sumber
_loop: jcxz _loop
. Anda juga dapat memotong 2 byte dari akhir potongan data jika Anda mengubah urutan pemuatancx
dandi
mov bx, 320
dan memindahkan 320 keadd di, 320
(sebelumnyaadd di, bx
).jcxz _cycle
setelahnyaxchg ax,cx
sehingga tidak akan memuat byte melewati akhir data. Dan ada beberapa komentar menyesatkan dalam sumber:;dx = row
.dx
tidak digunakan di mana pun dalam kode.C,
194191183 Bytes-3 menambahkan satu
@
di#define A
-8 menambahkan
[
pada#define C
Pemakaian
Keluaran
berdasarkan pada komentar ini dari OP
Output Ukuran Ganda, 204 Bytes
sumber
Excel VBA,
254228153 byteTidak dapat benar-benar menemukan cara untuk mengatur ukuran kolom / baris ke piksel (sehingga membuatnya persegi) karena cara Excel menanganinya sehingga membuatnya bagus dan persegi terlebih dahulu.
Sunting 1: Diganti RGB dengan nilai yang dikembalikan untuk warna, -26 byte
Sunting 2: Mencoba untuk menambahkan sebanyak mungkin saran yang saya bisa, -75 byte. Saya tidak dapat menggunakan
&48e0
warna dan saya tidak yakin mengapa. Terimakasih semuanyaGambar:
sumber
0.2cm
. Ini akan dipertahankan setelah Anda beralih kembali, dan tidak perlu mencoba dan mencari rasio aspek Excel yang aneh :-) Ngomong-ngomong, jika Anda ingin beberapa trik Excel yang lebih keren, lihat video "You suck at Excel" karya Joel Spolsky.MATL ,
5756524948 byteIni menghasilkan gambar berikut (diuji dengan kompiler berjalan pada Matlab dan pada Oktaf).
EDIT: Anda dapat mencoba secara eksperimental di MATL Online! (Anda mungkin perlu memuat ulang halaman jika tidak berfungsi pada awalnya).
Bagaimana itu bekerja
sumber
CSS,
285284264 byteDisimpan 1 byte berkat @insertusernamehere.
Disimpan 20 byte berkat @ user2428118, dengan menghapus semua
px
. Perhatikan bahwa ini mengharuskan halaman dirender dalam mode quirks, sehingga tidak berfungsi di Stack Snippets.Saya bisa menyalin pendekatan Python membungkus gambar dengan offset, tapi itu tidak menarik untuk.
Tidak Terkumpul:
Ini menggunakan pseudo-elements (elemen yang tidak ditulis dalam HTML)
::before
dan::after
untuk membuat garis pada flag. Alasan ia bekerja tanpa HTML adalah bahwa di HTML5 elemen<html>
dan<body>
opsional, jadi browser secara otomatis membuatnya jika tidak ada.Lebih menyenangkan:
Tampilkan cuplikan kode
sumber
white
dengan#fff
.px
mana-mana.<!doctype html>
!Bash + Imagemagick 7,
94908685 bytemagick -size 84x56 xc:#0048e0 ${s=-splice 8x8}+28+28 -background \#d72828 $s+32+32 x:
Disimpan 8 byte, terima kasih kepada @manatwork, dan 1 byte, terima kasih kepada @ GlennRanders-Pehrson
sumber
x:
bukan nama file output,convert
akan menampilkan hasilnya di jendela, yang juga dapat diterima. Dan cukup untuk hanya melarikan diri tajam, tidak perlu mengutip:\#d72828
.bash
sisi Anda dapat menyimpan lain 4 karakter:convert -size 84x56 xc:#0048e0 ${s=-splice 8x8}+28+28 -background \#d72828 $s+32+32 x:
.${s=-splice 8x8}+56
?+56
diperlakukan sebagai+56+0
, bukan+28+28
.ZX Spectrum BASIC,
21014192 byteUkuran ditentukan sebagai ukuran program BASIC pada kaset via
SAVE
. Banyak kredit golf untuk beberapa anggota grup ZX Spectrum di Facebook , khususnya @impomatic dan Johan Koelman.sumber
PAPER
danBRIGHT
membawa banyak kenangan indah :-)FOR
,NOT
dll untuk mengambil hanya 1 atau mungkin masingFOR
tepatnya satu byte. Namun, angka "anti-tokenized" di mana mereka disimpan sebagai teks dan bentuk biner mereka dan mengambil 5 byte lebih dari yang Anda harapkan, karenanyaNOT PI
bukan nol dan sejenisnya.ZX Spectrum Z80 Assembly, 65 byte
sumber
Minecraft 1.10.2, 734 karakter
Mungkin 734 karakter, tetapi sejauh ini hanya pengiriman yang terbuat dari wol asli!
Buka sekitar -5x -5z, rekatkan ke dalam blok perintah Impuls, atur ke "Selalu Aktif" dan tekan Selesai.
Bentang bendera dari 0, 0 hingga 100, 72; dan 3 blok di atas blok perintah seperti yang ditempatkan. Itu membuat bayangan yang cukup besar , dan monster muncul di bawahnya. Apakah ini akurat untuk negara Islandia, bagaimanapun, adalah dugaan siapa pun.
Peringatan yang adil - akan / membunuh semua orang
MinecartCommandBlock
di dunia dengan tujuan menyelamatkan empat karakter. Jangan menjalankan ini di dunia yang terlalu dekat dengan Anda.Menggunakan perintah combiner MrGarretto dan sedikit mengubah output (808 -> 734)
sumber
Logo,
216188 byteMenggunakan implementasi Calormen.com . Untuk Anda yang puritan, implementasinya menggunakan beberapa antialiasing yang sedikit memperkeruh tepi. Saya membuang-buang 3 byte menyembunyikan kura-kura, jadi itu harus menebusnya.
Ini bisa sangat berkurang jika penerapan Logo Anda memungkinkan Anda mengatur ukuran jendela. Kemudian Anda bisa
wrap
dan membuat kura-kura membajak untuk membuat salib dalam empat pukulan, dan melompat harus memotongnya dengan perbatasan.sumber
Java 8,
449447 byte:Jawaban yang sangat terlambat, dan juga yang terpanjang di sini, tampaknya. Menggunakan
java.awt.Graphics
kelas untuk membuat dan membuka jendela dengan bendera di dalamnya, yang dibuat oleh 5 total persegi panjang yang terdiri dari 1 untuk blok biru, 2 untuk garis-garis putih, dan 2 untuk garis-garis merah. Menggunakan 7 piksel: 1 unit rasio. Dengan kata lain, untuk setiap unit, 7 piksel digunakan. Berikut adalah gambar dari output pada Macintosh dengan OS X 10.11:Sekarang untuk menemukan cara untuk bermain golf ini sedikit lebih ...
sumber
paint
ganti alih-alihpaintComponent
. Pertimbangkan untuk menggunakan kelas anonim untuk JPanel. Pertimbangkan hanya menggunakan BufferedImage dan mengeluarkan ke file.Blue
1 persegi panjang besar sebagai latar belakang. Saya baru saja bingung antara ini dan versi lain yang saya buat dengan Python. Apapun, terima kasih untuk tips lainnya! :)JPanel
, cukup timpaJFrame
. Jika Anda melakukan ini dan hanya menimpanyapaint
, Anda tidak perlu Swing, cukup AWT, jadi ubahJFrame
toFrame
dan hapus impor. Jangan panggilsuper.paint
. Atur ulang metode utama; pindahkansetSize
kepaint
metode kitaFrame
, hapus variabelJ
, dan tambahkan.setVisible(true)
ke akhir kelas anonim. Akhirnya, ubah.setVisible(true)
menjadishow()
, ya itu metode yang sudah usang, tapi lebih pendek. Gunakan ainterface
untuk menghapuspublic
dari metode utama.import java.awt.*;interface A{static void main(String[]a){new Frame(){public void paint(Graphics G){setSize(175,119);G.setColor(new Color(0,72,224));G.fillRect(0,0,175,126);G.setColor(Color.WHITE);G.fillRect(49,0,28,126);G.fillRect(0,49,175,28);G.setColor(new Color(215,40,40));G.fillRect(56,0,14,126);G.fillRect(0,56,175,14);}}.show();}}
setBackground(color)
(juga ukurannya masih salah). Sekarang pada 317:import java.awt.*;interface A{static void main(String[]a){new Frame(){public void paint(Graphics G){setSize(175,126);setBackground(new Color(0,72,224));G.setColor(Color.WHITE);G.fillRect(49,0,28,126);G.fillRect(0,49,175,28);G.setColor(new Color(215,40,40));G.fillRect(56,0,14,126);G.fillRect(0,56,175,14);}}.show();}}
R,
197195187 byteDiindentasikan, dengan baris dan penjelasan baru:
Sunting : ternyata
frame()
, bertentangan denganplot()
atauplot.new()
tidak secara default menambahkan perbatasan ke plot, artinyabty="n"
tidak perlu di sini.sumber
Atari 8-bit dieksekusi, 123 byte
Entri "hanya untuk bersenang-senang" lainnya, program ini dimaksudkan untuk dijalankan pada komputer atau emulator 8-bit Atari. Misalnya, untuk memuat program di Atari800, jalankan saja:
Kode mesin (dalam hex byte)
Kode sumber Assembler (dapat dikompilasi dengan MADS ):
Bagaimana itu bekerja:
Program ini menggunakan daftar tampilan khusus yang didasarkan pada Mode ANTIC 8 (40 piksel per baris, 2 bpp). Baris yang berulang dimuat dari lokasi memori yang sama. Setelah mengatur tampilan, program memasuki loop tak terbatas.
Tangkapan layar:
sumber
FFmpeg,
339184 byteAkan mencoba untuk bermain golf ini turun .. Selanjutnya.
sumber
Python,
119118114112 byteTidak ada yang istimewa, langsung:
Output sebagai PPM biner, penggunaan
print
dan tanda kutip\0
dapat digunakan sebagai ganti\x00
Jika seseorang tahu cara menggunakan karakter ASCII yang tidak dapat dicetak secara langsung, beri tahu.
sumber
b,w,r="\0Hà"*28,"ÿ"*12,"×(("*8
dan menggunakan Python 3, tetapi tidak berhasil.JavaScript, 267 byte
sumber
Java, 335 byte
Fungsinya adalah
Dan itu menulis gambar yang diinginkan sebagai
f.png
, dengan ukuran 100x72(Perhatikan bahwa ini bukan pesaing langsung dari Jawaban oleh R. Kap , karena ia menulis file, dan tidak menampilkan gambar di layar)
Berikut adalah versi yang tidak dikoleksi yang dapat dikompilasi dan dijalankan:
Catatan tambahan, berkenaan dengan pertanyaan terkait: Mungkin orang harus membuat tantangan untuk melukis bendera
pada waktu bersamaan:
sumber
SVG + Javascript,
190165164 byteTidak ada ahli di sana,
mengulangi satu jalur hanya untuk mengubah warna dan lebar garis terlihat konyoljavascript ftw!Lebih mudah dibaca:
sumber
path d="m0,0h100v72H0"
bukan persegi panjang untuk menyimpan dua byte. Demikian juga, gunakanM0 36H100M36 0V72
untuk data jalur lain, yang menyimpan lima byte lagi. Dan Anda dapat menjatuhkanstyle
atribut untuk menyatakan keduanyastroke-width
danstroke
sebagai atribut untuk menyimpan lima byte lainnya.Memproses , 136 byte
Tidak disatukan
Keluaran:
sumber
fill
danrect
bukannyasize
danbackground
. 134 byte:noStroke();fill(#0048e0);rect(0,0,100,72);fill(255);rect(0,28,100,16);rect(28,0,16,72);fill(#d72828);rect(0,32,100,8);rect(32,0,8,72);
fill(-1)
lebih pendek satu byte darifill(255)
Mathematica
174157 byteTanpa builtin:
157 byte
atau sebagai alternatif
232 byte
sumber
u=Unitize;c=ConstantArray
etc ^ _ ^CountryData["Iceland", "Flag"]
JavaScript (ES6), 231
240Kode di dalam cuplikan di bawah ini. Jalankan untuk menguji.
sumber
ZX Spectrum Z80 Assembly, 51 byte
https://github.com/ralphbecket/Z80/blob/master/IcelandFlag/IcelandFlag.asm
sumber
J,
868483 bytePendekatannya sama dengan @ Gábor Fekete dengan Python.
Argumen meninggalkan
colors
untukviewmat
sebuah array nilai RGB, dalam kasus kami:Dan argumen yang tepat adalah matriks indeks
colors
.(_9 _9 |. matrix)
menginstruksikan untuk menggesermatrix
9 item di setiap dimensi.Konstruksi menakutkan
(border ([,~[,.~[,[,.]) matrix)
dibungkusmatrix
dengan angkaborder
.Dan
(14 21 $ 1)
membuat 14 × 21 matriks yang.Outputnya ditampilkan di jendela resizable terpisah, cukup besar secara default.
Terima kasih
miles - menyelamatkan 2 byte dengan menata ulang warna, menggunakan fitur
,
duplikat angka (255) untuk bentuk perjanjian.sumber
14 21
(18 25 - 4 4
). mengoreksi ... terima kasih!(255,0 72 224,:215 40 40)viewmat _9 _9|.2(b=.[,~[,.~[,[,.])0 b 14 21$1
TI-BASIC (non-bersaing), 323 byte
Kode ditulis untuk TI-84, 83, dan varian. Saya harap ini bukan masalah yang ukurannya bervariasi berdasarkan perangkat, dan kode tidak berwarna.
Mempersiapkan:
Gambar:
Golf:
Ya, kurangnya
)
disengaja.Ukuran:
Line(
dan semua perintah seperti itu membutuhkan 1 byte, setiap angka membutuhkan satu byte. Itu 323 byte.Benar-benar membosankan. Saya akan mendapatkan ini pada sebuah emulator semoga (saya harus memasukkan semuanya secara manual) tetapi secara harfiah hanya garis-garis dalam bentuk bendera.
sumber
Line(
adalah 0x9C. Anda dapat melihat tabel token satu-byte di sini: tibasicdev.wikidot.com/one-byte-tokens<
dan>
) alih-alih garis untuk mendapatkan naungan abu-abu?C #,
384346317292291289 BytesSolusi sederhana dengan Windows Forms dan GDI
Pemakaian
Mulai proyek-konsol baru dan letakkan kode di atas dalam metode utama, tambahkan System.Drawing-Namespace.
Bagaimana itu bekerja
Kode menciptakan gambar baru dan menggambar beberapa garis di atasnya. Ini menyimpan gambar ke disk. Beberapa titik akhir garis berada di luar area yang terlihat.
sumber
b = new
=>b=new
,using ()
=>using()
, jangan gunakan spasi setelah;
s. Jika Anda mau, Anda dapat membaca Tips kami untuk bermain golf di C # untuk menemukan beberapa saran.Process.Start(f);
? Seperti yang saya mengerti, itu mirip dengancmd
start
. Karena Anda dapat memilih untuk menyimpan atau menampilkan gambar dan Anda sudah menyimpannya, langkah itu sepertinya tidak ada gunanya. Dalam hal ini mungkin Anda dapat menghindari mendeklarasikan variabel f juga.using
s serta untuk deklarasi metode atau program boilerplate. Ini semua adalah bagian dari apa yang dibutuhkan (tugas memberi Anda pilihan fungsi atau program, tetapi bukan pilihan hanya sekelompok pernyataan).Python IDLE,
191172156 byteIDLE adalah IDE standar Python. Kecuali memiliki tema khusus,
STDOUT
berwarna biru,STDERR
merah, dan latar belakang putih. Jadi, kode berikut:Menghasilkan output ini:
Sebagai karakter yang dicetak sebagai tidak persegi, ini sedikit salah, tetapi jika kita mengambil 1 unit menjadi 2 karakter dan 1 karakter, maka proporsinya tepat.
Ini bisa di-golf, dengan setengah dimensi lebar, dan menggunakan karakter ASCII untuk blok-blok seperti itu
'#'
, tetapi tidak persis memiliki efek yang sama.Penjelasan
Kode itu sendiri kelihatannya cukup ceroboh saat ini, dan pasti dapat dip Golf, tetapi ide dasarnya adalah:
0
mewakili spasi,1
mewakili blok biru, dan2
mewakili blok merah.STDERR
/STDOUT
sesuai. Cetak baris baru setelah setiap baris.sumber
Penyu Python, 176 byte
Implementasi Python Turtle lain tapi kali ini berdasarkan stamping bukannya menggambar :
Dengan menggunakan stempel, dan tidak membuatnya mudah diskalakan, menghemat sekitar 60 byte kode.
Bagian yang menyenangkan adalah Anda dapat mengganti
"square"
opsi poligon dengan"turtle"
opsi poligon dalamshape()
panggilan dan mendapatkan logo ecogroovy:sumber
Perl, 134 byte
Catatan:
\x1b
sebenarnya adalah karakter pelarian ASCII dan dihitung sebagai 1 bytePemakaian
Simpan sebagai
iceland-flag.pl
dan jalankan melalui:Menggunakan urutan pelarian ANSI dan mengasumsikan terminal Linux untuk menampilkan bendera. Terlihat agak aneh menggunakan ukuran yang disediakan.
Perl, 141 byte
Versi ini terlihat sedikit lebih dekat ke dimensi asli ...
sumber
SpecaBAS - 150 byte
Membaca warna tinta, x, y, lebar dan tinggi dan menggambar persegi panjang dengan koordinat / dimensi tersebut.
sumber
:
? Oh, dan itu 151 byte.