Tugas: Keluarkan bendera Swiss.
Selamat Hari Nasional Swiss / Schweizer Bundesfeiertag / Fête nationale suisse / Festa nazionale svizzera / Fiasta naziunala svizra!
Detail:
Bendera terdiri dari tanda #FFFFFF
silang putih ( ) pada #FF0000
latar belakang merah ( ). Salib terdiri dari 6x6 persegi dengan lengan ukuran 6x7 terpaku di setiap sisi. Salib berada di tengah latar belakang persegi 32x32 yang memiliki jarak 6 unit untuk setiap sisi. ( Sumber )
Ukuran output dapat dipilih oleh peserta, tetapi gambar harus sama persis dengan proporsi ini, ini berarti ukurannya harus kelipatan 32.
Versi minimal akan terlihat seperti ini:
echo 🇨🇭
- Saya berasumsi ini tidak diizinkanJawaban:
SVG (HTML5),
94838264 byteDisimpan 2 byte berkat @ThePirateBay. Disimpan 1 byte berkat @ATaco. Disimpan 18 byte berkat @CraigAyre menunjukkan bahwa gambar 32 × 32 dapat diterima. Seperti yang ditunjukkan oleh @Shaggy, ini mengasumsikan latar belakang default Anda putih; tambahkan 22 byte untuk flag yang berfungsi pada latar belakang apa pun:
sumber
>
di tag jalur Anda adalah opsional.viewBox
untuk versi minimal?<svg><path d=M0,0V32H32V0M6,13h7V6h6v7h7v6H19v6H13V19H6 fill=red
x86-16 Kode Mesin untuk DOS, 43 byte
Kode di atas dirancang untuk dirakit sebagai file COM dan kemudian dijalankan di bawah DOS. Ini memanggil layanan video ROM BIOS untuk memplot piksel masing-masing bendera, membentuk representasi 32x32 dari bendera Swiss di sudut kiri atas layar.
Kode ini mengasumsikan bahwa mode video sudah diatur ke mode 0x13, yang juga berarti bahwa itu memerlukan tampilan VGA. Mode video lain dapat digunakan, tetapi membutuhkan VGA memberi Anda dua hal: (1) piksel persegi, dan (2) palet default yang mencakup 100% benar merah (
0xFF0000
) (artinya Anda tidak perlu membuang byte mengubah palet warna). Sebelum menjalankan program ini, Anda perlu mengalihkan tampilan ke mode 0x13; hanya kode yang perlu Anda lakukan:Kode tidak membuat asumsi lain, dan harus berjalan pada perangkat keras apa pun yang kompatibel dengan x86 di bawah sistem operasi yang kompatibel dengan DOS.
Namun, program berakhir segera setelah menggambar bendera, sehingga DOS prompt biasanya akan dicetak ulang di sudut kiri atas layar, menutupi beberapa baris atas bendera. Oleh karena itu, jika Anda ingin mengagumi output yang sebenarnya, Anda harus menggantung / menjeda sistem sebelum
RET
menyala. Berikut screenshot dari tampilannya, berjalan di mesin virtual FreeDOS:Dimungkinkan untuk menurunkan ini lebih jauh dengan menulis data piksel langsung ke buffer video, terutama karena saya sudah mengasumsikan mode 0x13. Saya belum mencobanya.
INT 0x10
sudah merupakan instruksi yang cukup singkat, tetapi jika saya dapat menggunakan instruksi satu byte string untuk menulis data pixel langsung ke memori, maka itu dapat menghasilkan penghematan kode yang signifikan.sumber
MATL , 29 byte
Cobalah di MATL Online!
Penjelasan
sumber
Java 8, 246 + 42 = 288 byte
Berkat @ Harun untuk -64 byte.
-4 byte dengan mengeluarkan file
a
tanpa ekstensi.Ekspresi lamba yang dapat ditugaskan ke metode antarmuka fungsional yang melempar pengecualian. Membuat file gambar bernama
a
(file gambar) di direktori yang menjalankan file ini.Kode sekitar yang digunakan untuk menjalankannya: Coba online!
Tidak disatukan
Hasil
Kisi disediakan oleh pratinjau gambar IntelliJ IDEA (tampaknya).
sumber
fillPolygon
panggilan Anda menjadi duafillRect
panggilan. Saya tidak yakin saya menghormati dimensi tetapi saya datang dengang.fillRect(7,13,18,6);g.fillRect(13,7,6,18)
yang lebih pendek dengan 64 byte.png
alih-aliha.png
dan menyimpan satu byte.a
, tanpa ekstensi? Itu masih bisa dibuka, hanya perlu diberitahu untuk membuka di penampil foto.Excel VBA,
868579 BytesKode
Anonymous VBE fungsi segera jendela yang tidak mengambil input dan output bendera Swiss ke kisaran
[A1:F32]
dariActiveSheet
objek. Ini bekerja dengan terlebih dahulu membuat sel-sel persegi, lalu menggambar daerah merah dan akhirnya menggambar di salib putih.Perhatikan bahwa pengaturan yang menghapus langkah mewarnai "tanda silang" dari bendera Swiss setelah meletakkan latar belakang merah sebenarnya lebih panjang dari konfigurasi di atas, karena mereka memerlukan setidaknya 16 alamat sel, yang berkoordinasi dengan 8 wilayah berbeda dari bendera
-1 Byte terima kasih kepada @ Greedo untuk
RowHeight=48
lebihColumnWidth=2
-6 Bytes terima kasih kepada @ Greedo sebagai
-1
gantinyargbWhite
Keluaran
sumber
Interior.Color=-1
bukannyaInterior.Color=rgbWhite
rgbWhite
nilai desimal16777215
untuk kejelasan, saya tidak tahu bahwa-1
akan memiliki efek yang sama. Terima kasih!C ++, SFML,
406399394 byte-2 bytes berkat pdpi
-10 bytes berkat Zacharý
SFML (Perpustakaan Multimedia Sederhana dan Cepat) adalah perpustakaan C ++ yang ditulis untuk memudahkan pengembangan game video dan program multimedia
Kode :
Bendera ditampilkan di jendela 128x128. OS Anda harus dapat menampilkan jendela 128x128 (Win8.1 saya tidak dapat ditampilkan dengan lebar lebih kecil)
PERINGATAN : Anda mungkin ingin menambahkan 2 baris kode ini:,
t.setFramerateLimit(60);t.setVerticalSyncEnabled(true);
sehingga CPU Anda tidak akan panas saat Anda menjalankan kode. Saya tidak memasukkannya ke dalam kode asli karena alasan bermain golf.sumber
int main(){for(sf::RenderWindow t(sf::VideoMode(128,128),"");t.isOpen();){t.clear();sf::RectangleShape r({128.f,128.f});r.setFillColor(sf::Color::Red);t.draw(r);r.setFillColor(sf::Color::White);r.setPosition({24.f,52.f});r.setSize({80.f,24.f});t.draw(r);r.rotate(90);r.setPosition({76.f,24.f });t.draw(r);t.display();for(sf::Event e;t.pollEvent(e);)if(e.type == 0)t.close();}}
e.type == 0
=>e.type==0
, bahkan mungkin!e.type
(tidak ingat prioritasnya).24.f }
=>24.f}
using namespace sf;
mungkin?Braindraw, 227 byte (Tidak bersaing) (Diperbarui untuk benar-benar berfungsi)
Versi tidak digabungkan (241 byte)
Versi golf ringan (227 byte)
Braindraw adalah bahasa pemrograman desain saya sendiri. Pada pukul 3:08 malam hari ini, saya memiliki juru bahasa yang berfungsi dan telah memeriksa bahwa program berjalan dengan benar. Namun, juru bahasa tidak ada sebelum kompetisi ini dimulai, jadi saya tidak bersaing.
Braindraw sama dengan Brainf ***, kecuali ia beroperasi pada tiga array dua dimensi, bukan satu array satu dimensi. Array ini disebut r, g, dan b, dan bertindak sebagai saluran warna merah hijau dan biru. Operator r memindahkan pointer ke saluran merah, dll. Naik adalah ^, turun adalah v.
sumber
TI-BASIC (TI-84 Plus C (S) E saja), 58 byte
sumber
Mathematica, 83 byte
berikutnya hanya dari @ ASCII-saja (saya pikir itu hanya lelucon tapi berhasil!)
Mathematica, 23 byte
-10 byte dari @Jonathan Frech
sumber
CountryData["Switzerland","Flag"]
tetapi mungkin tidak memiliki proporsi yang tepat"Switzerland"~CountryData~"Flag"
menghemat lebih banyak lagi"CH"~CountryData~"Flag"
hanya membutuhkan 23 byte.HTML + CSS, 15 + 117 byte = 132 byte
Menggunakan pembungkus flexbox dengan
inset
box-shadow
.HTML + CSS, 18 +
139137122 byte = 140 byteJawaban sebelumnya menggunakan
border
dan pembungkus flexbox perantara dengan negatifmargin
.sumber
GraphicsMagick (?), 96 byte
Tidak yakin bagaimana bermain golf dengan GM (haruskah ini dianggap sebagai bahasa?). Juga tidak yakin bagaimana cara menghitung byte di sini ...
Dengan menginstal GM, ketik kode yang diberikan di windows cmd, Anda akan mendapatkan gambar dengan nama
1.bmp
. Anda mungkin ingin mengubah penawaran ganda menjadi penawaran tunggal jika Anda menggunakan bash (seharusnya berfungsi, tetapi saya belum menguji ini).Berkat Digital Trauma. gunakan hanya satu
-draw
simpan 8 bytesumber
-draw
string yang sama :convert -size 32x32 xc:red -fill white -draw "rectangle 13,6 18,25 rectangle 6,13 25,18" i.png
JavaScript + HTML, 99 + 13 = 112 byte
Disimpan 2 byte berkat pengguna2428118
Disimpan 2 byte berkat Matheus Avellar
JSFiddle
JavaScript Murni,
194129 byteJSFiddle
sumber
<canvas>
Anda dapat memasukkan HTML secara langsung dalam jawaban Anda. Lihat codegolf.stackexchange.com/a/136972/47097JavaScript (ES6) dalam HTML4 (?),
178176 byteIya! Kita tidak perlu
<canvas>
atau<svg>
bahkan<img>
!Berkat Justin Mariner, hemat 2 byte.
sumber
Löve2D ,
139138 BytesDisimpan satu byte berkat ThePirateBay
Tidak disatukan
sumber
Python 3 , 190 byte
Simpan keluaran sebagai
image.xpm
dan buka dengan editor teks favorit Anda.Cobalah online!
Keluaran:
sumber
Perl 5 , 184 byte
Kode 176 byte + 8 untuk
-Mutf8 -p
.Saya tidak sepenuhnya yakin ini seperti yang disyaratkan, ini bergantung pada input kosong yang disediakan sesuai meta post ini , yang tidak berfungsi pada TIO sehingga ia memasok baris baru (yang tidak digunakan). Output ke terminal dan terlihat seperti ini:
Proporsi harus berdasarkan skala pada satu ruang karakter menjadi dua 'piksel' vertikal.
Cobalah online!
Anda dapat melihat pratinjau output dengan menyalin dari TIO dan menempel di sini (ini menunjukkan karakter kontrol ketika melayang di atas elemen) .
sumber
GFA BASIC (Atari ST), 62 byte
Daftar yang diedit secara manual dalam format .LST. Semua baris diakhiri dengan
CR
, termasuk yang terakhir.Diperluas dan dikomentari:
Keluaran
Outputnya adalah 32x32.
NB: Ini memang menggunakan warna 'putih', meskipun terlihat abu-abu pada emulator (dan pada hal yang sebenarnya juga, kecuali jika Anda mengubah kecerahannya cukup tinggi).
sumber
R,
171140 byte.(agak) tidak berbulu:
Terima kasih kepada @gregor karena telah menghemat beberapa byte
Menjalankannya!
sumber
e=2
alih- aliheach=2
,t
alih-alihtype
,c
untukcol
,b
untukborder
. Dan0*1:4
lebih pendek daric(0,0,0,0)
.plot
:plot(0,0,'n',l,l,xaxs="i",yaxs="i")
(menetapkanm="i"
sebenarnya biaya satu byte). Dengan semua itu turun menjadi 141 byte.l
danxlim
/ylim
tidak diperlukan, cukupplot(0:32,0:32,...)
. Saya juga mengadaptasi pendekatan Anda dan membawanya ke 117 di sini, menggunakanrect
bukanpolygon
.Oktaf,
105 byte,73 byteCatatan: umpan baris ditambahkan untuk kejelasan, tidak termasuk dalam jumlah byte
Sunting : terima kasih kepada flawr karena telah menghemat banyak byte!
Ini hasilnya di octave-online.net, terima kasih kepada sanchis
sumber
x(32,32,3)=0; x(:,:,1)=1; x(7:26,14:19,:)=1; x(14:19,7:26,:)=1; imshow(x*255)
GIF, 97 Bytes
Murah dan byte-berat, tetapi sepadan.
Sunting: Beberapa karakter tidak ada dalam kode di atas, ini adalah pastebin untuk hexdump GIF.
EDIT: dikompresi hingga 97 byte dengan alat online.
sumber
HTML + JavaScript (ES6), 13 + 112 = 125 byte
HTML + JavaScript (ES6), 13 + 114 = 127 byte
sumber
clearRect
, saya harap Anda setuju dengan itu?C #
265/266209 byteSaya menulis karakter "spasi" ke konsol sambil mengubah Warna Latar Belakang. Tetapi jika Anda menganggapnya terlalu tinggi dan Anda menghitung satu karakter sebagai 8 x 16 piksel, Anda cukup menggandakan nilai di dekat "j" seperti ini (+ 1 byte dan +
c.ReadKey();
jadi berhenti):56 byte disimpan berkat TheLethalCoder
sumber
namespace System{using static Console;class P{static void Main(){for(int i=0,j;i<32;i++,WriteLine())for(j=0;j<32;Write(" "))BackgroundColor=(ConsoleColor)((6<i&i<26&j>13&j<19)|(6<j&j++<26&i>13&i<19)?15:12);}}}
Tikz,
145143 byteIni dia "ungolfed"
Ini dia ungolfed sedikit lagi
Ini membuat 3 persegi panjang menjadi merah besar dan dua putih kecil untuk plus.
Begini tampilannya. Itu tidak benar-benar terlihat berbeda dari yang lain.
sumber
documentclass
di github beberapa minggu yang lalu. dan sepertinya tidak ada persyaratan latar belakang jendela. Dengan itu\documentclass{g}\input tikz
harus bekerja untuk menghemat 5B. Anda mungkin dapat menghemat lebih banyak dengan bekerja di TeX biasa , bahkan dengan TikZR, 109 byte
Penggunaan
frame
untuk menghindari pengaturan plot, tetapi wilayah plot standar adalah pada interval [0,1], bukan [0,32]. Juga menggunakan fakta yangrect
vektor. Ukuran standar jendela plot adalah 7in x 7in. Ini output sebagai berikut:R, 125 byte
Default untuk
png
adalah kuadrat 480x480 piksel. Output adalah file png berikut:sumber
R, 112 byte
Padahal, untuk menjamin rasio aspek, kami membutuhkan 5 byte lebih untuk total 117:
Dengan banyak inspirasi dari jawaban Alex Axthelm , dan terima kasih kepada Rift karena telah menghemat beberapa byte lagi.
sumber
bg="red"
kebg=2
yang sama di palet defaultPostscript,
301 286187 byteTerima kasih kepada editor anonim yang menyarankan pengurangan 99 byte!
sumber
Merah , 79 Bytes
Kode:
Hasil:
Penjelasan:
sumber
Bitmap, 160 byte
Berikut adalah bitmap dengan kedalaman warna 1-bit, menggunakan definisi warna 24-bit. Enam byte terakhir dari baris kedua adalah palet dan berikut ini adalah array piksel. Setiap empat byte berisi seluruh baris piksel.
Saya mencoba untuk memotong nol trailing, tetapi pemirsa gambar membutuhkan cukup piksel yang ditetapkan untuk seluruh kanvas.
sumber
Python 2,
929189 byteOutput sebagai ppm biner, penggunaan:
Meningkatkan kedalaman warna memungkinkan saya menggunakan ruang untuk nilai maksimum
sumber
Tcl / Tk, 94
Jika berjalan pada shell interaktif, seseorang dapat menyingkat
canvas
darican
dangrid
kegri
Tcl / Tk, 98
Jika berjalan pada shell interaktif, seseorang dapat menyingkat
canvas
kecan
Tcl / Tk, 101
sumber