GO OUT AND VOTE


114

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 Votedmana I, odan emerah ( #FF0000) dan V, t, dan dbiru ( #0000FF). Latar belakang harus putih ( #FFFFFF).

Sebagai contoh:

Contoh grafik "Saya Terpilih"

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 Votedpada satu baris , menggunakan huruf kapital dengan benar, dengan ruang yang jelas antara dua kata. Seharusnya tidak terlihat IVoted.

  • 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.


29
Sedikit kecewa stiker saya yang sebenarnya tidak terlihat seperti milik Anda.
Geobits

39
"Yang penting kamu yang memilih." - @HelkaHomba ... Itu seperti mengatakan "tidak masalah kode apa yang Anda tulis, selama Anda menulis beberapa kode." : /
Michael Yaeger

41
@MichaelYaeger Baiklah, menulis beberapa kode lebih baik daripada tidak menulis. Voting lebih baik daripada tidak memilih. Peluangnya adalah orang-orang akan memikirkan pengkodean dan pemilihan jika mereka memilih untuk melakukannya. Tapi sungguh saya katakan itu untuk membantu menghindari perdebatan yang marah.
Hobi Calvin

43
Jika itu membantu siapa pun, vokal berwarna merah, konsonan berwarna biru.
mbomb007

34
@ mbomb007 Atau lebih berguna, huruf dengan titik kode ganjil berwarna merah, dan huruf dengan titik kode genap berwarna biru.
Sp3000

Jawaban:


116

Obrolan Minecraft (klien vanili 1,10, server keran 1,10): 19 byte

&4I &1V&4o&1t&4e&1d

atau dari sisi klien:

§4I §1V§4o§1t§4e§1d

Minecraft menggunakan sistem kode warna dengan warna-warna ini diprogram dalam.

masukkan deskripsi gambar di sini

Pikirkan aturannya:

  • 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.

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)


10
Wow. Saya tidak dapat berkata-kata. Itu jawaban yang sangat pintar!
DJMcMayhem

28
Saya tidak berpikir Minecraft Chat Turing-lengkap atau dianggap sebagai bahasa pemrograman (meskipun ini mungkin tidak lagi menjadi persyaratan). Sangat kreatif! :)
Kade

9
@Shebang gaming.stackexchange.com/questions/20219/... Obrolan Minecraft memiliki (hampir) semua perintah yang sama dengan blok perintah, dan tentu saja semua perintah dari belakang ketika pertanyaan itu ditanyakan :-)
tuskiomi

15
Secara teknis, di vanili Minecraft, yang &s harus §s
Oliver Ni

2
Hmmm saya pikir itu bisa dilakukan di Gempa 3 juga
Sarge Borsch

107

C, 82 80 78 74 54 byte

Terima kasih kepada @WillihamTotland dan @criptych karena telah menghemat masing-masing 2 byte!

f(){puts("␛[47;31mI␛[34m V␛[31mo␛[34mt␛[31me␛[34md");}

Di mana represents mewakili 0x1B byte (tombol keluar). Karena kode ini berisi karakter kontrol yang tidak diinginkan, berikut adalah hexdump yang dapat dibalik:

00000000: 6628 297b 7075 7473 2822 1b5b 3437 3b33  f(){puts(".[47;3
00000010: 316d 491b 5b33 346d 2056 1b5b 3331 6d6f  1mI.[34m V.[31mo
00000020: 1b5b 3334 6d74 1b5b 3331 6d65 1b5b 3334  .[34mt.[31me.[34
00000030: 6d64 2229 3b7d                           md");}

Output di ponsel saya:


3
@KritixiLithos yang didefinisikan asebagai garis "\x1B[%dm", yang merupakan urutan pelarian ANSI untuk pewarnaan, dengan placeholder. Angka-angka dalam printf()mengisi tempat penampung tersebut.
betseg

1
Dua byte dapat dicukur dengan mengganti a dengan "\x1B[47;31m"dan mendefinisikan b to "\x1B[34m", lalu gunakan putsdengan alternating adan bprefixes.
Williham Totland

3
Anda dapat menyimpan 2 byte lainnya dengan "\ 33" alih-alih "\ x1B".
criptych

1
Memperluas apa yang dikatakan criptych, saya tidak tahu apakah ini diizinkan, tetapi Anda akan menghemat empat byte lagi dengan menggunakan karakter literal escape \33. Tidak yakin apa yang dipikirkan standar C tentang itu ...

3
@paxdiablo menurut utas meta ini , fungsinya OK untuk kode golf.
betseg

73

Google Blockly , 10 14 blok, 28 41 35 blytes

Kode

masukkan deskripsi gambar di sini

Keluaran

masukkan deskripsi gambar di sini

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 blytes
  • V t d, 10 blytes (2 spasi utama di sini)
  • Warna, masing-masing 1 blyte, 2 total
  • 90, 2 blytes
  • 999, 3 blytes
  • 0, 1 blyte
  • belok kanan, 2 blytes
  • bergerak maju, 2 blytes
  • blok normal, masing-masing 1 blyte, total 5

Karena Google Blockly jarang digunakan untuk bermain golf dan saya berpikir untuk menunggu tantangan ini, saya harap ini adalah pengiriman yang valid.


20
Sebagai catatan ini valid. Sangat menyenangkan melihat bahasa yang unik. Meskipun, kecuali ada konsensus meta tentang penghitungan byte di Google Blockly, saya dapat mengabaikannya saat memilih pemenang.
Hobi Calvin

2
Anda mungkin menemukan diskusi di sini relevan. CC @HelkaHomba.
Scimonster

Apakah Anda pernah mengganti tiga ruang I odengan dua ruang em?
Andrea Lazzarotto

Google Blockly akan diterjemahkan ke JavaScript dan kemudian jalankan. Anda perlu Inspect Elementdan menjalankan kode di Blockly API untuk mendapatkan kode JavaScript yang sebenarnya.

1
Tunggu, jadi bisakah Scratch digunakan?
Adamawesome4

47

HTML, 52 byte

I <c>V<e>o<c>t<e>e<c>d<style>*{color:red}c{color:0ff

2
Juga, saya pikir itu #FF0000-> #F00dan #0000FF-> #00Fbekerja
Conor O'Brien

46
Mengapa tidak mengubahnya menjadi Stack Snippet?
Neil

3
<r>I <c>V<r>o<c>t<r>e<c>d<style>r{color:red}c{color:bluebekerja
ASCII

7
sebenarnya Anda bisa tetap bersarang tanpa menutup I <c>V<e>o<c>t<e>e<c>d<style>*{color:red}c{color:0ffdan mencatat perubahan menjadi biru0ff

2
Sayangnya versi saat ini sepertinya tidak berfungsi sebagai Stack Snippet, versi terbaru yang berfungsi untuk saya adalah c{color:blue}versinya.
Neil

39

LaTeX, 147 126 byte

\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}

Menyimpan 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):

masukkan deskripsi gambar di sini


13
Saya akan berpikir LaTeX akan mengeset Vocantik kerning ... Tapi ternyata menganggap setiap huruf secara terpisah karena warna.
Sanchises

@sanchises Karena setiap huruf dalam perintah yang terpisah, saya pikir itu menghancurkan kerning yang tepat.
Fatalkan

Ya, tepat sekali. Meskipun saya yakin itu akan mungkin terjadi entah bagaimana jika golf bukan keharusan.
Sanchises

@menanamkan ini pasti mungkin , tetapi ini memang lebih lama dari solusi jelek ini.
Fatalkan

\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.
Andreï Kostyrka

34

Windows 10 Batch, 51 50 byte

@color fc&echo I ␛[94mV␛[91mo␛[94mt␛[91me␛[94md␛[m

Di 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:

saya memilih


1
Anda dapat menurunkannya dengan 1 byte jika Anda menggunakan @color fc&echo I...
brianush1

1
menarik, saya tidak menyadari terminal Windows mendukung urutan pelarian ANSI
Mark K Cowan

3
@MarkKCowan Ini hanya Windows 10, dan (saya pikir!) Memposting Pembaruan Redstone. Itu salah satu dari beberapa hal yang menghentikan saya dari hanya menginstal XP di atasnya.
wizzwizz4

@ wizzwizz4 ConEmu mendukung ini juga :) Memang ini dari ulang tahun Windows 10 (yaitu redstone 1)
Asu

@ Ain saya menginstal XP di atasnya.
wizzwizz4

28

JavaScript, 71 byte

console.log('%cI %cV%co%ct%ce%cd',r='color:red',b='color:blue',r,b,r,b)

Menggunakan console.logkemampuan untuk mencetak dalam warna. Tidak berfungsi dalam cuplikan tumpukan sehingga Anda harus menempelkan jawaban ini ke konsol untuk mengujinya.

masukkan deskripsi gambar di sini

Kredit gambar ke @Mast


Itulah tepatnya yang baru saja saya temukan, haha. Saya pikir alternatif terpendek adalahconsole.log([...' I Voted'].join`%c`,r='color:red',r,b='color:blue',r,b,r,b)
ETHproduk

Juga tidak bekerja di Node.js. :(
Jordan

Saya terkejut ini benar-benar berhasil, tetapi ternyata berhasil .
Tiang

23

R, 113 85 81 74 73 55 byte

Sunting: Menyimpan banyak byte berkat @rturnbull dan @JDL

plot(8:1,0:7*0,pc=el(strsplit("detoV  I","")),co=2:1*2)

Ukuran output (dan jarak dll) tergantung pada resolusi perangkat grafis yang sedang terbuka. Diuji dalam RGui dan RStudio pada monitor saya dan menghasilkan:

masukkan deskripsi gambar di sini


4
Oh, saya belum pernah melihat el()sebelumnya. Terima kasih telah membantu saya mempelajari lebih banyak R! Sejak textadalah 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.)
rturnbull

1
Juga, berkat pencocokan argumen parsial yang dapat Anda gunakan co=daripada col=. Dan akhirnya, 6:12*.05beberapa byte lebih pendek dari seq(.3,.6,.05).
rturnbull

1
Tangkapan yang bagus! Dan sekarang saya menyadari bahwa 6:12/20tentu saja 1 byte lebih pendek dari 6:12*.05, permintaan maaf karena menyesatkan Anda dan menyarankan pengeditan yang kurang optimal.
rturnbull

1
Bukankah warnanya mati? Bukankah "I" dan "V" harus berbeda warna?
JDL

2
Saya yakin el()meningkatkan 99% dari semua strsplitjawaban sebelumnya dengan 1 byte.
Vlo

21

LÖVE , 152 142 136 byte

Mari 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.

function love.draw()l=love.graphics
a=255
l.setBackgroundColor(a,a,a)s=l.setColor
p=l.print
s(a,0,0)p('I   o e')s(0,0,a)p('  V  t d')end

Tangkapan layar:

tangkapan layar


Versi sepenuhnya ungolfed:

function love.draw()
    love.graphics.setBackgroundColor(255,255,255)
    love.graphics.setColor(255,0,0)
    love.graphics.print('I   o e')
    love.graphics.setColor(0,0,255)
    love.graphics.print('  V  t d')
end

12
Saya yakin Anda menggunakan sesuatu selain Jawa.
AdmBorkBork

5
Begitu banyak 255 ... Sebuah variabel untuk mereka?
manatwork

1
@ ConorO'Brien Ini adalah program lengkap. love.draw()adalah fungsi bawaan yang Anda timpa, yang berjalan pada langkah undian. Ada juga hal-hal seperti love.update()dan love.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.
Geobits

2
@ kucing Mereka hanya tidak. Ini tidak seperti saya mencetak terlalu banyak pada konsol, ini cetak grafis. Jadi ruang di sini hanya "tidak melukis apa pun di area ini", bukan "mengecat area ini diwarnai".
Geobits

2
@ ZoltánSchmidt Terima kasih! Ada beberapa jawaban LÖVE lainnya , jika Anda ingin melihatnya: D
Geobits

18

Prosesor Sup Panas , 48 byte

color 255
mes"I  o e
pos,0
color,,-1
mes"  V t d

Versi ungolfed adalah:

color 255,0,0
mes "I  o e"
pos 0,0
color 0,0,255
mes "  V t d"

Jika Anda ingat bahwa mes(pesan) adalah HSP echo, saya pikir ini cukup mudah dibaca.

Anehnya, jika Anda mencoba melakukan posatau pos,, garis biru tidak menimpa garis merah dan muncul di bawahnya. Bahkan aneh, colorhanya dimaksudkan untuk mengambil nilai 0-255, tetapi 0,0,-1bekerja untuk biru, 0,-1,0bekerja untuk hijau dan -1,0,0bekerja untuk ... hitam? ( -257,0,0dan 511,0,0bekerja untuk warna merah, jadi ada yang funky tentang mod 256 yang terjadi)

masukkan deskripsi gambar di sini


Mengapa spasi di kedua tidak mesmenimpa yang pertama?
kucing

@cat Spaces tidak benar-benar menggambar apa pun, itu hanya memajukan posisi kursor dalam arti
Sp3000

1
Pintar menggunakan -1 untuk 255. Miliki +1
Cyoce

@Cyoce Atau mungkin itu sebenarnya -255?
sagiksp

18

MATLAB, 74 byte

Kami membuat latar belakang 50x50 putih (satu kolom untuk setiap negara bagian) menggunakan imshowarray ones. Kami kemudian menampilkan teks, menggunakan trik saya memperpendek nama properti untuk mendapatkan warna. Karena font default bukan lebar tetap, teks diisi dengan spasi.

imshow(ones(50))
text(2,9,'I   o e','Co','r')
text(8,9,'V  t  d','Co','b')

masukkan deskripsi gambar di sini

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, FixedWidthyang 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 menggunakan forloop untuk mencetak teks. Teks dan warna yang sesuai disimpan dalam larik sel. Latar belakang harus sedikit lebih besar.

imshow(ones(80))
for y={'I  o e ','  V t d';'r','b'}
text(9,9,y{1},'Co',y{2},'FontN','Courier')
end

masukkan deskripsi gambar di sini

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 dengan fprintf('<a href="">txt</a>'). Menggabungkan ini berhasil ... kadang-kadang. Benar-benar acak , itu juga dapat membuat teks bergaris merah. Anda dapat mengeluarkan drawnowantara fpanggilan berurutan jika hal ini terjadi pada sistem Anda.

f=@(p)fprintf(2,'%s<a href>%s</a>',p(1:end-1),p(end));f('I V');f('ot');f('ed');fprintf('\n')

masukkan deskripsi gambar di sini


Anda bisa menulis <a href>alih-alih <a href="">. Jika Anda tidak menyukainya, Anda bisa menggunakannya <a href=#>.
Ismael Miguel

@IsmaelMiguel Pintar. <a>tidak bekerja
Sanchises

Hanya menggunakan <a>tidak dianggap sebagai tautan yang dapat diklik. untuk mendapatkan warna biru, itu harus dianggap sebagai satu. Dalam CSS, pemilihnya mungkin a[href]. Selama atributnya hrefada, itu adalah tautan yang dapat diklik. Itu sebabnya hanya menggunakan <a>tidak akan berhasil.
Ismael Miguel

18

ImageMagick, 102 byte

magick xc:[x60] -fill red -draw 'text 5,30 "I     o  e"' -fill blue -draw 'text 15,30 "V   t   d"' x:

Tidak Terkumpul:

magick convert canvas:white[60x60!] \
       -fill red  -draw 'text 5,30   "I     o  e"' \
       -fill blue -draw 'text 15,30      "V   t   d"' \
       show:

masukkan deskripsi gambar di sini

Terdiri dari perintah lengkap ImageMagick

  • tidak secara eksplisit memanggil convertutilitas default

  • menggunakan xc:alih-alih canvas:( xc:adalah sinonim lama untuk canvas:; Saya tidak melihat ImageMagick menghilangkannya)

  • tidak menentukan warna kanvas tetapi mengandalkan default ImageMagick, yang kebetulan berwarna putih

  • menghapus lebar 60dari geometri (ketika dihilangkan, lebar == tinggi)

  • menghapus "!" dari geometri yang hanya diperlukan untuk menghasilkan kanvas non-persegi, sukacanvas:white[60x30!]

  • menggunakan yang lebih lama x:alih - alih show:sebagai file output (menganggap bahwa ImageMagick dibangun dengan Xdukungan)

  • 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 180sebelum show:arahan:

masukkan deskripsi gambar di sini


4
Saya suka bagaimana versi ungolfed secara drastis berbeda dari yang golf.
Andreï Kostyrka

15

Bash, 35 byte

Script saya terlihat seperti ini

echo "^[[47;31mI hope^[[34md^H^H^Ht^H^H^Hv"

xxd file skrip:

0000000: 6563 686f 2022 1b5b 3437 3b33 316d 4920 echo ". [47; 31mI 
0000010: 686f 7065 1b5b 3334 6d64 0808 0874 0808 harapan. [34md ... t ..
0000020: 0876 22 .v "

Mengetiknya: ctrl-v-esc dan ctrl-vh akan menyisipkan escapes dan backspaces (^ [dan ^ H).

masukkan deskripsi gambar di sini


Bagaimana cara kerjanya? Penjelasan akan menjadi super
kucing

2
@cat tampaknya menulis semua huruf merah (dengan "h" dan "p" sebagai stand-in), kemudian mengatur warna menjadi biru dan menulis "d" di akhir. Akhirnya ia menggerakkan kursor ke kiri untuk menambahkan "t" dan "V" di atas stand-in sebelumnya (ascii 0x08, diwakili oleh "^ H" pada tampilan di atas, bergerak ke kiri 1 karakter). Cara pintar menghindari banyak urutan pelarian untuk perubahan warna. Ia juga menggunakan karakter pelarian literal (0x1B, direpresentasikan sebagai "^ [") yang menghemat ruang dibandingkan dengan jawaban serupa seperti milik saya.
Dave

Juga: dapat menyimpan 3 byte dengan mengasumsikan terminal diatur ke latar belakang putih secara default (sebagian besar jawaban terminal lain sudah menganggap ini).
Dave

Anda dapat menyimpan byte dengan menghapus dua tanda kutip dan menambahkan garis miring terbalik (karakter escape) sebelum titik koma. Juga skrip Anda memiliki huruf kecil v (baris perintah Anda baik-baik saja).


14

Jawa, 322 319 318 309 304 229 217 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.

import java.awt.*;
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);}};}

Keluaran:

masukkan deskripsi gambar di sini


1
JFrame j=bisa bermain golf untuk Frame j=; (c==' '||i++%2==0)?bisa bermain golf c<33|i++%2<1?dan truebisa bermain golf 1>0. Juga, @HelkaHomba, apakah ini output yang valid? Karena ia juga memiliki ruang antara V o t e d? Oh, dan mengapa 0,0,999,99? 0,0,99,99cukup besar untuk teks di layar saya.
Kevin Cruijssen

1
(c<33||i++%2<1)?masih dapat di-golf dengan tiga byte dengan menghapus tanda kurung dan mengubah ||ke|
Kevin Cruijssen

1
Saya menemukan beberapa hal lagi untuk bermain golf: new JComponentto new Container(-1); hapus char c="IVoted".charAt(i);dan ubah g.drawString(c+""ke g.drawString("IVoted".charAt(i)+""(-8).
Kevin Cruijssen

1
Peningkatan pertama, ubah Frame j=new JFrame();j.add(new JComponent()menjadi Frame j=new Frame();j.add(new Container()dan Anda juga dapat membatalkan impor import javax.swing.*;dan g.setColor(Color.WHITE);g.fillRect(0,0,99,99)sebagai hasilnya (-63)
Angzuril

1
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 byte
user902383

13

Bubblegum, 28 byte

0000000: 938e 3636 ccf5 0492 e6b9 0a40 d224 370c  ..66.......@.$7.
0000010: 2c92 0f66 9780 d9a9 6076 0a00            ,..f....`v..

masukkan deskripsi gambar di sini

Tidak berfungsi secara online karena menggunakan kode warna ANSI untuk pewarnaan.


Apakah ini pengkodean langsung, atau apakah ini menggunakan trik pintar lainnya?
Conor O'Brien

2
@ ConorO'Brien Tidak ada trik pintar di Bubblegum. Sejujurnya, jawaban ini sebagian besar merupakan efek samping dari jawaban aktual yang saya kerjakan.
spaghetto

13

PowerShell v2 +, 71 59 57 55 byte

"I Voted"[0..6]|%{Write-Host -b w -n -f (9,12)[$_%2]$_}

Disimpan dua byte berkat @flashbang ... disimpan dua lagi berkat @ConnorLSW

Membawa "I Voted"dan mengubahnya menjadi char-array, lalu loop |%{...}. Setiap huruf, kita jalankan Write-Hostdengan -bwarna ackground ke White, -noNewLine, dan -fwarna oreground menjadi indeks yang sesuai . Ini memanfaatkan fakta bahwa nilai ASCII ganjil adalah Merah, sementara nilai ASCII pun Biru $_%2sebagai 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.

Output Konsol


IIRC, dalam hal-hal kuno, Anda memiliki 4 bit untuk latar depan dan 3 bit untuk latar belakang, jadi latar belakang hanya bisa menjadi 'gelap' warna 0-7. Apakah konsol masih mengikuti itu?

@Hurkyl Agak. Tampaknya didasarkan pada palet warna EGA , tapi saya tidak yakin alasan historis untuk PowerShell menjaga skema itu. Kemungkinan sesuatu yang terkubur di Win32 API kompatibilitas mundur yang memaksa mereka untuk hanya menggunakan 16 warna tersebut.
AdmBorkBork

Tidak berfungsi jika Anda mengatur warna latar belakang menjadi 15?
Random832

@ Random832 itu demi latar belakang putih stiker.
geisterfurz007

@ geisterfurz007, TimmyD, saya bertanya apakah Anda bisa mengatur latar belakang ke "15" daripada "putih" [karena latar belakang sebenarnya di gambar Anda tampaknya # 7] untuk mendapatkan putih yang lebih cerah. Tetapi saat melihatnya lebih lanjut, seluruh tampilan Anda terlihat aneh - batas antara garis dalam contoh Anda dan garis abu-abu antara "I" dan ruang berikut tidak masuk akal jika PowerShell dijalankan di konsol - apakah Anda menggunakan beberapa alat lain seperti ConEmu? Jika demikian, tidak masuk akal untuk menyalahkan Microsoft untuk ini.
Random832

11

Python, 91 byte + termcolor

Tidak akan menang, tetapi mempostingnya untuk bersenang-senang.

from termcolor import*
for c in'I Voted':cprint(c,'brleude'[ord(c)%2::2],'on_white',end='')

Setengah dari kredit masuk ke Sp3000.


2
Menggunakan kode ANSI harus lebih pendek
TuxCrafting

@ TùxCräftîñg Tidak didukung di semua platform, yaitu Windows.
Kade

3
Pikiran menambahkan gambar?
Hobi Calvin

9
Anda dapat menyimpan 5 byte dengan mengubah 'blue' if c else 'red'ke 'brleude'[c^1::2].
Kade

2
Anda mungkin harus meletakkan + termcolor pada judul karena itu bukan modul standar. Juga:from termcolor import*\nfor c in'I Voted':cprint(c,'brleude'[ord(c)%2::2],'on_white',end='')
Sp3000

8

Jolf, 53 byte

"<z>I <w>V<z>o<w>t<z>e<w>d<style>w{ΞΩ4blue}z{ΞΩ4red

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:

reguler "Saya Memilih"

(versi lebih besar)

besar "Saya Memilih"


8
Ini mengerikan Anda hanya menyimpan tiga byte di HTML: P
ASCII-satunya

@EriktheGolfer Ini benar-benar hanya berfungsi di firefox.
Conor O'Brien

@ ConorO'Brien Oh, saya menggunakan Chrome. Terima kasih.
Erik the Outgolfer

1
... dan jawaban HTML mengungguli ini.
betseg

Tidak bluedapat ditulis sebagai 00f?
Ismael Miguel


8

sh, 61 49 byte

echo "[47;31;1mI [34mV[31mo[34mt[31me[34md"

Karena ini mengandung unsintables, berikut adalah xdd hexdump yang dapat dibalik:

00000000: 6563 686f 2022 1b5b 3437 3b33 313b 316d echo ". [47; 31; 1m
00000010: 4920 1b5b 3334 6d56 1b5b 3331 6d6f 1b5b I. [34mV. [31mmo. [
00000020: 3334 6d74 1b5b 3331 6d65 1b5b 3334 6d64 34mt. [31me. [34md
00000030: 22 "
Saya memilih
Xterm (322)

Berkat 4198 (manatwork) untuk -12 byte.


Mengapa mengatur warna latar dan latar depan secara terpisah? Mulai dengan [47;31;1m. Dan 1huruf tebal tetap ada hingga a 0, jadi tidak perlu lagi mengaturnya untuk setiap huruf.
manatwork

@manatwork Ya Tuhan, saya pikir Anda harus mengatur ulang!
Erik the Outgolfer

Jika itu shadalah 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}.
manatwork

@manatwork Tidak berhasil. Sepertinya itu tidak lebih modern.
Erik the Outgolfer

@manatwork ${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:…:
Gilles

8

SVG + bzip2, 1807 byte

Versi vektor dari contoh gambar, kemudian dikompres dengan bzip2 menjadi sekitar setengah (4385 -> 1807 bytes). Anda dapat mengunduhnya di sini . (tautan langsung GitHub Pages)

BZh91AY&SY!�l�ß�x��>�ߠ/���`    0����Ҁ�D�5��ޠII�T񡤙�O!45J??��i�@JzH���
.�M�&�Q�vا����bB���� �쾾�4AV�8�8���)Z�ޣ�j�q}�����?�t�/
�±%��"A����B�X�(␌�[⎺;Z/┐├*��%�␤�       I���Uƒ�Y�9ǝK���B��┤�=���±?�W���
            ��ڰj�?�H��\����^��m�=X�d���>�!C�@�.���9�" DZ+��V1+�;�����58Q���-:�5,HDQŧ`A>����W�+h��>m��G�m�uWv�&�U�|mq�u���?=S�\{(��Z�a�I��G{Cd��;Bz���qX7��?P�@�Jt[w�]����%W���37f���-񴁭�iԳ]c��|�;i�k�H��
    sHz��Y�$�.�*�?�ڐ��Us=\뫅6%�Ud�9w���D
                                          ��H��^�Q��P��%n�O����l��+*q�U�"F%��*�     *b�� 
                                         @mP���Z�(ZL`
  bIv⦳�~�F=��>H�Ti����0@≠R≥��T�E��┴��D����␍│��2*◆=└6&⎽M�◆␊?�/�U�����r�.�`gƅ���E'��^��ILPz@���zR&u$��l^�U�n�'O\�Xj+چ�o�*�O�w��JP8���]���r��k=��N�b�ƵpM�8|���=7���N��W�M(����*�E�DݐT��Zi�v"���49�J�0}�F�*x�K���P��⎼*�������6[G,4� ү)UUT␍��%4D��Թ␉��⎻�8�CZ_3ɷwW�9��-&�Ov�a՜
�'ӥtߢ�>��^�m-������c�]:��*��2��촄Ujr�?"�J�"���DE�f?┴⎻��␍3·└���Ԉ��? ׌�5|ᫎ���|DO���%�4Ư`W�ƐV/=�]V`gˇ��^Z��cP������.{������6   o.*�sɽ���U?E.3�,�H$�{�?
             �%�0��2    ��n�C!%�>��]��
#߽v�E��K��?X|���5�ΰ@>A;#J���,��Q��$���ݨ��^����7�g�Xn�k����d욒�`fQ/7��vh|�ȥ*^M
                            �[����׈���i�I��    $��4��
  Y��`V.��ح��?�eT����5K˱~�瞯r�fL^I �#b�@�pBƞ���V`5��a��qH���Ş�t�V3��┌���T���1␉�␍$5��@T␤$�>$����π���S�[۸£�[ȟ␋CO≥�ގ^��>��]E�A��┘���I(�㴨Z�J'��:�-_┤±�K␌�ۓ#:�?m��^�Z�+�����G
�k�t�O��SD�4����^o��Z�n���6M�)!��r��w�3\�R����
�X6<#����.��p� Cj"�2�ĭ�*h�S�`}�L���C?�� �چZc'kG��

Tidak akan menang, tetapi mempostingnya untuk bersenang-senang.


1
bzip2bukan bahasa pemrograman.
Peter Taylor

3
@PeterTaylor Per aturan meta, tidak harus menjadi bahasa pemrograman. ( meta.codegolf.stackexchange.com/a/10426/41088
noɥʇʎԀʎzɐɹƆ

1
harus memasukkan reversibel xxddari file
kucing

coba gunakan brotli untuk kompresi lebih banyak lagi
Sarge Borsch

4
Jika Anda benar-benar tertarik bermain golf ini, mungkin lebih masuk akal untuk membuat SVG dengan tangan dengan beberapa elemen teks yang diatur ke warna yang tepat. Inilah titik awalnya: <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.
trlkly

8

C, 65 byte

i;main(c){for(;c="I Voted"[i++];printf("\33[3%dm%c",c&1?1:4,c));}

atau, lebih akurat:

i;main(c){for(i=90;c="\0.noitcele ym saw ti fi enod evah dluow I sseug I tuB .hsitirB ma I esuaceb ,etov ton did I"[i--];printf("\33[3%dm%c",c&1?1:4,c));}

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:

printf "\33[0m";

Jika ||berfungsi dalam C seperti halnya pada JavaScript ( x||y -> x?x:y), Anda dapat melakukannya c&1||4untuk menyimpan byte.
ETHproduk

1
@ETHproductions tidak bekerja seperti itu di C. Sementara ||dan && yang hubungan arus pendek, mereka selalu kembali 1 atau 0, terlepas dari nilai-nilai yang terlibat.
Dave

@ Pernah saya belajar sesuatu hari ini ...
cat

Ini tidak mengatur warna latar belakang. Selain itu, Anda bisa menggunakan karakter pelarian literal alih-alih \33menyimpan dua byte, jika itu tidak melanggar aturan.

@yellowantphil ini mengasumsikan latar belakang terminal default diatur ke putih (karena tantangan mengatakan itu hanya perlu dimungkinkan untuk memilikinya di latar belakang putih). Faktanya dalam OS X, terminal hitam-putih di luar kotak.
Dave

8

Node, 57 55 41 byte

console.log("q47;91mI  o eHHHHq94mV t d")

Ganti masing q- masing dengan byte literal 1Bdan Hdengan byte 08sebelum dijalankan.

Berikut tampilannya di emulator terminal ConEmu di komputer Windows saya (diperbesar):

masukkan deskripsi gambar di sini


Emulator terminal apa itu !?
kucing

1
@cat ConEmu: conemu.github.io
ETHproduksi

8

Python IDLE, 97 96 78 69 byte

Terima kasih kepada DrMcMoylex untuk mencukur beberapa byte!

EDIT: Mengetahui bahwa direct .write()lebih pendek 9 byte

Bukan jawaban yang tepat, lebih banyak penyalahgunaan tema standar. IDLE adalah IDE Python, dan kecuali itu disesuaikan, STDOUTberwarna biru, STDERRmerah, dan latar belakang putih. Jadi, kode berikut:

from sys import*
for i in'I Voted':[stdout,stderr][ord(i)%2].write(i)

Cetak ini:

masukkan deskripsi gambar di sini

Ini berfungsi karena ord(i)%2memeriksa paritas titik kode surat dan mencetaknya ke ERR/ OUTsesuai.


8

REBOL , 100 90 95 byte (-7 byte dengan REPL untuk 88)

REBOL[]view layout[style b tt blue white space 0 across b"I"red b b"V"b"o"red b"t"b"e"red b"d"]

Dalam REPL, REBOL awal [] tidak diperlukan. Itu 7 byte.

Versi ungolfed adalah:

REBOL[]
view layout[
  ; by default, tt (text) has a grey background and a 2x2 padding
  style b tt blue white space 0
  ; this one doesn't appear in the golfed version as it's slightly shorter to just manually set red everywhere needed
  style r b red

  ; by default, vertical stack panel
  across
  r "I"
  r 
  b "V"
  r "o"
  b "t"
  r "e"
  b "d"
]

Di sebelah kiri, dengan "spasi 0x0" ditambahkan ke setiap blok teks, di sebelah kanan, dengan padding 2x2 default.

REBOL I Dipilih
(sumber: canardpc.com )


7

Perl, 57 + 17 = 74 byte

Jalankan dengan -MTerm::ANSIColor

sub c{color$a++%2?blue:red}say c,"I ",c,V,c,o,c,t,c,e,c,d

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: masukkan deskripsi gambar di sini


7

PHP, 199 201 151 byte

Script ini menampilkan gambar ke output standar. Diperbarui berkat manatwork

imagefill($i=imagecreatetruecolor(99,99),0,0,2**24-1);foreach([I,' ',V,o,t,e,d]as$k=>$e)imagestring($i,2,$k*9,0,$e,!$k|$k&1?0xFF0000:255);imagepng($i);

Jalankan di baris perintah seperti ini:

php -d error_reporting=0 -r "imagefill($i=imagecreatetruecolor(99,99),0,0,2**24-1);foreach([I,' ',V,o,t,e,d]as$k=>$e)imagestring($i,2,$k*9,0,$e,!$k|$k&1?0xFF0000:255);imagepng($i);" > output.png

Keluaran:

masukkan deskripsi gambar di sini


2
Lewati header()panggilan. Kode Anda berfungsi dengan baik dijalankan dari baris perintah juga. Karena error_reportingnilai 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.
manatwork

1
~2**24tampaknya berfungsi sebagai ganti 0xFFFFFF. Tidak yakin apakah ini berlaku untuk semua arsitektur. Jika tidak, 2**24-1harus portable.
manatwork

@manatwork luar biasa terima kasih. Itu turun ke 152. Saya mencoba ~2**24dan 2**24-1tetapi saya mendapat kesalahan. Saya bahkan tidak tahu cara kerjanya.
Kodos Johnson

Mungkin PHP Anda lebih lama dari 5.6.0: “Menambahkan operator eksponensial (**).” - PHP changelog . Sama seperti pow(), tetapi lebih mudah untuk bermain golf. pastebin.com/jFn6ahFk
manatwork

Oh begitu. Ya karena php 5.5 tampaknya tidak didukung, saya akan menggunakan solusi Anda. Sekarang sudah 150. Terima kasih lagi.
Kodos Johnson

7

Xamarin.Bentuk C #, 317 313 byte

using Xamarin.Forms;public class A:Application{public A(){var s=new StackLayout{BackgroundColor=Color.White,Orientation=(StackOrientation)1,VerticalOptions=LayoutOptions.End};foreach(var c in"I Voted")s.Children.Add(new Label{Text=c+"",TextColor=c%2<1?Color.Blue:Color.Red});MainPage=new ContentPage{Content=s};}}

VerticalOptions=LayoutOptions.Enddiperlukan 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

using Xamarin.Forms;
public class A : Application
{
    public A()
    {
        // Make a horizontal StackLayout for labels
        var s = new StackLayout
        {
            BackgroundColor = Color.White,
            Orientation = (StackOrientation)1,   // StackOrientation.Horizontal
            VerticalOptions = LayoutOptions.End
        };
        foreach(var c in "I Voted")
            // Make a new label for each letter, then add to StackLayout
            s.Children.Add(new Label
                {
                    // Cast char to string
                    Text = c + "",
                    // Happens that 'I', 'o', and 'e' are all odd in ASCII, and 'V', 't', and 'd' are all even :)
                    TextColor = c%2<1 ? Color.Blue : Color.Red   
                }
            );
        // Set app MainPage to be a new ContentPage, where the content is the StackLayout above
        MainPage = new ContentPage { Content = s };
    }
}

1
Itu ide baru. +1
Addison Crump

7

kode mesin x86 + DOS + BIOS, 25 byte

Hexdump:

b8 02 13 b1 07 bd 0b 01 cd 10 c3 49 74 20 74 56
71 6f 74 74 71 65 74 64 71

Kode assembly (cocok sebagai input debug.com, sehingga semua angka heksadesimal):

mov ax, 1302
mov cl, 7
mov bp, 10b
int 10
ret
db 'It tVqottqetdq'

Menggunakan rutin BIOS untuk menampilkan string ke memori tampilan. String akan muncul pada posisi "acak" di layar (lihat di bawah), seperti ini:

tangkapan layar

String berisi surat-surat I V o t e d, disisipkan dengan "atribut"

74 74 71 74 71 74 71

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 dxregister. 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 atas dx, disebutdh , sama dengan 8).

Setengah bagian bawah dx, disebut dl, berisi kolom di mana teks adalah output. Eksperimen menunjukkan bahwa BIOS tidak memeriksa overflow, jadi tidak masalah jika dxmeminta output pada misalnya kolom 100.


pintar, pendek, dan sangat intuitif.
tuskiomi
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.