Geh raus und stimme ab


114

Heute ist der 8. November 2016, der Wahltag in den Vereinigten Staaten von Amerika.

Wenn Sie ein wahlberechtigter US-Bürger sind, gehen Sie raus und wählen Sie, falls Sie dies noch nicht getan haben, bevor Sie diese Herausforderung annehmen. Besprechen Sie nicht, wen Sie gewählt haben. Es ist nur wichtig, dass Sie gewählt haben.

Wenn Sie kein US-Bürger sind oder nicht wahlberechtigt sind, tun Sie den USA einen Gefallen, bevor Sie diese Herausforderung annehmen, indem Sie allen Personen, die Sie kennen, mitteilen, wer ein berechtigter Bürger ist, auszugehen und abzustimmen, wenn dies noch nicht geschehen ist.

Herausforderung

Schreiben Sie ein Programm, das angibt, dass Sie gewählt haben, wie einen digitalen "I Voted" -Aufkleber .

Es sollte die Formulierung keinen Eingang und Ausgang muss in angemessener Weise erfolgen , I Votedwo die I, ound eist rot ( #FF0000) und V, tund dist blau ( #0000FF). Der Hintergrund muss weiß sein ( #FFFFFF).

Zum Beispiel:

Beispielgrafik "Ich habe gewählt"

Diese Farben sind natürlich repräsentativ für die amerikanische Flagge (obwohl nicht die offiziellen Farben ). Rot steht an erster Stelle, einfach weil es in der allgemeinen Redewendung "rot, weiß und blau" an erster Stelle steht.

Um gültig zu sein, muss eine Antwort:

  • Verwenden Sie die in der angegebenen Anordnung angegebenen Farben.

  • Verwenden Sie eine einzige lesbare Schriftart und Schriftgröße. In diesem Beispiel wird 72pt Times New Roman in Fettdruck verwendet, aber alle gängigen Schriftarten über 6pt sind wahrscheinlich in Ordnung.

  • Stellen Sie nur die Phrase I Votedin eine einzelne Zeile , die korrekt in Großbuchstaben geschrieben ist, und lassen Sie zwischen den beiden Wörtern ein Leerzeichen. Es sollte nicht so aussehen IVoted.

  • Geben Sie nicht an, für wen der Antwortende den Präsidenten oder ein Abstimmungsergebnis gewählt hat oder befürwortet. Beginnen wir keine Internetdebatten. Hier geht es darum, das Wählen zu feiern, nicht um Kandidaten.

Jede vernünftige Art, die Ausgabe anzuzeigen oder zu produzieren, ist gültig, wie zum Beispiel:

  • Zeichnen Sie den Text zu einem Bild, das dann angezeigt, gespeichert oder roh ausgegeben wird.

  • Schreiben des Texts in eine Konsole mit Farbformatierung . In diesem Fall können Sie bei Bedarf reine Rot- und Blautöne approximieren, und es ist in Ordnung, wenn nur der Bereich direkt hinter dem Text weiß gemacht werden kann.

  • Anzeigen des Texts in einem WPF / Windows-Formular.

  • Ausgabe einer HTML / RTF / PDF-Datei mit dem Text.

Bitte posten Sie ein Bild Ihrer Ausgabe.

Die kürzeste Antwort in Bytes gewinnt.


29
Ein bisschen enttäuscht, dass mein tatsächlicher Aufkleber nicht wie deiner aussieht.
Geobits

39
"Es ist nur wichtig, dass Sie gewählt haben." - @HelkaHomba ... Das ist so, als würde man sagen: "Es ist egal, welchen Code Sie schreiben, solange Sie Code geschrieben haben." : /
Michael Yaeger

41
@MichaelYaeger Nun, das Schreiben von Code ist besser als das Schreiben von none. Wählen ist besser als nicht wählen. Die Wahrscheinlichkeit ist groß, dass die Leute sich Gedanken über das Kodieren und Abstimmen machen, wenn sie sich dafür entscheiden. Aber das habe ich wirklich gesagt, um wütende Debatten zu vermeiden.
Calvins Hobbys

43
Wenn es jemandem hilft, sind Vokale rot, Konsonanten sind blau.
mbomb007

34
@ mbomb007 Sinnvollerweise sind die Buchstaben mit ungeraden Codepunkten rot und die Buchstaben mit geraden Codepunkten blau.
Sp3000,

Antworten:


116

Minecraft Chat (Vanilla 1.10-Client, Spigot 1.10-Server): 19 Byte

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

oder von der Kundenseite:

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

Minecraft verwendet ein Farbcodierungssystem mit diesen Farben.

Bildbeschreibung hier eingeben

Beachte die Regeln:

  • Schreiben des Texts in eine Konsole mit Farbformatierung. In diesem Fall können Sie bei Bedarf reine Rot- und Blautöne approximieren, und es ist in Ordnung, wenn nur der Bereich direkt hinter dem Text weiß gemacht werden kann.

All dies ist wahr, da:
die roten und blauen sind Näherungen (obwohl immer noch sehr ähnlich).
Der Hintergrund im Minecraft-Chat ist transparent, was bedeutet, dass dies auf einen weißen Hintergrund gestellt werden kann. (wie eine leere Welt)


10
Beeindruckend. Ich bin sprachlos. Das ist eine sehr clevere Antwort!
DJMcMayhem

28
Ich glaube nicht, dass Minecraft Chat vollständig ist oder als Programmiersprache angesehen wird (obwohl dies möglicherweise nicht mehr erforderlich ist). Sehr kreativ! :)
Kade

9
@Shebang gaming.stackexchange.com/questions/20219/… Minecraft Chat hat (fast) alle Befehle wie Befehlsblöcke, und sicherlich alle Befehle von damals, als die Frage gestellt wurde :-)
tuskiomi

15
Technisch gesehen &sollte das §s in Vanille Minecraft s sein
Oliver Ni

2
Hmmm, ich denke, es kann auch in Quake 3 gemacht werden
Sarge Borsch,

107

C 82 80 78 74 54 Bytes

Vielen Dank an @WillihamTotland und @criptych für das Speichern von jeweils 2 Bytes!

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

Wobei die ␛s 0x1B Bytes darstellen (Escape-Taste). Da dieser Code nicht druckbare Steuerzeichen enthält, ist hier ein umkehrbarer 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");}

Ausgabe auf meinem Handy:


3
@KritixiLithos Diese Zeile definiert aals "\x1B[%dm", was eine ANSI-Escape-Sequenz zum Färben ist, mit einem Platzhalter. Die Zahlen printf()füllen diese Platzhalter.
Betseg

1
Zwei Bytes können durch Ersetzen von a durch "\x1B[47;31m"und Definieren von b durch "\x1B[34m"und anschließendes Verwenden putsvon alternierenden aund bPräfixen abgeschnitten werden .
Williham Totland

3
Sie können weitere 2 Bytes mit "\ 33" anstelle von "\ x1B" speichern.
Kriptychon

1
Wenn Sie die Aussage des Criptychons erweitern, wissen Sie nicht, ob dies zulässig ist, aber Sie würden weitere vier Byte sparen, indem Sie stattdessen ein Escape-Zeichen verwenden \33. Ich

3
@paxdiablo Laut diesem Meta-Thread sind Funktionen für Code-Golf in Ordnung.
Betseg

73

Google Blockly , 10 14 Blöcke, 28 41 35 Blytes

Code

Bildbeschreibung hier eingeben

Ausgabe

Bildbeschreibung hier eingeben

Probieren Sie es hier aus

Den hide turtleBlock nicht mitzählen , weil es nur Ästhetik ist.

Ein Blyte ist eine Kombination aus einem Block und einem Byte. Es gibt noch keinen Meta-Post, um dies zu zählen, aber ich werde später einen erstellen. Im Moment zähle ich so:

  • I o e8 Blytes
  • V t d, 10 Blytes (2 führende Leerzeichen hier)
  • Farben, je 1 Blyte, insgesamt 2
  • 90, 2 Blytes
  • 999, 3 Blytes
  • 0,1 Blyte
  • Biegen Sie rechts ab, 2 Blytes
  • Gehe vorwärts, 2 Blytes
  • normale Blöcke, je 1 Blyte, insgesamt 5

Da Google Blockly nur selten zum Golfen verwendet wird und ich mir überlegt habe, diese Herausforderung nicht in Kauf zu nehmen, hoffe ich, dass dies ein gültiger Beitrag ist.


20
Für den Datensatz ist dies gültig. Es ist schön, einzigartige Sprachen zu sehen. Wenn es in Google Blockly keine Metakonferenz zur Bytezählung gibt, kann ich sie bei der Auswahl eines Gewinners ignorieren.
Calvins Hobbys

2
Sie können Diskussionen finden hier relevant. CC @HelkaHomba.
Scimonster

Haben Sie schon darüber nachgedacht, diese drei Leerzeichen I odurch zwei Leerzeichen zu ersetzen ?
Andrea Lazzarotto

Google Blockly wird in JavaScript übersetzt und dann ausgeführt. Sie müssen Inspect ElementCode in Blockly API ausführen, um den tatsächlichen JavaScript-Code zu erhalten.

1
Warten Sie, damit Scratch verwendet werden kann.
Adamawesome4

47

HTML, 52 Bytes

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

2
Außerdem denke ich, dass #FF0000-> #F00und #0000FF-> #00Ffunktioniert
Conor O'Brien

46
Warum verwandeln Sie dies nicht in ein Stack-Snippet?
Neil

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

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

2
Leider scheint die aktuelle Version nicht als Stack-Snippet zu funktionieren, die neueste Version, die für mich funktioniert, ist die c{color:blue}Version.
Neil

39

LaTeX, 147 126 Bytes

\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 Bytes gespart und dank @ AndreïKostyrka ein besseres Kerning erhalten.

Dies druckt eine a4-Seite mit dieser in der ersten Zeile (beachte, dass dies auch Seite 1 unten druckt):

Bildbeschreibung hier eingeben


13
Ich hätte gedacht, LaTeX würde den VoKerning hübscher setzen ... Aber anscheinend wird jeder Buchstabe aufgrund der Farben separat betrachtet.
Sanchises

@sanchises Da sich jeder Buchstabe in einem separaten Befehl befindet, zerstört er meines Erachtens das korrekte Kerning.
Fatalize

Ja genau. Obwohl ich mir sicher bin, dass es irgendwie möglich wäre, wenn Golfen keine Voraussetzung wäre.
Sanchises

@sanchises das ist definitiv möglich , aber das ist in der Tat länger als diese hässliche Lösung.
Fatalize

\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}Spart 21 Bytes und ergibt 126 Bytes von typografischer Schönheit.
Andreï Kostyrka

34

Windows 10 Batch, 51 50 Bytes

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

Wobei ␛ das ANSI Escape 0x1B-Zeichen darstellt. Ausgaben mit Farbformatierung. Bearbeiten: 1 Byte dank @ brianush1 gespeichert. Ich habe versucht, den Code zu schreiben, um dies zu generieren, aber es hat 97 Bytes gedauert. Ausgabe:

ich wählte


1
Sie können 1 Byte Golf spielen, wenn Sie @color fc&echo I...
brianush1

1
Interessanterweise wusste ich nicht, dass das Windows-Terminal ANSI-Escape-Sequenzen unterstützt
Mark K Cowan

3
@MarkKCowan Es ist nur Windows 10 und (glaube ich!) Nach dem Redstone-Update. Es ist eines der wenigen Dinge, die mich davon abhalten, nur XP darüber zu installieren.
wizzwizz4

@ wizzwizz4 ConEmu unterstützt diese auch :) In der Tat ist dies von Windows 10 Jubiläum (dh Redstone 1)
Asu

@Asu Ich habe XP drüber installiert.
wizzwizz4

28

JavaScript, 71 Bytes

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

Nutzt die console.logMöglichkeit, in Farbe zu drucken. Funktioniert nicht in einem Stack-Snippet, daher sollten Sie diese Antwort in die Konsole einfügen, um sie zu testen.

Bildbeschreibung hier eingeben

Bildnachweis an @Mast


Genau das habe ich mir gerade ausgedacht, haha. Ich denke, die kürzeste Alternative wäreconsole.log([...' I Voted'].join`%c`,r='color:red',r,b='color:blue',r,b,r,b)
ETHproductions

Funktioniert auch nicht in Node.js. :(
Jordan

Ich war überrascht, dass dies tatsächlich funktioniert, aber es funktioniert .
Mast

23

R 113 85 81 74 73 55 Bytes

Bearbeiten: Eine Menge Bytes dank @rturnbull und @JDL gespeichert

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

Die Größe der Ausgabe (und der Abstand usw.) hängt von der Auflösung des aktuell geöffneten Grafikgeräts ab. Getestet in RGui und RStudio auf meinem Monitor und produziert:

Bildbeschreibung hier eingeben


4
Oh, ich habe noch nie gesehen el(). Danke, dass du mir geholfen hast, mehr über R zu lernen! Da textvektorisiert ist, können Sie die for-Schleife überspringen und einfach schreiben: text(seq(.3,.6,.05),.5,s,col=c("red","blue")). (Ich habe Ihre x-Positionen geändert, um den Golf-Code zu verbessern, obwohl der Abstand möglicherweise etwas geringer ist.)
rturnbull

1
Dank der partiellen Argumentanpassung können Sie auch co=eher als verwenden col=. Und schließlich 6:12*.05ist mehrere Bytes kürzer als seq(.3,.6,.05).
Turnbull

1
Guter Fang! Und jetzt merke ich, dass 6:12/20das natürlich 1 Byte kürzer ist als 6:12*.05, entschuldige mich, dass ich Sie in die Irre geführt und suboptimale Änderungen vorgeschlagen habe.
Turnbull

1
Sind die Farben nicht aus? Sollten "I" und "V" nicht unterschiedliche Farben haben?
JDL

2
Ich bin mir ziemlich sicher, dass sich el()99% aller vorherigen strsplitAntworten um 1 Byte verbessern .
Vlo

21

LÖVE , 152 142 136 Bytes

Lassen Sie uns ein wenig Löve für eine lustige kleine Prototyping-Sprache zeigen! Es ist nicht perfekt für die Aufgabe des Golfspiels (komm schon, es basiert auf LUA), aber es ist einfach zu schreiben.

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

Bildschirmfoto:

Bildschirmfoto


Völlig ungolfed version:

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
Ich glaube, Sie haben etwas anderes als Java verwendet.
AdmBorkBork

5
So viele 255… Eine Variable für sie?
Handarbeit

1
@ ConorO'Brien Dies ist ein volles Programm. love.draw()ist eine integrierte Funktion, die Sie überschreiben und die beim Zeichnen ausgeführt wird. Es gibt auch Dinge wie love.update()und love.load()für verschiedene Teile der Render-Schleife, aber sie sind optional. Es ist eine schöne Sprache, und Sie können sehr leicht damit anfangen . Ich benutze es manchmal, um Spielideen zu prototypisieren.
Geobits

2
@cat Sie tun es einfach nicht. Es ist nicht so, dass ich sie auf einer Konsole überdrucke, es ist ein grafischer Ausdruck. Ein Raum hier ist also nur "nichts in diesem Bereich malen", nicht "diesen Bereich hintergrundfarben malen".
Geobits

2
@ ZoltánSchmidt Danke! Es gibt noch ein paar andere LÖVE-Antworten , wenn Sie einen Blick darauf werfen möchten: D
Geobits

18

Hot Soup Prozessor , 48 Bytes

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

Die ungolfed Version ist:

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

Wenn Sie bedenken, dass mes(Nachricht) HSP ist echo, denke ich, dass dies ziemlich lesbar ist.

Merkwürdigerweise überschreibt die blaue Linie nicht die rote Linie und wird darunter angezeigt , wenn Sie dies versuchen posoder pos,. Noch seltsamer, colorsoll nur Werte aufnehmen 0-255, arbeitet aber 0,0,-1für Blau, 0,-1,0arbeitet für Grün und -1,0,0arbeitet für ... Schwarz? ( -257,0,0und 511,0,0arbeite zwar für Rot, also ist etwas komisch an dem Mod 256, der gerade läuft)

Bildbeschreibung hier eingeben


Warum mesüberschreiben die Leerzeichen im zweiten nicht das erste?
Katze

@cat Spaces zeichnet eigentlich nichts, es verschiebt nur die Cursorposition in gewisser Weise
Sp3000

1
Clever mit -1 für 255. Haben Sie eine +1
Cyoce

@Cyoce Oder vielleicht ist es tatsächlich -255?
Sagiksp

18

MATLAB, 74 Bytes

Wir erstellen einen weißen 50x50-Hintergrund (eine Spalte für jeden Status) imshowaus einem Array von ones. Wir zeigen dann einen Text an und verwenden dabei meinen Trick, Eigenschaftsnamen zu verkürzen , um die Farben zu erhalten. Da die Standardschriftart keine feste Breite hat, wird der Text mit Leerzeichen aufgefüllt.

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

Bildbeschreibung hier eingeben

MATLAB, 99 Bytes, Schriftart mit fester Breite

In der ersten Version wird mit Leerzeichen und Koordinaten gefummelt, um einen korrekten Kerning für die Standardschrift zu erhalten, der möglicherweise auf Ihrem Computer nicht richtig angezeigt wird. Stattdessen können wir eine Schriftart mit fester Breite verwenden Courier(oder für einige weitere Bytes, FixedWidthdie auf jedem System funktioniert, auf dem eine Schriftart mit fester Breite installiert ist). Dies kostet einige zusätzliche Bytes. Wir können dies leicht abschwächen, indem wir eine forSchleife zum Drucken des Texts verwenden. Der Text und die entsprechenden Farben werden in einem Zellenfeld gespeichert. Der Hintergrund muss etwas größer sein.

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

Bildbeschreibung hier eingeben

Matlab, 80 Bytes Bonus Edition

Unterstrichener blauer Text ist leider nicht erlaubt. Andernfalls hätte diese Antwort ein interessantes Verhalten in MATLAB hervorgehoben. Sie können roten Text mit fprintf(2,txt)und blauen unterstrichenen Text mit drucken fprintf('<a href="">txt</a>'). Dies zu kombinieren funktioniert ... manchmal. Völlig zufällig kann es auch zu rot unterstrichenem Text kommen. Sie können drawnowzwischen aufeinander folgenden fAufrufen eine Ausgabe durchführen, wenn dies auf Ihrem System der Fall ist.

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

Bildbeschreibung hier eingeben


Sie können <a href>anstelle von schreiben <a href="">. Wenn Sie es nicht mögen, können Sie verwenden <a href=#>.
Ismael Miguel

@IsmaelMiguel Clever. <a>hat nicht funktioniert.
Sanchises

Die Verwendung von only <a>wird nicht als anklickbarer Link angesehen. Um die blaue Farbe zu erhalten, muss sie als eine betrachtet werden. In CSS kann der Selektor sein a[href]. Solange das Attribut vorhanden hrefist, handelt es sich um einen anklickbaren Link. Das ist der Grund, warum die Verwendung von only <a>nicht funktioniert.
Ismael Miguel

18

ImageMagick, 102 Bytes

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:

Bildbeschreibung hier eingeben

Golfen bestand der gesamte ImageMagick-Befehl aus

  • nicht explizit den Standard - Aufruf - convertDienstprogramm

  • Verwenden xc:statt canvas:( xc:ist ein altes Synonym für canvas:; ich sehe nicht voraus, dass ImageMagick es jemals eliminiert)

  • keine Angabe der Leinwandfarbe, sondern Verwendung der Standardfarbe von ImageMagick, die zufällig weiß ist

  • Entfernen der Breite 60aus der Geometrie (wenn weggelassen, width == height)

  • entferne den "!" aus der Geometrie, die nur benötigt wird, um eine nicht quadratische Leinwand zu erzeugen, wiecanvas:white[60x30!]

  • Verwenden der älteren x:statt show:als Ausgabedatei (setzt voraus, dass ImageMagick mit XUnterstützung erstellt wurde)

  • Entfernen von Leerzeichen, mit denen ich die Textzeichenfolgen ausgerichtet hatte

  • Verbinden der mehreren Zeilen des Befehls (Backslash-CR zwischen den Zeilen wurde entfernt)

Wenn Sie nach der Wahl so geneigt sind, fügen Sie 12 Byte -rotate 180vor der show:Direktive hinzu:

Bildbeschreibung hier eingeben


4
Ich mag, wie sich die ungolfed Version drastisch von der golfed Version unterscheidet.
Andreï Kostyrka

15

Bash, 35 Bytes

Mein Skript sieht so aus

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

xxd der Skriptdatei:

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

Geben Sie Folgendes ein: ctrl-v-esc und ctrl-vh fügen die Escape- und Backspaces (^ [und ^ H) ein.

Bildbeschreibung hier eingeben


Wie funktioniert das? Eine Erklärung wäre super
cat

2
@cat scheint alle roten Buchstaben zu schreiben (mit "h" und "p" als Ersatzzeichen), setzt dann die Farbe auf blau und schreibt am Ende "d". Zum Schluss wird der Cursor nach links bewegt, um das "t" und "V" über den früheren Stand-Ins hinzuzufügen (ASCII 0x08, dargestellt durch "^ H" in der obigen Anzeige, wird um 1 Zeichen nach links verschoben). Clevere Methode, um viele Escape-Sequenzen für Farbänderungen zu vermeiden. Es wird auch ein Escape-Zeichen (0x1B, dargestellt als "^ [") verwendet, wodurch im Vergleich zu ähnlichen Antworten wie meinen Platz gespart wird.
Dave

Außerdem: Es können 3 Byte eingespart werden, wenn das Terminal standardmäßig auf einen weißen Hintergrund eingestellt ist (die meisten anderen Terminalantworten gehen bereits davon aus).
Dave

Sie können ein Byte speichern, indem Sie die beiden Anführungszeichen entfernen und einen Backslash (Escape-Zeichen) vor dem Semikolon einfügen. Auch Ihr Skript hat einen Kleinbuchstaben v (Ihre Befehlszeile ist in Ordnung).


14

Java, 322 319 318 309 304 229 217 Bytes

-9 Bytes dank Kevin.
-75 Bytes dank Angzuril, netter Hinweis auf die alten AWT-Klassen, vergiss immer, dass es solche gibt.
-12 Bytes dank 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);}};}

Ausgabe:

Bildbeschreibung hier eingeben


1
JFrame j=kann golfen werden Frame j=; (c==' '||i++%2==0)?kann golfen werden c<33|i++%2<1?und truekann golfen werden 1>0. Auch @HelkaHomba, ist dies eine gültige Ausgabe? Da es auch Leerzeichen zwischen den V o t e d? Oh und warum 0,0,999,99? 0,0,99,99ist groß genug für den Text auf meinem Bildschirm.
Kevin Cruijssen

1
(c<33||i++%2<1)?kann durch Entfernen der Klammer um drei Bytes erweitert werden und wechselt ||zu|
Kevin Cruijssen

1
Ich habe noch ein paar Dinge zum Golfen gefunden: new JComponentzu new Container(-1); entferne char c="IVoted".charAt(i);und wechsle g.drawString(c+""zu g.drawString("IVoted".charAt(i)+""(-8).
Kevin Cruijssen

1
Erste Verbesserung, ändern Frame j=new JFrame();j.add(new JComponent()zu , Frame j=new Frame();j.add(new Container()und Sie können auch den Import fallen import javax.swing.*;und g.setColor(Color.WHITE);g.fillRect(0,0,99,99)als Ergebnis (-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);}};}ermöglicht es Ihnen, um 12 Bytes zu reduzieren
user902383

13

Bubblegum, 28 Bytes

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

Bildbeschreibung hier eingeben

Funktioniert nicht online, da ANSI-Farbcodes zum Färben verwendet werden.


Handelt es sich um eine reine Codierung oder handelt es sich um einen anderen cleveren Trick?
Conor O'Brien

2
@ ConorO'Brien In Bubblegum gibt es keine cleveren Tricks. Um ehrlich zu sein, war diese Antwort größtenteils ein Nebeneffekt der tatsächlichen Antwort, an der ich arbeite.
ein Spaghetto

13

PowerShell v2 +, 71 59 57 55 Bytes

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

Dank @flashbang zwei Bytes gespart ... dank @ConnorLSW zwei weitere Bytes gespart

Nimmt "I Voted"und verwandelt es in ein char-array, dann Schleifen |%{...}. Jeder Buchstabe wird Write-Hostmit der -bHintergrundfarbe White, -noNewLine und der -fVordergrundfarbe als geeignetem Index ausgeführt . Dies nutzt die Tatsache, dass ungerade ASCII-Werte Rot sind, während gerade ASCII-Werte über $_%2als Index Blau sind .

Die Konsolenfarben in PowerShell sind sehr begrenzt, daher ist dies die beste Annäherung, die ich bekommen kann. Es wäre golfer, 4( DarkRed) für das Rot zu verwenden, aber es sieht nicht richtig aus, daher opfere ich ein paar Bytes, um die Farbgenauigkeit zu gewährleisten .

Unten ist die Ausgabe, gefolgt von den 16 verfügbaren Farben, die die Konsole anzeigen kann. Beachten Sie, dass der Hintergrund nicht wirklich weiß ist, da Microsoft seiner Meinung nach entschieden hat, dass die Hintergrundfarben etwas von den Vordergrundfarben abweichen.

Konsolenausgabe


IIRC, im Altertum hatten Sie 4 Bits für den Vordergrund und 3 Bits für den Hintergrund, so dass Hintergründe nur die "dunklen" Farben 0-7 sein konnten. Verfolgt die Konsole das noch?

@ Hurkyl Kinda. Es scheint auf der EGA-Farbpalette zu basieren , aber ich bin mir nicht sicher, aus welchen historischen Gründen PowerShell dieses Schema beibehält. Wahrscheinlich ist etwas in der Abwärtskompatibilität der Win32-API vergraben, das sie gezwungen hat, nur diese 16 Farben zu verwenden.
AdmBorkBork

Es funktioniert nicht, wenn Sie die Hintergrundfarbe auf 15 einstellen?
Random832

@ Random832 es ist wegen des weißen Hintergrundes des Aufklebers.
Geisterfurz007

@ geisterfurz007, TimmyD, ich habe gefragt, ob Sie den Hintergrund auf "15" anstatt auf "Weiß" setzen könnten [da der tatsächliche Hintergrund in Ihrem Bild # 7 zu sein scheint], um ein helleres Weiß zu erhalten. Bei genauerer Betrachtung sieht Ihr gesamtes Display jedoch seltsam aus - die Grenzen zwischen den Zeilen in Ihrem Beispiel und der grauen Linie zwischen "I" und dem folgenden Leerzeichen ergeben keinen Sinn, wenn PowerShell in der Konsole ausgeführt wird - verwenden Sie ein anderes Tool wie ConEmu? Wenn ja, ist es nicht sinnvoll, Microsoft dafür verantwortlich zu machen.
Random832

11

Python, 91 Bytes + termcolor

Ich werde nicht gewinnen, aber ich habe es aus Spaß gepostet.

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

Die Hälfte des Guthabens geht an Sp3000.


2
Die Verwendung von ANSI-Codes sollte kürzer sein
TuxCrafting

@ TùxCräftîñg Es wird nicht auf allen Plattformen, dh Windows, unterstützt.
Kade

3
Möchten Sie ein Bild hinzufügen?
Calvins Hobbys

9
Sie können durch Ändern 5 Bytes speichern 'blue' if c else 'red'zu 'brleude'[c^1::2].
Kade

2
Sie sollten wahrscheinlich + termcolor in den Titel einfügen, da es sich nicht um ein Standardmodul handelt. Auch:from termcolor import*\nfor c in'I Voted':cprint(c,'brleude'[ord(c)%2::2],'on_white',end='')
Sp3000

8

Jolf, 53 Bytes

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

Es gibt nicht druckbare Dateien. Probieren Sie es hier aus!

Jolfs Ausgabe ist HTML-fähig. Ich habe versucht, etwas Kluges wie Modul 2 zu tun, um die Farbe zu bestimmen, aber das ist nur länger (ungefähr 69 Bytes). Die Ausgabe erfolgt also in HTML.

Ausgabe:

regelmäßig "ich wählte"

(größere Version)

groß "I Voted"


8
Es ist schrecklich, dass Sie nur drei Bytes über HTML gespeichert haben: P
Nur ASCII

@EriktheGolfer Es funktioniert wirklich nur in Firefox.
Conor O'Brien

@ ConorO'Brien Oh, ich benutze Chrome. Vielen Dank.
Erik der Outgolfer

1
... und die HTML-Antwort hat dies übertroffen.
Betseg

Kann nicht blueals geschrieben werden 00f?
Ismael Miguel


8

sh, 61 49 Bytes

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

Da dies nicht druckbare Dateien enthält, gibt es hier einen umkehrbaren xxd-Hexdump:

00000000: 6563 686f 2022 1b5b 3437 3b33 313b 316d echo ". [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 "
Ich wählte
XTerm (322)

Danke an 4198 (manatwork) für -12 Bytes.


Warum die Hintergrund- und Vordergrundfarben getrennt einstellen? Beginnen Sie mit [47;31;1m. Und das 1für Fett bleibt bestehen, bis ein 0, so dass es nicht erforderlich ist, es für jeden Buchstaben erneut festzulegen.
Handarbeit

@manatwork Oh Gott, ich dachte du musst es neu einstellen!
Erik der Outgolfer

Wenn das shetwas moderner als die alte Bourne - Shell ist, können einige Parameter Expansion helfen: s=":1;47;1mI :4mV:1mo:4mt:1me:4md";echo ${s//:/^[[3}.
Handarbeit

@manatwork Es funktioniert nicht. Es scheint nicht moderner zu sein.
Erik der Outgolfer

@manatwork ${VAR/FROM/TO}erfordert ksh93, bash oder zsh, nicht nur "etwas Moderneres als die alte Bourne-Shell". POSIX erfordert die Parameter #und %Erweiterungsmodifizierer, aber nicht /…/oder:…:
Gilles

8

SVG + bzip2, 1807 Bytes

Eine vektorisierte Version des Beispielbildes, die dann mit bzip2 auf ungefähr die Hälfte komprimiert wurde (4385 -> 1807 Bytes). Sie können es hier herunterladen . (direkter GitHub Pages Link)

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

Ich werde nicht gewinnen, aber ich habe es aus Spaß gepostet.


1
bzip2ist keine Programmiersprache.
Peter Taylor

3
@PeterTaylor Nach Metaregeln muss es keine Programmiersprache sein. ( meta.codegolf.stackexchange.com/a/10426/41088
noɥʇʎԀʎzɥʇʎԀʎ

1
sollte ein Reversible xxdder Datei posten
cat

versuchen Sie es mit brotli für noch mehr Komprimierung
Sarge Borsch

4
Wenn Sie wirklich daran interessiert sind, Golf zu spielen, ist es wahrscheinlich sinnvoller, die SVG-Datei nur von Hand mit ein paar Textelementen zu erstellen, die auf die richtigen Farben eingestellt sind. Hier ist ein Ausgangspunkt: <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>Beachten Sie, dass dies tatsächlich außerhalb des bedruckbaren Bereichs gerendert wird und keine Hintergrundfarbe aufweist. Wie ich schon sagte, es ist nur ein Anfang.
trlkly

8

C 65 Bytes

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

oder genauer:

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

Verwendet die gleiche Bash-Farbtechnik wie bei Betseg, jedoch mit der oktalen Escape-Sequenz anstelle von Hex und mit der Beobachtung von Sp3000, dass alle ungeraden Codepunkte rot sind.

Verlässt das Terminal in Blau. Zurücksetzen mit:

printf "\33[0m";

Wenn ||in C wie in JavaScript ( x||y -> x?x:y) gearbeitet wird, können Sie c&1||4ein Byte speichern.
ETHproductions

1
@ETHproductions nicht , dass die Art und Weise in C arbeiten , während ||und && sind von Kurzschlüssen, sie 1 oder 0 immer wieder zurückkehren, und zwar unabhängig von den beteiligten Werten.
Dave

@ Dave Ich habe heute etwas gelernt ...
Katze

Hiermit wird die Hintergrundfarbe nicht festgelegt. Sie können auch ein Escape-Zeichen verwenden \33, um zwei Bytes zu speichern, wenn dies nicht gegen die Regeln verstößt.

@yellowantphil Dies setzt voraus, dass der Standardhintergrund des Terminals auf Weiß gesetzt ist (da die Herausforderung besagt, dass es nur möglich sein muss, ihn auf einem weißen Hintergrund zu haben). Tatsächlich ist das Terminal in OS X sofort ein Schwarz-Weiß-Terminal.
Dave

8

Knoten, 57 55 41 Bytes

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

Ersetzen Sie jedes qdurch das Literalbyte 1Bund Hdurch Byte, 08bevor Sie es ausführen.

So sieht es im ConEmu-Terminalemulator auf meinem Windows-Computer aus (vergrößert):

Bildbeschreibung hier eingeben


Was für ein Terminal-Emulator ist das?
Katze


8

Python IDLE, 97 96 78 69 Bytes

Dank an DrMcMoylex für das Abschneiden einiger Bytes!

EDIT: Herausgefunden, dass eine direkte .write()9 Bytes kürzer war

Keine richtige Antwort, mehr Missbrauch eines Standardthemas. IDLE ist die IDE von Python, und sofern sie nicht angepasst wurde, STDOUTist sie blau, STDERRrot und der Hintergrund weiß. Also der folgende Code:

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

Druckt dies:

Bildbeschreibung hier eingeben

Dies funktioniert, weil ord(i)%2die Parität des Codepunkts des Buchstabens überprüft und auf ERR/ OUTentsprechend gedruckt wird .


8

REBOL , 100 90 95 Bytes (-7 Bytes mit REPL für 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"]

In REPL ist das anfängliche REBOL [] nicht erforderlich. Das sind 7 Bytes.

Die ungolfed Version ist:

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

Links mit "Leerzeichen 0x0" zu jedem Textblock hinzugefügt, rechts mit dem standardmäßigen 2x2-Abstand.

Ich habe abgestimmt
(Quelle: canardpc.com )


7

Perl, 57 + 17 = 74 Bytes

Laufen Sie mit -MTerm::ANSIColor

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

Ihr Terminal ist möglicherweise am Ende blau (fügen Sie ,c("reset")am Ende des Codes hinzu, um den Normalzustand wiederherzustellen).

Standardmäßig haben Terminals normalerweise einen schwarzen Hintergrund, aber sie können optional in Weiß geändert werden, was ich persönlich nicht für Betrug halte.

Mit Bild: Bildbeschreibung hier eingeben


7

PHP, 199 201 151 Bytes

Dieses Skript gibt das Bild als Standardausgabe aus. Dank Handarbeit aktualisiert

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

Führen Sie es in der Befehlszeile wie folgt aus:

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

Ausgabe:

Bildbeschreibung hier eingeben


2
Überspringen Sie den header()Anruf. Ihr Code funktioniert einwandfrei von der Kommandozeile aus. Da error_reportingder Standardwert keine Hinweise anzeigt, ist es im Allgemeinen akzeptabel, Ihre Zeichenfolgenliterale nicht in Anführungszeichen zu setzen. Oder wenn dir das nicht gefällt, str_split("I Voted")ist das noch kürzer als die Aufzählung der Zeichen getrennt. Verschieben Sie die Zuweisung zu $ ​​i zur ersten Verwendung.
Manatwork

1
~2**24scheint zu funktionieren statt 0xFFFFFF. Ich bin nicht sicher, ob dies für alle Architekturen gilt. Wenn nicht, 2**24-1sollte tragbar sein.
Manatwork

@manatwork super danke. Das hat es bis zu 152. Ich habe versucht , ~2**24und , 2**24-1aber ich habe Fehler. Ich weiß nicht einmal, wie diese funktionieren.
Kodos Johnson

Wahrscheinlich ist Ihr PHP älter als 5.6.0: "Exponentiation Operator (**) hinzugefügt." - PHP Changelog . Gleich wie pow(), aber praktischer zum Golfen. pastebin.com/jFn6ahFk
Manatwork

Oh ich verstehe. Nun, da PHP 5.5 anscheinend nicht unterstützt wird, verwende ich Ihre Lösung. Jetzt sind es 150. Nochmals vielen Dank.
Kodos Johnson

7

Xamarin.Forms 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.Endwird für iOS benötigt, andernfalls wird der Text von der Statusleiste überlagert. Kein Problem für Android, so können 34 Bytes inklusive Komma gespart werden.

Edit: 2016-11-14: -4 Bytes

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
Das ist eine neue Idee. +1
Addison Crump

7

x86-Computercode + 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

Assembly-Code (als Eingabe für geeignet debug.com, sodass alle Zahlen hexadezimal sind):

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

Es verwendet eine BIOS-Routine, um die Zeichenfolge in den Anzeigespeicher auszugeben. Die Zeichenfolge wird an einer "zufälligen" Position auf dem Bildschirm angezeigt (siehe unten):

Bildschirmfoto

Die Zeichenfolge enthält die Buchstaben I V o t e d, die mit "Attributen" verschachtelt sind.

74 74 71 74 71 74 71

die die Farbe der Buchstaben angeben. Hier bedeutet 7 als höchstwertige Ziffer "weißer Hintergrund", und die niedrigstwertige Ziffer gibt den Vordergrund an (1 = blau; 4 = rot).

Die Anzeigeposition des Strings wird vom dxRegister vorgegeben . Wie hier erwähnt , ist der Anfangswert dieses Registers gleich dem Wert des csRegisters. Der Wert dieser Adresse ist die erste verfügbare Adresse im Speicher, nachdem DOS geladen wurde.

Die Größe von DOS ist normalerweise kleiner als 64 KB, dh, die Segmentadresse des geladenen Benutzerprogramms ist kleiner als hexadezimal 1000. Die Ausgabe erscheint also irgendwo in der Nähe der ersten 16 Textzeilen auf dem Display. In meinem Beispiel wurde es in Zeile 8 angezeigt (die obere Hälfte von dx, aufgerufen dh, ist gleich 8).

Die dxaufgerufene untere Hälfte von dlenthält die Spalte, in der der Text ausgegeben wird. Experimente zeigen, dass das BIOS den Überlauf nicht überprüft. Es spielt also keine Rolle, ob dxbeispielsweise in Spalte 100 eine Ausgabe angefordert wird.


clever, kurz und sehr intuitiv.
Tuskiomi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.