Çık dışarı ve oy


114

Bugün 8 Kasım 2016, Amerika Birleşik Devletleri Seçim Günü .

Oy kullanmaya uygun bir ABD vatandaşıysanız, o zaman bu mücadeleye cevap vermeden önce çıkıp oy verin . Kime oy verdiğini tartışma. Sadece oy verdiğin önemli.

ABD vatandaşı değilseniz veya oy kullanmaya uygun değilseniz, bu zorluğa cevap vermeden önce, ABD'ye, uygun bir vatandaş olduğunu bildiğiniz bir kimseye çıkıp oy vermemişse oy kullanmasını söyleyerek bir iyilik yapın .

Meydan okuma

Dijital bir "Oy Verdim" etiketi gibi oy kullandığınızı belirten bir program yazın .

Makul bir şekilde ifadesini hiçbir giriş ve zorunluluk çıkışını almalı I Votednerede I, ove ekırmızı (vardır #FF0000) ve V, tve dmavidir ( #0000FF). Arka plan beyaz olmalı ( #FFFFFF).

Örneğin:

"Oy Verdim" örnek grafiği

Bu renkler elbette Amerikan bayrağını temsil ediyor ( resmi renkler olmasa da ). Kırmızı ilk önce gelir çünkü "kırmızı beyaz ve mavi" ortak deyiminde önce gelir.

Geçerli olabilmek için bir cevap aşağıdakileri içermelidir:

  • Belirtilen düzenlemede belirtilen renkleri kullanın.

  • Tek bir okunaklı font ve font boyutu kullanın. Örnek, 72pt Times New Roman kalın kullanıyor ancak 6pt üzerindeki herhangi bir ortak yazı tipi muhtemelen iyi.

  • Sadece ifadesini var I Votedbir üzerinde tek bir satır , iki kelime arasında açık bir boşluk, doğru büyüttük. Öyle görünmemeliydi IVoted.

  • Cevap veren kişinin cumhurbaşkanı veya herhangi bir aşağı oy yarışması için kime oy verdiğini veya desteklediğini belirtmeyin. İnternet tartışmalarına başlamayalım. Bu, adayları değil oylamayı kutlamakla ilgili.

Çıktıyı görüntülemek veya üretmek için makul olan herhangi bir yol, örneğin:

  • Metni daha sonra görüntülenen, kaydedilen veya yazdırılan bir görüntüye çizme.

  • Renk formatını kullanarak metni konsola yazma . Bu durumda, gerekirse saf kırmızı ve maviyi yaklaşık olarak görebilirsiniz ve yalnızca metnin arkasındaki alanın beyaz yapılabilmesi durumunda sorun yok.

  • Bir WPF / Windows formunda metin gösteriliyor.

  • Metin içeren bir HTML / RTF / PDF dosyası çıktısı alma.

Lütfen çıktınızın bir resmini gönderin.

Bayt cinsinden en kısa cevap kazanır.


29
Biraz hayal kırıklığına uğrattıysam çıkartma sana benzemiyor.
Geobits

39
“Sadece oy verdiğin önemli.” - @HelkaHomba ... Bu, "Bir kod yazdığın sürece, hangi kodu yazdığın önemli değil" demek gibi. : /
Michael Yaeger 14

41
@MichaelYaeger Eh, bazı kodları yazmak hiçbirini yazmaktan daha iyidir. Oy kullanmak oy kullanmamaktan iyidir. Muhtemelen insanlar, yapmayı seçerlerse, kodlama ve oy kullanma konusunda bazı düşünceler koyacaklardır. Ama gerçekten kızgın tartışmalardan kaçınmaya yardımcı olmak için söyledim.
Calvin'in Hobileri

43
Herhangi birine yardım ederse, ünlüler kırmızı, ünsüzler mavidir.
mbomb007

34
@ mbomb007 Ya da daha faydalı olarak, tek kod noktalarına sahip harfler kırmızı, çift kod kodlu harfler mavi renktedir.
Sp3000

Yanıtlar:


116

Minecraft Sohbeti (vanilya 1.10 istemcisi, 1.10 sunucusundaki tıkaç): 19 bayt

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

veya müşteriden:

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

Minecraft, bu renklerin programlandığı renk kodlama sistemini kullanır.

görüntü tanımını buraya girin

Kurallara dikkat et:

  • Renk formatını kullanarak metni konsola yazma. Bu durumda, gerekirse saf kırmızı ve maviyi yaklaşık olarak görebilirsiniz ve yalnızca metnin arkasındaki alanın beyaz yapılabilmesi durumunda sorun yok.

Bunların hepsi doğrudur:
kırmızı ve mavi ARE yaklaşımları (yine de çok benzer).
Minecraft sohbetindeki arka plan saydamdır, yani bunu beyaz bir arka plana koymak mümkündür. (boş bir dünya gibi)


10
Vay. Söyleyecek söz bulamıyorum. Bu çok akıllıca bir cevap!
DJMcMayhem

28
Minecraft Chat'in Turing tamamlandı veya bir programlama dili olarak kabul edildiğini sanmıyorum (bu artık bir gereklilik olmayabilir). Yine de çok yaratıcı! :)
Kade

9
@Shebang gaming.stackexchange.com/questions/20219/... soru :-) sorulduğunda Minecraft sohbet (neredeyse) komut blokları olarak hepsi aynı komutları ve kesinlikle arkasından bütün komutları vardır
tuskiomi

15
Teknik olarak, vanilya Minecraft, &s olmalıdır §ler
Oliver Ni

2
Hmmm Ben de Quake 3'te yapılabileceğini düşünüyorum
Sarge Borsch

107

C, 82 80 78 74 54 bayt

Her biri 2 byte tasarruf sağlayan @ WillihamTotland ve @criptych'e teşekkürler!

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

0xs'nin 0x1B bayt'ı temsil ettiği yerde (escape). Bu kod yazdırılamayan kontrol karakterleri içerdiğinden, geri dönüşümlü bir hexdump:

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");}

Telefonumdaki çıktı:


3
Bu hat tanımlar @KritixiLithos aolarak "\x1B[%dm"bir yer tutucu ile, boyama için bir ANSI çıkış sekansı olan. Bu sayıları printf()bu yer tutucuları doldurun.
16'da

1
İki bayt, bir ile değiştirilerek "\x1B[47;31m"ve b ile tanımlanarak "\x1B[34m", ardından putsalternatif ave bönekler kullanılarak tıraş edilebilir .
Williham Totland,

3
Başka bir 2 baytı "\ x1B" yerine "\ 33" ile kaydedebilirsiniz.
Criptych

1
Criptych’in söylediklerini genişletmek, buna izin verilip verilmediğini bilmiyorum ama bunun yerine değişmez bir kaçış karakteri kullanarak başka bir dört bayttan tasarruf edersiniz \33. C standardının bunun hakkında ne düşündüğünden emin değilim ...

3
Bu meta konuya göre @ paxdiablo , kod golf için işlevler tamam.
saat

73

Google Blockly , 10 14 blok, 28 41 35 maç

kod

görüntü tanımını buraya girin

Çıktı

görüntü tanımını buraya girin

Burada dene

hide turtleBloğu saymamak, çünkü sadece estetik.

Bir blyte, bir bloğun ve bir baytın birleşimidir, bunu saymak için henüz bir meta gönderisi yoktur, ancak daha sonra bir tane oluşturacağım. Şimdilik, şöyle sayıyorum:

  • I o e, 8 blyte
  • V t d, 10 blyte (burada 2 önde gelen alan)
  • Renkler, her biri 1 blyte, toplam 2
  • 90, 2 blyte
  • 999, 3 blyte
  • 0, 1 blyte
  • sağa dön, 2 blyte
  • ileri git, 2 blyte
  • normal bloklar, her biri 1 blyte, 5 toplam

Google Blockly nadiren golf oynamak için kullanıldığından ve bu zorluk için kutunun dışında beklemeyi düşünüyorum, bunun geçerli bir sunum olduğunu umuyorum.


20
Kayıt için bu geçerlidir. Benzersiz dilleri görmek güzel. Yine de, Google Blockly’de byte sayma konusunda meta bir fikir birliği olmadığı sürece, bir kazanan seçerken bunu görmezden gelebilirim.
Calvin'in Hobileri

2
Tartışmayı burada ilgili bulabilirsiniz . CC @HelkaHomba.
Scimonster

Bu üç boşluğu I oiki boşlukla değiştirmeyi düşündün mü ?
Andrea Lazzarotto 11:16

Google Blockly, JavaScript’e çevrilecek ve ardından çalıştırılacak. Inspect ElementGerçek JavaScript kodunu almak için Blockly API'sinde kod çalıştırmanız gerekir .

1
Bekle, Scratch kullanılabilir mi?
Adamawesome4

47

HTML, 52 bayt

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

2
Ayrıca, bence #FF0000- - #F00ve #0000FF-> #00Fişler
Conor O'Brien,

46
Neden bunu bir Yığın Parçacığına dönüştürmüyorsun?
Neil

3
<r>I <c>V<r>o<c>t<r>e<c>d<style>r{color:red}c{color:blueçalışır
ASCII-sadece

7
aslında sadece kapanmadan yuvalamaya devam edebilir I <c>V<e>o<c>t<e>e<c>d<style>*{color:red}c{color:0ffve 0ff

2
Ne yazık ki mevcut sürüm bir Stack Snippet gibi görünmüyor, benim için çalışan en son sürüm c{color:blue}sürüm.
Neil

39

LaTeX, 147 126 bayt

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

@ AndreïKostyrka sayesinde 21 byte kurtarıldı ve daha iyi karakter aralığı elde edildi.

Bu, ilk satırda bununla birlikte bir a4 sayfası yazdırır (bunun aynı zamanda en altta 1. sayfayı de yazdığını unutmayın):

görüntü tanımını buraya girin


13
LaTeX'in daha sevimli olanı dizginleyeceğini düşünürdüm Vo... Ama görünüşe göre renkler yüzünden her bir harfi ayrı ayrı ele alıyor.
Sanchises,

@ sanchises Her harf ayrı bir komutta olduğundan, uygun karakter aralığını imha ettiğini düşünüyorum.
16'da

Evet kesinlikle. Golf oynamak bir şart olmasa da bir şekilde mümkün olacağından eminim.
Sanchises,

@ sanchises bu kesinlikle mümkün , ama bu gerçekten bu çirkin çözümden daha uzundur.
16'da

\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}21 bayt kaydeder ve 126 bayt saf tipografik güzelliğe yol açar.
Andreï Kostyrka

34

Windows 10 Toplu İş, 51 50 bayt

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

Burada AN ANSI Escape 0x1B karakterini temsil eder. Renk formatını kullanarak çıktı verir. Düzenleme: @ brianush1 sayesinde 1 bayt kaydedildi. Bunu oluşturmak için kod yazmayı denedim, ancak 97 bayt aldı. Çıktı:

oy verdim


1
Eğer kullanırsanız 1 bayt golf yapabilirsiniz @color fc&echo I...
brianush1

1
ilginç, Windows terminali destekli ANSI kaçış dizilerinin farkında değildim
Mark K Cowan

3
@MarkKCowan Sadece Windows 10 ve Redstone Güncellemesi'nden (sanırım!) Yazı yayınladı. Sadece XP kurmamı engelleyen birkaç şeyden biri.
wizzwizz4

@ wizzwizz4 ConEmu bunları da destekliyor :) Gerçekten de bu, Windows 10 yıldönümünden (yani redstone 1)
Asu

@Asu Üzerine XP yükledim.
wizzwizz4

28

JavaScript, 71 bayt

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

Kullanımını yapar console.logrenkte yazdırmak için 'ın yeteneği. Bir yığın pasajında ​​çalışmadığından, bu cevabı test etmek için konsola yapıştırmanız gerekir.

görüntü tanımını buraya girin

@Mast için resim kredisi


Bu tam olarak yeni geldiğim şeydi, haha. En kısa alternatif olacağını düşünüyorumconsole.log([...' I Voted'].join`%c`,r='color:red',r,b='color:blue',r,b,r,b)
ETHproductions

Node.js'de de çalışmıyor. :(
Jordan

Bunun gerçekten işe yaramasına şaşırdım, ama işe yarıyor .
Mast

23

R, 113 85 81 74 73 55 bayt

Düzenleme: @rturnbull ve @JDL sayesinde bir demet bayt kaydedildi

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

Çıktının boyutu (ve aralık vb.), O anda açık olan grafik cihazının çözünürlüğüne bağlıdır. Monitörümde RGui ve RStudio'da test edildi ve üretti:

görüntü tanımını buraya girin


4
Oh, daha önce hiç görmedim el(). Daha fazla öğrenmeme yardım ettiğin için teşekkürler R! Yana textvectorized, görebilmek için-döngü atlayıp sadece yazabilirsiniz: text(seq(.3,.6,.05),.5,s,col=c("red","blue")). (Boşluk biraz daha az olsa da, x konumlarınızı golfçü kodu için değiştirdim.)
rturnbull

1
Ayrıca, kısmi tartışma eşleştirme sayesinde co=yerine kullanabilirsiniz col=. Ve son olarak, 6:12*.05birkaç bayttan daha kısa seq(.3,.6,.05).
rturnbull

1
İyi yakalama! Ve şimdi bunun 6:12/20elbette 1 bayt daha kısa olduğunu 6:12*.05, sizi yoldan çıkarıp alt-düzenlemeleri önerdiğiniz için özür dilerim.
rturnbull

1
Renkler kapalı değil mi? "Ben" ve "V" farklı renkler olmamalı mı?
JDL,

2
el()Önceki tüm strsplitcevapların % 99'unu 1 bayt artırdığından eminim .
Vlo

21

LÖVE , 152 142 136 bayt

Küçük bir prototip dili için biraz löve gösterelim! Golf oynamak için mükemmel değil (hadi, LUA tabanlı) ama yazmak kolaydır.

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

Ekran görüntüsü:

ekran görüntüsü


Tamamen ungolfed versiyonu:

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
Java'dan başka bir şey kullandığını biliyorum.
AdmBorkBork

5
Çok fazla 255… Onlar için bir değişken?
Manatwork

1
@ ConorO'Brien Bu tam bir programdır. love.draw()çizme adımında çalışan, geçersiz kıldığınız yerleşik bir işlevdir. Oluşturma döngüsünün çeşitli kısımları için love.update()ve benzeri şeyler de vardır love.load(), ancak isteğe bağlıdırlar. Güzel bir dil ve çok kolay bir şekilde başlayabilirsiniz . Bazen oyun fikirlerini prototip yapmak için kullanırım.
Geobits,

2
@ cat Onlar sadece değil. Onları bir konsolda üst baskı yapıyorum, grafiksel bir baskı. Yani burada bir boşluk sadece "bu alanda arka plan boya" değil, "bu alanda hiçbir şey boyamak" dır.
Geobits

2
@ ZoltánSchmidt Teşekkürler! Orada birkaç diğer seviyorum cevaplar onlara bir göz atın isterseniz: D
Geobits

18

Sıcak Çorba İşlemcisi , 48 bayt

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

Ungolfed versiyonu:

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

Eğer mes(mesajın) HSP'nin olduğunu unutursanız echo, bunun oldukça okunaklı olduğunu düşünüyorum.

Tuhaf bir şekilde, yapmaya çalışırsanız posveya pos,, mavi çizgi kırmızı çizginin üzerine yazmaz ve altında belirir. Daha da tuhaf, colorsadece değer almak içindir 0-255, ama 0,0,-1mavi 0,-1,0için çalışır, yeşil -1,0,0için çalışır ve siyah için çalışır. ( -257,0,0ve 511,0,0yine de kırmızı için çalışın, yani mod 256'nın gidişatı konusunda korkak olan bir şey var)

görüntü tanımını buraya girin


Neden ikinci meskısımdaki boşluklar ilkin üzerine yazmıyor?
kedi,

@ cat Spaces aslında hiçbir şey çizmez, sadece imleç pozisyonunu bir anlamda
ilerletir

1
255 için -1 kullanarak zeki yapın. +1
Cyoce

@Cyoce Veya belki de aslında -255?
sagiksp

18

MATLAB, 74 bayt

imshowBir dizi kullanarak beyaz bir 50x50 (her durum için bir sütun) arka plan oluştururuz ones. Daha sonra renkleri almak için kısaltma özelliği adlarını kullanarak bir metin görüntüleriz . Varsayılan yazı tipi sabit genişlik olmadığından, metin boşluklarla doldurulur.

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

görüntü tanımını buraya girin

MATLAB, 99 bayt, sabit genişlikte yazı tipi

İlk sürüm, varsayılan yazı tipinde uygun bir karakter aralığı elde etmek için boşluk ve koordinatlarla oynaşmayı kullanır ve bilgisayarınızda düzgün görüntülenmeyebilir. Bunun yerine, gibi bir sabit genişlikli yazı tipi kullanabiliriz Courier(veya, FixedWidthsabit genişlikli yazı tipinin kurulu olduğu herhangi bir sistemde çalışan daha fazla bayt için ). Bu oldukça fazladan bir kaç bayt pahasına geliyor. forMetni yazdırmak için bir döngü kullanarak bunu hafifçe azaltabiliriz . Metin ve karşılık gelen renkler, bir hücre dizisinde saklanır. Arka plan biraz daha büyük olmalı.

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

görüntü tanımını buraya girin

Matlab, 80 byte bonus sürümü

Ne yazık ki, altı çizili mavi metne izin verilmiyor. Aksi takdirde, bu cevap MATLAB'da bazı ilginç davranışlara dikkat çekerdi. Kullanarak kırmızı metin yazdırabilir fprintf(2,txt)ve ile mavi altı çizili metni yazdırabilirsiniz fprintf('<a href="">txt</a>'). Bu işleri birleştirmek ... bazen. Tamamen rastgele , kırmızı altı çizili metin de oluşturabilir. Sisteminizde durum buysa, drawnowardışık fçağrılar arasında sorun olabilir .

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

görüntü tanımını buraya girin


Bunun <a href>yerine yazabilirsiniz <a href="">. Eğer beğenmediysen, kullanabilirsin <a href=#>.
Ismael Miguel,

@IsmaelMiguel Zeki. <a>işe yaramadı.
Sanchises

Sadece kullanma <a>, tıklanabilir bir bağlantı olarak kabul edilmez. mavi rengini almak için, bir olarak kabul edilmesi gerekir. CSS'de, seçici olabilir a[href]. Özellik hreforada olduğu sürece , tıklanabilir bir bağlantıdır. Bu yüzden sadece kullanmak <a>işe yaramaz.
Ismael Miguel

18

ImageMagick, 102 bayt

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

Ungolfed:

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

görüntü tanımını buraya girin

ImageMagick komutunun tamamı, aşağıdakilerden oluşuyor:

  • açıkça varsayılan convertyardımcı programı çağırmıyor

  • xc:yerine kullanmak canvas:( xc:eski bir eş anlamlıdır canvas:; ImageMagick'in bunu ortadan kaldıracağını tahmin etmiyorum)

  • tuval rengini belirtmemekle birlikte, ImageMagick'in varsayılan değerine bağlı

  • 60geometriden genişliği kaldırma (ihmal edildiğinde, width == height)

  • "!" kaldırılıyor sadece kare olmayan bir kanvas üretmek için gereken geometriden,canvas:white[60x30!]

  • eski dosya x:yerine show:çıktı dosyası kullanmak (ImageMagick'in Xdesteğiyle oluşturulduğunu varsayar )

  • Metin dizelerini hizalamak için kullandığım bazı boşlukları kaldırmak

  • komutun çoklu satırlarına katılmak (satırlar arasında ters eğik çizgi-CR kaldırıldı)

Seçimden sonra çok meyilli iseniz -rotate 180, show:yönergeden önceki 12 byte'ı ekleyin :

görüntü tanımını buraya girin


4
Ununged versiyonunun golf oyunundan çok farklı olduğunu seviyorum.
Andreï Kostyrka 11:16

15

Bash, 35 bayt

Senaryom böyle gözüküyor

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

komut dosyasının xxd'si:

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

Yazma: ctrl-v-esc ve ctrl-vh, çıkışları ve geri alanları (^ [ve ^ H) ekleyecektir.

görüntü tanımını buraya girin


Bu nasıl çalışıyor? Bir açıklama süper olurdu
kedi

2
@ cat tüm kırmızı harfleri yazıyor (stand-up olarak "h" ve "p" ile), sonra rengi maviye ayarlar ve sonunda "d" yazar. Son olarak imleci sola hareket ettirir (önceki ekranda "t" ve "V" ekler) (yukarıdaki ekranda "^ H" ile gösterilen ascii 0x08, 1 karakter sola gider). Renk değişimleri için çok sayıda kaçış dizisinden kaçınmanın akıllı yolu. Aynı zamanda, benimki gibi benzer cevaplara kıyasla biraz yer kazandıran değişmez bir kaçış karakteri (0x1B, "^ [" olarak temsil edilir) kullanır.
Dave

Ayrıca: terminalin varsayılan olarak beyaz bir arka plana ayarlandığını varsayarak 3 byte tasarruf sağlayabilir (diğer birçok terminal cevabı bunu zaten varsayar).
Dave,

İki alıntıyı kaldırarak ve noktalı virgülden önce bir ters eğik çizgi (çıkış karakteri) ekleyerek bir bayt kaydedebilirsiniz. Ayrıca betiğinizde küçük bir harf v var (bir tane komut satırınız iyi).


14

Java, 322 319 318 309 304 229 217 bayt

-9 byte kevin sayesinde.
-75 Angzuril sayesinde bayt, eski awt sınıflarında güzel bir belirtme çizgisi var, daima var olanları unut.
-12 Kullanıcısı sayesinde bayt 902383.

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);}};}

Çıktı:

görüntü tanımını buraya girin


1
JFrame j=golf edilebilir Frame j=; (c==' '||i++%2==0)?golf oynayabilir c<33|i++%2<1?ve truegolf oynayabilir 1>0. Ayrıca, @HelkaHomba, bu geçerli bir çıktı mı? Ayrıca arasında boşluklar var V o t e d? Oh ve neden 0,0,999,99? 0,0,99,99Ekranımdaki metin için yeterince büyük.
Kevin Cruijssen,

1
(c<33||i++%2<1)?hala parantezi ve değişim kaldırarak üç bayt tarafından golfed edilebilir ||için|
Kevin Cruijssen

1
Ben golf için biraz daha fazla şeyler bulduk: new JComponentiçin new Container(-1); kaldırmak char c="IVoted".charAt(i);ve değiştirmek g.drawString(c+""için g.drawString("IVoted".charAt(i)+""(-8).
Kevin Cruijssen

1
İlk gelişme, değiştirmek Frame j=new JFrame();j.add(new JComponent()için Frame j=new Frame();j.add(new Container()ve ayrıca ithalat bırakın import javax.swing.*;ve g.setColor(Color.WHITE);g.fillRect(0,0,99,99)sonucu (-63) olarak
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);}};}12 byte azaltabilmenizi sağlar
user902383

13

Bubblegum, 28 bayt

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

görüntü tanımını buraya girin

Renklendirme için ANSI renk kodlarını kullandığından çevrimiçi çalışmaz.


Bu basit bir kodlama mı, yoksa başka bir akıllı numara mı kullanıyor?
Conor O'Brien,

2
@ ConorO'Brien Bubblegum'da akıllıca numaralar diye bir şey yoktur. Dürüst olmak gerekirse, bu cevap çoğunlukla üzerinde çalıştığım asıl cevabın bir yan etkisi oldu.
Bir spaghetto

13

PowerShell v2 +, 71 59 57 55 bayt

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

Sayesinde iki bayt Kaydedilen @flashbang ... iki tane daha teşekkür kurtardı @ConnorLSW

Alır "I Voted"ve bir haline döner char-array ardından döngüler |%{...}. Her harf, biz yürütmek Write-Hostile -bkarşı ackground renk White, -noNewLine ve -foreground rengi olmaya uygun indeksi . Bu, tek ASCII değerlerinin Kırmızı, ASCII değerlerinin bile $_%2endeks olarak Mavi olduğu gerçeğini güçlendirir .

PowerShell'deki konsol renkleri çok sınırlıdır, bu yüzden alabileceğim en yakın yaklaşım bu. Kırmızı için 4( DarkRed) kullanmak golfçü olurdu , ama doğru görünmüyor, bu yüzden renk doğruluğu uğruna bir kaç bayt feda ediyorum.

Aşağıda çıktı, ardından konsolda görüntüleyebilecek 16 renk bulunur. Arka planın gerçekten beyaz olmadığına dikkat edin , çünkü Microsoft kendi bilgeliği ile arka plan renklerinin ön plan renklerinden hiç bu kadar hafif olmamasını tercih etti.

Konsol Çıkışı


IIRC, eski şeylerde, ön plan için 4 bit ve arka plan için 3 bit vardı, böylece arka planlar yalnızca 0-7 koyu renklerdir. Konsol hala bunu takip ediyor mu?

@Hurkyl Kinda. EGA renk paletine dayanıyor gibi görünüyor , ancak PowerShell'in bu planı tutmasının tarihsel nedenlerinden emin değilim. Muhtemelen Win32 API'ye gömülü bir şey geriye dönük uyumlulukla onları sadece bu 16 rengi kullanmaya zorladı.
AdmBorkBork,

Arka plan rengini 15 olarak ayarlarsanız işe yaramaz mı?
Random832

@ Random832, etiketin beyaz arka planının iyiliği içindir.
geisterfurz007

@ geisterfurz007, TimmyD, arkaplanı "beyaz" yerine "15" olarak ayarlayıp ayarlayamayacağınızı soruyordum, çünkü resminizdeki asıl arka plan daha parlak bir beyaz almak için # 7 gibi görünüyor. Ancak, daha fazla incelemekle birlikte, tüm ekranınız garip görünüyor - örneğinizdeki çizgiler ile "I" ve sonraki boşluk arasındaki gri çizgi arasındaki sınır, PowerShell konsolda çalıştırılıyorsa, bir anlam ifade etmiyor. ConEmu gibi başka bir araç? Eğer öyleyse, bunun için Microsoft'u suçlamak mantıklı değil.
Random832

11

Python, 91 bayt + termcolor

Kazanmayacak, ama eğlence için gönderdi.

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

Kredinin yarısı Sp3000'e gidiyor.


2
ANSI kodlarını kullanmak daha kısa olmalıdır
TuxCrafting

@TùxCräftîñg Tüm platformlarda, yani Windows'ta desteklenmez.
Kade

3
Bir resim eklemek ister misiniz?
Calvin'in Hobileri

9
Sen değiştirerek 5 bayt kaydedebilirsiniz 'blue' if c else 'red'için 'brleude'[c^1::2].
Kade

2
Standart bir modül olmadığından muhtemelen + termcolor başlığına yazmalısınız. Ayrıca:from termcolor import*\nfor c in'I Voted':cprint(c,'brleude'[ord(c)%2::2],'on_white',end='')
Sp3000

8

Jolf, 53 bayt

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

Yazdırılamaz. Burada dene!

Jolf'un çıktısı HTML yetenekli. Rengi kararlaştırmak için modül 2 gibi zekice bir şey yapmaya çalıştım, fakat bu sadece daha uzun süre dayandı (yaklaşık 69 bayt). Yani, çıktı HTML'dir.

Çıktı:

Düzenli "Ben Oy Verdim"

(daha büyük sürüm)

büyük "Ben Oy Verdim"


8
Bu, HTML üzerinden yalnızca üç bayt kaydettiğinizde korkunç: P
ASCII-yalnızca

@EriktheGolfer Gerçekten sadece firefox'ta çalışıyor.
Conor O'Brien,

@ ConorO'Brien Oh, Chrome kullanıyorum. Teşekkürler.
Outgolfer Erik,

1
... ve HTML cevabı bunu aştı.
08

Can blueolarak yazılabilir 00f?
Ismael Miguel


8

sh, 61 49 bayt

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

Bu yazdırılamayan şeyler içerdiğinden, geri dönüşümlü bir xxd hexdump:

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

-12 bayt için 4198 (el işi) sayesinde.


Arka plan ve ön plan renklerini neden ayrı ayrı ayarlıyorsunuz? Başla [47;31;1m. Ve 1kalın 0harf a'ya kadar devam eder , bu yüzden her harf için tekrar tekrar ayarlamaya gerek yoktur.
Manatwork

@ manatwork Oh tanrım, yeniden ayarlamanız gerektiğini düşündüm!
Outgolfer Erik,

O takdirde sheski Bourne kabuğu daha modern bir şey, bazı parametre genişletme yardımcı olabilir: s=":1;47;1mI :4mV:1mo:4mt:1me:4md";echo ${s//:/^[[3}.
Manatwork

@ manatwork çalışmıyor. Görünüşe göre daha modern değil.
Outgolfer Erik,

@manworkwork ksh93 ${VAR/FROM/TO}, bash veya zsh gerektiriyor, sadece “eski Bourne kabuğundan daha modern bir şey” değil. POSIX, #ve %parametre genişletme değiştiricilerini gerektirir ancak istemez /…/veya:…:
Gilles

8

SVG + bzip2, 1807 bayt

Örnek görüntünün vektörleştirilmiş bir versiyonu, daha sonra bzip2 ile yaklaşık yarıya (4385 -> 1807 bayt) sıkıştırılmıştır. Buradan indirebilirsiniz . (doğrudan GitHub Sayfaları bağlantısı)

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��

Kazanmayacak, ama eğlence için gönderdi.


1
bzip2bir programlama dili değil.
Peter Taylor,

3
@PeterTaylor Meta kuralları uyarınca, bir programlama dili olmak zorunda değildir. ( meta.codegolf.stackexchange.com/a/10426/41088
noɥʇʎԀʎzɐɹƆ

1
xxddosyanın geri dönüşümlü bir mesaj yayınlamalıdır
cat

Daha da fazla sıkıştırma için brotli kullanmayı deneyin
Sarge Borsch

4
Bu konuyu gerçekten golf ile ilgileniyorsanız, SVG'yi yalnızca doğru renklere ayarlanmış birkaç metin öğesiyle elle oluşturmak daha mantıklı olacaktır. İşte bir başlangıç ​​noktası: <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>Bunun gerçekten yazdırılabilir alanın dışında oluşturduğunu ve arka plan renginin olmadığını unutmayın. Dediğim gibi, bu sadece bir başlangıç.
saat

8

C, 65 bayt

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

veya daha doğru bir şekilde:

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));}

Betseg tarafından kullanılan bash renk tekniğini kullanır, ancak hex yerine octal kaçış dizisi ile ve Sp3000'ün tüm tuhaf kod noktalarının kırmızı olduğuna dair gözlemiyle.

Terminali mavi olarak bırakır. Şununla sıfırla:

printf "\33[0m";

Eğer ||C eserler bu JavaScript yaptığı gibi ( x||y -> x?x:y), yapabileceğin c&1||4bir byte kaydedin.
ETHProductions,

1
@ETHproductions iken C. bu şekilde çalışmaz ||ve && vardır her zaman olsun söz konusu değerlerin 1 veya 0, dönmek, kısa devre.
Dave,

@Dave Bugün bir şey öğrendim ...
kedi

Bu arka plan rengini ayarlamaz. Ayrıca, bir \33şekilde kurallara aykırı değilse, iki bayt kaydetmek yerine gerçek bir kaçış karakteri kullanabilirsiniz .

Bu varsayılan terminali arka plan beyaz olarak ayarlanır varsayar @yellowantphil (meydan diyor zamandan beri sadece olması gerekiyor mümkünse beyaz zemin üzerinde olması). Aslında OS X’de, terminal siyah beyazdır ve kutusundan çıkarılmıştır.
Dave,

8

Düğüm, 57 55 41 bayt

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

Her değiştirin qedebi byte ile 1Bve Hbyte ile 08çalıştırmadan önce.

Windows bilgisayarımdaki ConEmu terminal emülatöründe nasıl göründüğü:

görüntü tanımını buraya girin


Bu hangi terminal emülatörü!
kedi


8

Python IDLE, 97 96 78 69 bayt

Bazı baytları tıraş ettiğiniz için DrMcMoylex'e teşekkürler!

EDIT: Direkt .write()9 bayt daha kısa olduğunu tespit

Gerçekten uygun bir cevap değil, standart bir temanın daha fazla kötüye kullanılması. IDLE, Python'un IDE'sidir ve özelleştirilmediği sürece STDOUTmavi, STDERRkırmızıdır ve arka plan beyazdır. Yani, aşağıdaki kod:

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

Bunu yazdırır:

görüntü tanımını buraya girin

Bunun nedeni çalışır ord(i)%2denetler Mektubun kod noktası ve baskıların paritesine bunun için ERR/ OUTbuna göre.


8

REBOL , 100 90 95 bayt (88 için REPL ile -7 bayt)

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"]

REPL'de, başlangıç REBOL [] gerekli değildir. Bu 7 bayt.

Ungolfed versiyonu:

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"
]

Solda, her metin bloğuna "boşluk 0x0" eklenmiş, sağda, varsayılan 2x2 dolgu ile.

REBOL Oy verildi
(kaynak: canardpc.com )


7

Perl, 57 + 17 = 74 bayt

İle koş -MTerm::ANSIColor

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

Terminaliniz sonunda mavi olabilir ( ,c("reset")normale döndürmek için kodun sonuna ekleyin ).

Varsayılan olarak, terminaller genellikle siyah arka planlıdır, ancak isteğe bağlı olarak beyaz olarak değiştirilebilir, ki bu şahsen aldatma olduğunu sanmıyorum.

Resimli: görüntü tanımını buraya girin


7

PHP, 199 201 151 bayt

Bu komut dosyası görüntüyü standart çıktıya verir. İnsan işi sayesinde güncellendi

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);

Komut satırında bu şekilde çalıştırın:

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

Çıktı:

görüntü tanımını buraya girin


2
header()Aramayı atla . Kodunuz da komut satırından iyi çalışır. Gibi error_reportingvarsayılan değeri değil bildirimlerini gösterir' ise, dize hazır alıntı için genel olarak kabul edilebilir. Veya hoşuna str_split("I Voted")gitmediyse, karakterleri ayrı ayrı sıralamaktan hala daha kısa. Ve ödevi $ i'ye ilk kullanımına getirin.
Manat çalışması

1
~2**24yerine iş gibi görünüyor 0xFFFFFF. Bunun tüm mimariler için geçerli olup olmadığından emin değilim. Değilse, 2**24-1taşınabilir olmalıdır.
Manatwork

@ manatwork harika teşekkürler. Bu 152'ye düşürdü. Denedim ~2**24ve 2**24-1hata yaptım. Bunların nasıl çalıştığını bile bilmiyorum.
Kodos Johnson

Muhtemelen PHP'niz 5.6.0'dan daha eskidir: “Bir üs işletmecisi eklendi (**).” - PHP değiştirildi . Aynı pow(), ancak golf oynamak için askı. pastebin.com/jFn6ahFk
manatwork

Ah anlıyorum. Php 5.5 desteklenmiyor gibi gözüküyorsa, çözümünüzü kullanacağım. Şimdi 150 oldu. Tekrar teşekkürler.
Kodos Johnson,

7

Xamarin. Formları C #, 317 313 bytes

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.EndiOS için gereklidir, aksi takdirde metin durum çubuğu tarafından kaplanır. Android'de sorun yok, bu yüzden virgül dahil 34 byte tasarruf edebilirsiniz.

Düzenleme: 2016-11-14: -4 bayt

Ungolfed

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
Bu yeni bir fikir. +1
Addison Crump,

7

x86 makine kodu + DOS + BIOS, 25 bayt

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

Montaj kodu (giriş için uygundur debug.com, bu nedenle tüm sayılar onaltılıktır):

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

Dizgiyi ekran belleğine vermek için bir BIOS rutini kullanır . Dize, ekranda "rastgele" bir konumda görünecektir (aşağıya bakınız), şöyle:

ekran görüntüsü

Dize, I V o t e d"nitelikler" ile harmanlanmış harfleri içerir.

74 74 71 74 71 74 71

Bu harflerin rengini belirten. Burada en önemli basamak olan 7, "beyaz arka plan" anlamına gelir ve en düşük basamak, ön plana işaret eder (1 = mavi; 4 = kırmızı).

Dizenin ekran konumu dxkayıt birimi tarafından belirlenir . Belirtildiği gibi burada , bu kayıt başlangıç değeri değerine eşittir cskayıt. Ve bunun değeri, DOS yüklendikten sonra bellekteki ilk kullanılabilir adres.

DOS'un boyutu genellikle 64 K'dan küçüktür, yani yüklenen kullanıcının programının segment adresi onaltılıktan küçüktür 1000. Böylece çıktı, ekrandaki ilk 16 satırın etrafında bir yerde görünecektir. Benim örneğimde, satır 8'de ortaya çıktı ( dxdenilen adın üst yarısı dh8'e eşittir).

dxÇağrılanın düşük yarısı dl, metnin çıktılandığı sütunu içerir. Deneyler, BIOS'un taşma durumunu kontrol etmediğini göstermektedir, bu nedenle dxörneğin 100 sütununda çıktı isterse farketmez .


zeki, kısa ve gerçekten sezgisel.
tuskiomi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.