Hari ini adalah 8 November 2016, Hari Pemilihan di Amerika Serikat.
Jika Anda adalah warga negara AS yang memenuhi syarat untuk memilih, maka keluarlah dan pilih jika Anda belum pernah menjawab tantangan ini. Jangan diskusikan siapa yang Anda pilih. Hanya masalah yang Anda pilih.
Jika Anda bukan warga negara AS atau tidak berhak memilih, maka, sebelum menjawab tantangan ini, bantulah AS dengan memberi tahu siapa pun yang Anda kenal yang merupakan warga negara yang memenuhi syarat untuk keluar dan memberikan suara jika belum.
Tantangan
Tulis program yang menunjukkan bahwa Anda memilih, seperti stiker "Saya Memilih" digital .
Ini harus mengambil tidak input dan keharusan output dalam cara yang masuk akal kalimat I Voted
mana I
, o
dan e
merah ( #FF0000
) dan V
, t
, dan d
biru ( #0000FF
). Latar belakang harus putih ( #FFFFFF
).
Sebagai contoh:
Warna-warna ini tentu saja mewakili bendera Amerika (meskipun bukan warna resmi ). Merah datang lebih dulu hanya karena datang pertama dalam ungkapan umum "merah putih dan biru".
Agar valid, sebuah jawaban harus:
Gunakan warna yang ditentukan dalam pengaturan yang ditentukan.
Gunakan font dan ukuran font tunggal yang dapat dibaca. Contohnya menggunakan 72pt Times New Roman bold tetapi font umum di atas 6pt mungkin baik-baik saja.
Hanya memiliki frase
I Voted
pada satu baris , menggunakan huruf kapital dengan benar, dengan ruang yang jelas antara dua kata. Seharusnya tidak terlihatIVoted
.Tidak menunjukkan siapa yang menjawab atau mendukung pemilihan presiden atau balapan suara rendah. Jangan memulai debat internet apa pun. Ini tentang merayakan pemilihan, bukan kandidat.
Segala cara yang wajar untuk menampilkan atau memproduksi output adalah valid, seperti:
Menggambar teks ke gambar yang kemudian ditampilkan, disimpan, atau ditampilkan mentah.
Menulis teks ke konsol menggunakan pemformatan warna . Dalam hal ini, Anda dapat memperkirakan merah dan biru murni jika perlu, dan tidak apa-apa jika hanya area tepat di belakang teks yang dapat dibuat putih.
Menampilkan teks pada formulir WPF / Windows.
Mengeluarkan file HTML / RTF / PDF dengan teks.
Silakan kirim gambar dari output Anda.
Jawaban terpendek dalam byte menang.
sumber
Jawaban:
Obrolan Minecraft (klien vanili 1,10, server keran 1,10): 19 byte
atau dari sisi klien:
Minecraft menggunakan sistem kode warna dengan warna-warna ini diprogram dalam.
Pikirkan aturannya:
Semua ini benar, seperti:
perkiraan ARE merah dan biru (meskipun masih sangat mirip).
Latar belakang obrolan Minecraft transparan, artinya memungkinkan untuk menempatkan ini pada latar belakang putih. (seperti dunia kosong)
sumber
&
s harus§
sC,
8280787454 byteTerima kasih kepada @WillihamTotland dan @criptych karena telah menghemat masing-masing 2 byte!
Di mana represents mewakili 0x1B byte (tombol keluar). Karena kode ini berisi karakter kontrol yang tidak diinginkan, berikut adalah hexdump yang dapat dibalik:
Output di ponsel saya:
sumber
a
sebagai garis"\x1B[%dm"
, yang merupakan urutan pelarian ANSI untuk pewarnaan, dengan placeholder. Angka-angka dalamprintf()
mengisi tempat penampung tersebut."\x1B[47;31m"
dan mendefinisikan b to"\x1B[34m"
, lalu gunakanputs
dengan alternatinga
danb
prefixes.\33
. Tidak yakin apa yang dipikirkan standar C tentang itu ...Google Blockly ,
1014 blok,284135 blytesKode
Keluaran
Coba di sini
Tidak menghitung
hide turtle
blok karena itu hanya estetika.Blyte adalah kombinasi dari blok dan byte, belum ada meta post bagaimana menghitungnya, tetapi saya akan membuatnya nanti. Adapun sekarang, ini adalah bagaimana saya menghitung:
I o e
, 8 blytesV t d
, 10 blytes (2 spasi utama di sini)Karena Google Blockly jarang digunakan untuk bermain golf dan saya berpikir untuk menunggu tantangan ini, saya harap ini adalah pengiriman yang valid.
sumber
I o
dengan dua ruang em?Inspect Element
dan menjalankan kode di Blockly API untuk mendapatkan kode JavaScript yang sebenarnya.HTML, 52 byte
sumber
#FF0000
->#F00
dan#0000FF
->#00F
bekerja<r>I <c>V<r>o<c>t<r>e<c>d<style>r{color:red}c{color:blue
bekerjaI <c>V<e>o<c>t<e>e<c>d<style>*{color:red}c{color:0ff
dan mencatat perubahan menjadi biru0ff
c{color:blue}
versinya.LaTeX,
147126 byteMenyimpan 21 byte dan mendapatkan kerning yang lebih baik berkat @ AndreïKostyrka.
Ini mencetak halaman a4 dengan ini di baris pertama (perhatikan bahwa ini juga mencetak halaman 1 di bagian bawah):
sumber
Vo
cantik kerning ... Tapi ternyata menganggap setiap huruf secara terpisah karena warna.\documentclass{proc}\input color\begin{document}\def\z{\color{red}}\def\y{\color{blue}}\z I \y V\z o\y t\z e\y d\end{document}
menghemat 21 byte dan menghasilkan 126 byte keindahan tipografi murni.Windows 10 Batch,
5150 byteDi mana ␛ mewakili karakter ANSI Escape 0x1B. Output menggunakan pemformatan warna. Sunting: Disimpan 1 byte berkat @ brianush1. Saya mencoba menulis kode untuk menghasilkan ini tetapi butuh 97 byte. Keluaran:
sumber
@color fc&echo I
...JavaScript, 71 byte
Menggunakan
console.log
kemampuan untuk mencetak dalam warna. Tidak berfungsi dalam cuplikan tumpukan sehingga Anda harus menempelkan jawaban ini ke konsol untuk mengujinya.Kredit gambar ke @Mast
sumber
console.log([...' I Voted'].join`%c`,r='color:red',r,b='color:blue',r,b,r,b)
R,
113 85 81 74 7355 byteSunting: Menyimpan banyak byte berkat @rturnbull dan @JDL
Ukuran output (dan jarak dll) tergantung pada resolusi perangkat grafis yang sedang terbuka. Diuji dalam RGui dan RStudio pada monitor saya dan menghasilkan:
sumber
el()
sebelumnya. Terima kasih telah membantu saya mempelajari lebih banyak R! Sejaktext
adalah Vectorized, Anda dapat melewatkan untuk loop dan hanya menulis:text(seq(.3,.6,.05),.5,s,col=c("red","blue"))
. (Saya mengubah posisi x Anda untuk kode golfier, meskipun spasi mungkin sedikit kurang rapi.)co=
daripadacol=
. Dan akhirnya,6:12*.05
beberapa byte lebih pendek dariseq(.3,.6,.05)
.6:12/20
tentu saja 1 byte lebih pendek dari6:12*.05
, permintaan maaf karena menyesatkan Anda dan menyarankan pengeditan yang kurang optimal.el()
meningkatkan 99% dari semuastrsplit
jawaban sebelumnya dengan 1 byte.LÖVE ,
152 142136 byteMari kita tunjukkan beberapa cinta untuk bahasa prototyping kecil yang menyenangkan! Ini tidak sempurna untuk tugas bermain golf (ayolah, ini berbasis LUA), tetapi mudah untuk menulis.
Tangkapan layar:
Versi sepenuhnya ungolfed:
sumber
love.draw()
adalah fungsi bawaan yang Anda timpa, yang berjalan pada langkah undian. Ada juga hal-hal sepertilove.update()
danlove.load()
untuk berbagai bagian loop render, tetapi mereka opsional. Bahasa yang bagus, dan Anda bisa memulainya dengan sangat mudah . Saya terkadang menggunakannya untuk membuat prototipe ide-ide permainan.Prosesor Sup Panas , 48 byte
Versi ungolfed adalah:
Jika Anda ingat bahwa
mes
(pesan) adalah HSPecho
, saya pikir ini cukup mudah dibaca.Anehnya, jika Anda mencoba melakukan
pos
ataupos,
, garis biru tidak menimpa garis merah dan muncul di bawahnya. Bahkan aneh,color
hanya dimaksudkan untuk mengambil nilai0-255
, tetapi0,0,-1
bekerja untuk biru,0,-1,0
bekerja untuk hijau dan-1,0,0
bekerja untuk ... hitam? (-257,0,0
dan511,0,0
bekerja untuk warna merah, jadi ada yang funky tentang mod 256 yang terjadi)sumber
mes
menimpa yang pertama?MATLAB, 74 byte
Kami membuat latar belakang 50x50 putih (satu kolom untuk setiap negara bagian) menggunakan
imshow
arrayones
. Kami kemudian menampilkan teks, menggunakan trik saya memperpendek nama properti untuk mendapatkan warna. Karena font default bukan lebar tetap, teks diisi dengan spasi.MATLAB, 99 byte, fon dengan lebar tetap
Versi pertama menggunakan mengutak-atik spasi dan koordinat untuk mendapatkan kerning yang tepat pada font default, dan mungkin tidak ditampilkan dengan benar di komputer Anda. Sebagai gantinya, kita dapat menggunakan font dengan lebar tetap, seperti
Courier
(atau, untuk beberapa byte lagi,FixedWidth
yang bekerja pada sistem apa pun yang memiliki font dengan lebar tetap terpasang). Ini datang dengan biaya beberapa byte tambahan. Kami dapat mengurangi ini sedikit dengan menggunakanfor
loop untuk mencetak teks. Teks dan warna yang sesuai disimpan dalam larik sel. Latar belakang harus sedikit lebih besar.Matlab, edisi bonus 80 byte
Sayangnya, teks biru yang digarisbawahi tidak diizinkan. Kalau tidak, jawaban ini akan menyoroti beberapa perilaku menarik di MATLAB. Anda dapat mencetak teks merah menggunakan
fprintf(2,txt)
, dan Anda dapat mencetak teks bergaris bawah biru denganfprintf('<a href="">txt</a>')
. Menggabungkan ini berhasil ... kadang-kadang. Benar-benar acak , itu juga dapat membuat teks bergaris merah. Anda dapat mengeluarkandrawnow
antaraf
panggilan berurutan jika hal ini terjadi pada sistem Anda.sumber
<a href>
alih-alih<a href="">
. Jika Anda tidak menyukainya, Anda bisa menggunakannya<a href=#>
.<a>
tidak bekerja<a>
tidak dianggap sebagai tautan yang dapat diklik. untuk mendapatkan warna biru, itu harus dianggap sebagai satu. Dalam CSS, pemilihnya mungkina[href]
. Selama atributnyahref
ada, itu adalah tautan yang dapat diklik. Itu sebabnya hanya menggunakan<a>
tidak akan berhasil.ImageMagick, 102 byte
Tidak Terkumpul:
Terdiri dari perintah lengkap ImageMagick
tidak secara eksplisit memanggil
convert
utilitas defaultmenggunakan
xc:
alih-alihcanvas:
(xc:
adalah sinonim lama untukcanvas:
; Saya tidak melihat ImageMagick menghilangkannya)tidak menentukan warna kanvas tetapi mengandalkan default ImageMagick, yang kebetulan berwarna putih
menghapus lebar
60
dari geometri (ketika dihilangkan, lebar == tinggi)menghapus "!" dari geometri yang hanya diperlukan untuk menghasilkan kanvas non-persegi, suka
canvas:white[60x30!]
menggunakan yang lebih lama
x:
alih - alihshow:
sebagai file output (menganggap bahwa ImageMagick dibangun denganX
dukungan)menghapus beberapa spasi putih yang telah saya gunakan untuk mengatur string teks
bergabung dengan beberapa baris perintah (menghapus backslash-CR di antara baris)
Jika Anda cenderung setelah pemilihan, tambahkan 12 byte
-rotate 180
sebelumshow:
arahan:sumber
Bash, 35 byte
Script saya terlihat seperti ini
xxd file skrip:
Mengetiknya: ctrl-v-esc dan ctrl-vh akan menyisipkan escapes dan backspaces (^ [dan ^ H).
sumber
Mathematica (output gambar REPL),
6549 byteEkspresi REPL grafis.
sumber
Overlay@{"I o e"~Style~Red," V t d"~Style~Blue}
(seharusnya ada dua ruang antara I dan o dan sebelum V)Jawa,
322319318309304229217 byte-9 Bytes berkat kevin.
-75 Bytes terima kasih kepada Angzuril, info yang bagus tentang kelas awt yang lama, selalu lupa yang ada.
-12 Bytes terima kasih kepada user902383.
Keluaran:
sumber
JFrame j=
bisa bermain golf untukFrame j=
;(c==' '||i++%2==0)?
bisa bermain golfc<33|i++%2<1?
dantrue
bisa bermain golf1>0
. Juga, @HelkaHomba, apakah ini output yang valid? Karena ia juga memiliki ruang antaraV o t e d
? Oh, dan mengapa0,0,999,99
?0,0,99,99
cukup besar untuk teks di layar saya.(c<33||i++%2<1)?
masih dapat di-golf dengan tiga byte dengan menghapus tanda kurung dan mengubah||
ke|
new JComponent
tonew Container
(-1); hapuschar c="IVoted".charAt(i);
dan ubahg.drawString(c+""
keg.drawString("IVoted".charAt(i)+""
(-8).Frame j=new JFrame();j.add(new JComponent()
menjadiFrame j=new Frame();j.add(new Container()
dan Anda juga dapat membatalkan imporimport javax.swing.*;
dang.setColor(Color.WHITE);g.fillRect(0,0,99,99)
sebagai hasilnya (-63)void n(){new Frame(){{add(new Panel(){public void paint(Graphics g){int i=0;for(String c:"IVoted".split("")){g.setColor(i%2<1?Color.RED:Color.BLUE);g.drawString(c,i++*8,10);}}});setVisible(0<1);}};}
memungkinkan Anda mengurangi sebesar 12 byteBubblegum, 28 byte
Tidak berfungsi secara online karena menggunakan kode warna ANSI untuk pewarnaan.
sumber
PowerShell v2 +,
71595755 byteDisimpan dua byte berkat @flashbang ... disimpan dua lagi berkat @ConnorLSW
Membawa
"I Voted"
dan mengubahnya menjadichar
-array, lalu loop|%{...}
. Setiap huruf, kita jalankanWrite-Host
dengan-b
warna ackground keWhite
,-n
oNewLine, dan-f
warna oreground menjadi indeks yang sesuai . Ini memanfaatkan fakta bahwa nilai ASCII ganjil adalah Merah, sementara nilai ASCII pun Biru$_%2
sebagai indeks.Warna konsol di PowerShell sangat terbatas, jadi ini adalah perkiraan terdekat yang bisa saya dapatkan. Ini akan menjadi golfier untuk menggunakan
4
(DarkRed
) untuk yang merah, tetapi tidak terlihat benar, jadi saya mengorbankan beberapa byte demi akurasi warna.Di bawah ini adalah output, diikuti oleh 16 warna yang tersedia yang dapat ditampilkan oleh konsol. Perhatikan bahwa latar belakangnya tidak benar - benar putih, karena Microsoft dalam kebijaksanaannya memilih untuk memiliki warna latar belakang yang selalu sedikit berbeda dari warna latar depan.
sumber
Python, 91 byte +
termcolor
Tidak akan menang, tetapi mempostingnya untuk bersenang-senang.
Setengah dari kredit masuk ke Sp3000.
sumber
'blue' if c else 'red'
ke'brleude'[c^1::2]
.from termcolor import*\nfor c in'I Voted':cprint(c,'brleude'[ord(c)%2::2],'on_white',end='')
Jolf, 53 byte
Ada yang tidak bisa diterbitkan. Coba di sini!
Output Jolf adalah HTML mampu. Saya mencoba melakukan sesuatu yang pintar seperti modulus 2 untuk menentukan warna, tetapi itu hanya berakhir lebih lama (sekitar 69 byte). Jadi, hasilnya dalam HTML.
Keluaran:
(versi lebih besar)
sumber
blue
dapat ditulis sebagai00f
?Python,
9987 byteCobalah online
sumber
sh,
6149 byteKarena ini mengandung unsintables, berikut adalah xdd hexdump yang dapat dibalik:
Xterm (322)
Berkat 4198 (manatwork) untuk -12 byte.
sumber
[47;31;1m
. Dan1
huruf tebal tetap ada hingga a0
, jadi tidak perlu lagi mengaturnya untuk setiap huruf.sh
adalah sesuatu yang lebih modern dari Bourne shell tua, beberapa perluasan parameter dapat membantu:s=":1;47;1mI :4mV:1mo:4mt:1me:4md";echo ${s//:/^[[3}
.${VAR/FROM/TO}
membutuhkan ksh93, bash atau zsh, bukan hanya "apa pun yang lebih modern daripada shell Bourne lama". POSIX membutuhkan#
dan%
pengubah parameter ekspansi tetapi tidak/…/
atau:…:
SVG +
bzip2
, 1807 byteVersi vektor dari contoh gambar, kemudian dikompres dengan bzip2 menjadi sekitar setengah (4385 -> 1807 bytes). Anda dapat mengunduhnya di sini . (tautan langsung GitHub Pages)
Tidak akan menang, tetapi mempostingnya untuk bersenang-senang.
sumber
bzip2
bukan bahasa pemrograman.xxd
dari file<svg xmlns="http://www.w3.org/2000/svg"><text fill="blue"><tspan fill="red">I</tspan> V<tspan fill="red">o</tspan>t<tspan fill="red">e</tspan>d</text></svg>
Perhatikan bahwa ini benar-benar membuatnya di luar area yang dapat dicetak dan tidak memiliki warna latar belakang. Seperti yang saya katakan, ini baru permulaan.C, 65 byte
atau, lebih akurat:
Menggunakan teknik warna bash yang sama yang digunakan oleh betseg, tetapi dengan urutan escape oktal alih-alih hex, dan dengan pengamatan Sp3000 bahwa semua titik kode aneh berwarna merah.
Meninggalkan terminal berwarna biru. Setel ulang dengan:
sumber
||
berfungsi dalam C seperti halnya pada JavaScript (x||y -> x?x:y
), Anda dapat melakukannyac&1||4
untuk menyimpan byte.||
dan&&
yang hubungan arus pendek, mereka selalu kembali 1 atau 0, terlepas dari nilai-nilai yang terlibat.\33
menyimpan dua byte, jika itu tidak melanggar aturan.Node,
575541 byteGanti masing
q
- masing dengan byte literal1B
danH
dengan byte08
sebelum dijalankan.Berikut tampilannya di emulator terminal ConEmu di komputer Windows saya (diperbesar):
sumber
Python IDLE,
97967869 byteTerima kasih kepada DrMcMoylex untuk mencukur beberapa byte!
EDIT: Mengetahui bahwa direct
.write()
lebih pendek 9 byteBukan jawaban yang tepat, lebih banyak penyalahgunaan tema standar. IDLE adalah IDE Python, dan kecuali itu disesuaikan,
STDOUT
berwarna biru,STDERR
merah, dan latar belakang putih. Jadi, kode berikut:Cetak ini:
Ini berfungsi karena
ord(i)%2
memeriksa paritas titik kode surat dan mencetaknya keERR
/OUT
sesuai.sumber
REBOL ,
1009095 byte (-7 byte dengan REPL untuk 88)Dalam REPL, REBOL awal [] tidak diperlukan. Itu 7 byte.
Versi ungolfed adalah:
Di sebelah kiri, dengan "spasi 0x0" ditambahkan ke setiap blok teks, di sebelah kanan, dengan padding 2x2 default.
(sumber: canardpc.com )
sumber
Perl, 57 + 17 = 74 byte
Jalankan dengan
-MTerm::ANSIColor
Terminal Anda mungkin berwarna biru di akhir (tambahkan
,c("reset")
di akhir kode untuk mengembalikannya ke normal).Secara default, terminal biasanya berlatar hitam, tetapi secara opsional dapat diubah menjadi putih, yang menurut saya pribadi tidak curang.
Dengan gambar:
sumber
PHP,
199201151 byteScript ini menampilkan gambar ke output standar. Diperbarui berkat manatwork
Jalankan di baris perintah seperti ini:
Keluaran:
sumber
header()
panggilan. Kode Anda berfungsi dengan baik dijalankan dari baris perintah juga. Karenaerror_reporting
nilai default tidak menunjukkan pemberitahuan, secara umum dapat diterima untuk tidak mengutip string literal Anda. Atau jika Anda tidak menyukainya,str_split("I Voted")
masih lebih pendek daripada menghitung karakter secara terpisah. Dan pindahkan tugas ke $ i ke penggunaan pertama.~2**24
tampaknya berfungsi sebagai ganti0xFFFFFF
. Tidak yakin apakah ini berlaku untuk semua arsitektur. Jika tidak,2**24-1
harus portable.~2**24
dan2**24-1
tetapi saya mendapat kesalahan. Saya bahkan tidak tahu cara kerjanya.pow()
, tetapi lebih mudah untuk bermain golf. pastebin.com/jFn6ahFkXamarin.Bentuk C #,
317313 byteVerticalOptions=LayoutOptions.End
diperlukan untuk iOS, jika tidak teks akan overlay oleh bilah status. Tidak ada masalah pada Android sehingga dapat menghemat 34 byte termasuk koma.Sunting: 2016-11-14: -4 byte
Tidak disatukan
sumber
kode mesin x86 + DOS + BIOS, 25 byte
Hexdump:
Kode assembly (cocok sebagai input
debug.com
, sehingga semua angka heksadesimal):Menggunakan rutin BIOS untuk menampilkan string ke memori tampilan. String akan muncul pada posisi "acak" di layar (lihat di bawah), seperti ini:
String berisi surat-surat
I V o t e d
, disisipkan dengan "atribut"yang menentukan warna huruf. Di sini 7 sebagai digit paling signifikan berarti "latar belakang putih", dan digit paling signifikan menentukan latar depan (1 = biru; 4 = merah).
Posisi tampilan string ditentukan oleh
dx
register. Seperti disebutkan di sini , nilai awal register ini sama dengan nilaics
register. Dan nilai yang satu itu adalah alamat pertama yang tersedia di memori, setelah DOS dimuat.Ukuran DOS biasanya kurang dari 64K, yaitu, alamat segmen program pengguna yang dimuat kurang dari heksadesimal
1000
. Jadi output akan muncul di suatu tempat di sekitar 16 baris pertama teks pada layar. Dalam contoh saya, muncul di baris 8 (bagian atasdx
, disebutdh
, sama dengan 8).Setengah bagian bawah
dx
, disebutdl
, berisi kolom di mana teks adalah output. Eksperimen menunjukkan bahwa BIOS tidak memeriksa overflow, jadi tidak masalah jikadx
meminta output pada misalnya kolom 100.sumber