Nous sommes aujourd'hui le 8 novembre 2016, jour des élections aux États-Unis d'Amérique.
Si vous êtes un citoyen américain habilité à voter, sortez et votez si vous ne l'avez pas encore fait avant de répondre à ce défi. Ne discutez pas pour qui vous avez voté. Il importe seulement que vous ayez voté.
Si vous n'êtes pas citoyen américain ou si vous n'êtes pas éligible pour voter, alors, avant de répondre à ce défi, donnez-lui une faveur en disant à quiconque de votre connaissance qui est un citoyen éligible de voter et de voter s'il ne le fait pas déjà.
Défi
Ecrivez un programme qui indique que vous avez voté, comme un autocollant numérique "I Voted" .
Il ne devrait pas prendre d' entrée et de sortie doivent d'une manière raisonnable l'expression I Voted
où I
, o
et e
sont rouges ( #FF0000
) et V
, t
et d
sont bleus ( #0000FF
). Le fond doit être blanc ( #FFFFFF
).
Par exemple:
Ces couleurs sont bien sûr représentatives du drapeau américain (mais pas les couleurs officielles ). Le rouge vient en premier simplement parce qu'il vient en premier dans l'idiome commun "rouge blanc et bleu".
Pour être valide, une réponse doit:
Utilisez les couleurs spécifiées dans l'arrangement spécifié.
Utilisez une police et une taille de police simples et lisibles. L'exemple utilise des caractères gras Times New Roman 72 points, mais toute police courante supérieure à 6 points convient probablement.
Ayez juste la phrase
I Voted
sur une seule ligne , correctement mise en majuscule, avec un espace libre entre les deux mots. Cela ne devrait pas ressemblerIVoted
.N'indiquez pas qui le répondant a voté pour ou soutient la candidature du président ou des scrutins à vote négatif. Ne commençons aucun débat sur Internet. Il s’agit de célébrer le vote, pas les candidats.
Toute manière raisonnable d’afficher ou de produire le résultat est valide, telle que:
Dessiner le texte sur une image qui est ensuite affichée, enregistrée ou brute en sortie.
Écrire le texte sur une console en utilisant le formatage des couleurs . Dans ce cas, vous pouvez utiliser approximativement le rouge et le bleu purs si nécessaire, et vous pouvez utiliser uniquement la zone située directement derrière le texte.
Affichage du texte sur un formulaire WPF / Windows.
Produire un fichier HTML / RTF / PDF avec le texte.
S'il vous plaît poster une image de votre sortie.
La réponse la plus courte en octets gagne.
la source
Réponses:
Minecraft Chat (client vanilla 1.10, serveur Spigot 1.10): 19 octets
ou du côté client:
Minecraft utilise un système de code de couleur avec ces couleurs programmées dans.
Attention aux règles:
Toutes ces affirmations sont vraies, telles que:
les approximations ARE et rouge (bien que très similaires).
Le fond du chat Minecraft est transparent, ce qui signifie qu'il est possible de le placer sur un fond blanc. (comme un monde vide)
la source
&
s devraient être§
sC,
8280787454 octetsMerci à @WillihamTotland et @criptych pour la sauvegarde de 2 octets chacun!
Où les représentent 0x1B octets (touche d'échappement). Comme ce code contient des caractères de contrôle non imprimables, voici un hexdump réversible:
Sortie sur mon téléphone:
la source
a
comme"\x1B[%dm"
, qui est une séquence d'échappement ANSI pour la coloration, avec un espace réservé. Les chiffresprintf()
remplissent ces espaces réservés."\x1B[47;31m"
et en définissant b to"\x1B[34m"
, puis enputs
alternanta
et enb
préfixes.\33
. Je ne sais pas ce que la norme C pense de cela ...Google Blockly ,
10 à14 blocs,28 à4135 blytesCode
Sortie
Essayez-le ici
Sans compter le
hide turtle
bloc parce que c'est juste de l'esthétique.Un blyte est une combinaison d'un bloc et d'un octet. Il n'y a pas encore de méta-post expliquant comment le compter, mais je vais en créer un plus tard. Pour l'instant, voici comment je compte:
I o e
, 8 blytesV t d
, 10 blytes (2 espaces principaux ici)Étant donné que Google Blockly est rarement utilisé pour le golf et que je pense que ce défi est en dehors de la boîte, j'espère que cette soumission sera valide.
la source
I o
par deux espaces em?Inspect Element
exécuter le code dans l’API Blockly pour obtenir le code JavaScript réel.HTML, 52 octets
la source
#FF0000
->#F00
et#0000FF
->#00F
fonctionne<r>I <c>V<r>o<c>t<r>e<c>d<style>r{color:red}c{color:blue
fonctionneI <c>V<e>o<c>t<e>e<c>d<style>*{color:red}c{color:0ff
changement et la note bleu0ff
c{color:blue}
version.LaTeX,
147126 octetsA sauvé 21 octets et obtenu un meilleur crénage grâce à @ AndreïKostyrka.
Ceci imprime une page a4 avec ceci sur la première ligne (notez que ceci imprime également la page 1 en bas):
la source
Vo
kerning plus joli ... Mais apparemment, il considère chaque lettre séparément en raison des couleurs.\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}
enregistre 21 octets et génère 126 octets de pure beauté typographique.Windows 10 Batch,
5150 octetsOù représente le caractère ANSI Escape 0x1B. Sorties utilisant le formatage des couleurs. Edit: 1 octet enregistré grâce à @ brianush1. J'ai essayé d'écrire le code pour générer cela, mais cela a pris 97 octets. Sortie:
la source
@color fc&echo I
JavaScript, 71 octets
Utilise
console.log
la capacité d 'imprimer en couleur. Ne fonctionne pas dans un extrait de pile, vous devez donc coller cette réponse sur la console pour la tester.Crédits photo à @Mast
la source
console.log([...' I Voted'].join`%c`,r='color:red',r,b='color:blue',r,b,r,b)
R,
113 85 81 74 7355 octetsEdit: Sauvegardé de nombreux octets grâce à @rturnbull et @JDL
La taille de la sortie (et l'espacement, etc.) dépend de la résolution du périphérique graphique actuellement ouvert. Testé en RGui et RStudio sur mon moniteur et produit:
la source
el()
auparavant. Merci de m'aider à en apprendre davantage R! Depuistext
est vectorisé, vous pouvez sauter la boucle for et il suffit d' écrire:text(seq(.3,.6,.05),.5,s,col=c("red","blue"))
. (J'ai modifié vos x positions pour le code golfier, bien que l'espacement puisse être un peu moins net.)co=
plutôt quecol=
. Et enfin,6:12*.05
plusieurs octets sont-ils plus courts queseq(.3,.6,.05)
.6:12/20
c'est bien plus court que 1 octet6:12*.05
, désolé de vous avoir égaré et de vous avoir suggéré des modifications sous-optimales.el()
99% de toutes lesstrsplit
réponses précédentes sont améliorées de 1 octet.LÖVE ,
152 142136 octetsMontrons un peu de löve pour un petit langage de prototypage amusant! Ce n'est pas parfait pour la tâche de golf (allez, c'est basé sur LUA), mais c'est facile à écrire.
Capture d'écran:
Version entièrement non-golfée:
la source
love.draw()
est une fonction intégrée que vous substituez, qui s'exécute à l'étape de dessin. Il y a aussi des choses commelove.update()
etlove.load()
pour différentes parties de la boucle de rendu, mais elles sont facultatives. C'est une belle langue, et vous pouvez commencer très facilement . Je l'utilise parfois pour créer un prototype d'idées de jeux.Processeur de soupe chaude , 48 octets
La version sans golf est:
Si vous gardez à l'esprit que
mes
(message) est celui du fournisseur de services réseauecho
, je pense que cela est assez lisible.Bizarrement, si vous essayez de faire
pos
oupos,
, la ligne bleue ne remplace pas la ligne rouge et apparaît en dessous. Même plus étrange,color
vise uniquement à intégrer des valeurs0-255
, mais0,0,-1
fonctionne pour le bleu,0,-1,0
fonctionne pour le vert et-1,0,0
fonctionne pour ... le noir? (-257,0,0
et511,0,0
travaillez pour le rouge si, donc quelque chose de génial à propos du mod 256 passe)la source
mes
remplacent-ils pas les premiers?MATLAB, 74 octets
Nous créons un fond blanc 50x50 (une colonne pour chaque état) en utilisant
imshow
un tableau deones
. Nous affichons ensuite un texte en utilisant mon astuce consistant à raccourcir les noms de propriétés pour obtenir les couleurs. La police par défaut n’ayant pas une largeur fixe, le texte est complété par des espaces.MATLAB, 99 octets, police de largeur fixe
La première version utilise la manipulation d'espaces et de coordonnées pour obtenir un kerning correct sur la police par défaut et risque de ne pas s'afficher correctement sur votre ordinateur. Au lieu de cela, nous pouvons utiliser une police de largeur fixe, comme
Courier
(ou, pour certains autres octets,FixedWidth
qui fonctionne sur tout système sur lequel une police de largeur fixe est installée). Cela se fait au prix de quelques octets supplémentaires. Nous pouvons atténuer cela légèrement en utilisant unefor
boucle pour imprimer le texte. Le texte et les couleurs correspondantes sont stockés dans un tableau de cellules. Le fond doit être un peu plus grand.Matlab, édition bonus de 80 octets
Malheureusement, le texte bleu souligné n'est pas autorisé. Sinon, cette réponse aurait mis en évidence un comportement intéressant dans MATLAB. Vous pouvez imprimer du texte en rouge à l'aide de
fprintf(2,txt)
, et vous pouvez imprimer du texte souligné en bleu avecfprintf('<a href="">txt</a>')
. Combiner cela fonctionne ... parfois. Complètement au hasard , il peut également créer du texte souligné en rouge. Vous pouvez émettredrawnow
entre desf
appels consécutifs si c'est le cas sur votre système.la source
<a href>
au lieu de<a href="">
. Si vous ne l'aimez pas, vous pouvez utiliser<a href=#>
.<a>
n'a pas fonctionné.<a>
n'est pas considéré comme un lien cliquable. pour obtenir sa couleur bleue, il faut le considérer comme tel. En CSS, le sélecteur peut êtrea[href]
. Tant que l'attributhref
est là, c'est un lien cliquable. C'est pourquoi utiliser seulement<a>
ne fonctionnera pas.ImageMagick, 102 octets
Ungolfed:
La commande ImageMagick complète consiste à:
n'appelle pas explicitement l'
convert
utilitaire par défaututiliser à la
xc:
place decanvas:
(xc:
est un ancien synonyme pourcanvas:
; je ne prévois pas que ImageMagick l'éliminera jamais)ne spécifiant pas la couleur de la zone de travail mais s'appuyant sur la valeur par défaut d'ImageMagick, qui est le blanc
supprimer la largeur
60
de la géométrie (quand elle est omise, width == height)enlever le "!" de la géométrie qui est seulement nécessaire pour produire une toile non carrée, comme
canvas:white[60x30!]
en utilisant le fichier de sortie plus ancien
x:
au lieu deshow:
(en supposant que ImageMagick a été construit avec leX
support)enlever des espaces que j'avais utilisés pour aligner les chaînes de texte
jonction des lignes multiples de la commande (suppression du backslash-CR entre les lignes)
Si vous êtes si enclin après l'élection, ajoutez 12 octets
-rotate 180
précédant lashow:
directive:la source
Bash, 35 octets
Mon script ressemble à ceci
xxd du fichier script:
En le tapant: ctrl-v-esc et ctrl-vh inséreront les échappements et les backspaces (^ [et ^ h).
la source
Mathematica (sortie d'image REPL),
6549 octetsExpression graphique REPL.
la source
Overlay@{"I o e"~Style~Red," V t d"~Style~Blue}
(il doit y avoir deux espaces entre I et o et avant V)Java,
322319318309304229217 octets-9 octets grâce à kevin.
-75 octets grâce à Angzuril, bel appel des anciennes classes awt, oubliez toujours celles qui existent.
-12 octets grâce à user902383.
Sortie:
la source
JFrame j=
peut être joué au golfFrame j=
;(c==' '||i++%2==0)?
peut être joué au golfc<33|i++%2<1?
ettrue
peut être joué au golf1>0
. Aussi, @HelkaHomba, est-ce une sortie valide? Puisqu'il a aussi des espaces entre lesV o t e d
? Oh et pourquoi0,0,999,99
?0,0,99,99
est assez grand pour le texte sur mon écran.(c<33||i++%2<1)?
pouvez toujours jouer au golf par trois octets en enlevant la parenthèse et en changer||
en|
new JComponent
tonew Container
(-1); supprimerchar c="IVoted".charAt(i);
et remplacerg.drawString(c+""
parg.drawString("IVoted".charAt(i)+""
(-8).Frame j=new JFrame();j.add(new JComponent()
pourFrame j=new Frame();j.add(new Container()
et vous pouvez aussi abandonner l'importationimport javax.swing.*;
etg.setColor(Color.WHITE);g.fillRect(0,0,99,99)
par conséquent (-63)void n(){new Frame(){{add(new Panel(){public void paint(Graphics g){int i=0;for(String c:"IVoted".split("")){g.setColor(i%2<1?Color.RED:Color.BLUE);g.drawString(c,i++*8,10);}}});setVisible(0<1);}};}
vous permet de réduire de 12 octetsBubblegum, 28 octets
Ne fonctionne pas en ligne car il utilise des codes de couleur ANSI pour la coloration.
la source
PowerShell v2 +,
71595755 octetsEnregistré deux octets grâce à @flashbang ... enregistré deux autres grâce à @ConnorLSW
Le prend
"I Voted"
et le transforme en unchar
tableau, puis en boucle|%{...}
. Chaque lettre, nous exécutonsWrite-Host
avec la-b
couleur ONTEXTEWhite
,-n
oNewLine et la-f
couleur oreground être l' indice approprié . Ceci exploite le fait que les valeurs ASCII impaires sont en rouge, alors que les valeurs ASCII même sont en bleu via$_%2
l'index.Les couleurs de la console dans PowerShell sont très limitées, c’est donc l’approximation la plus proche possible. Il serait plus pratique d'utiliser
4
(DarkRed
) pour le rouge, mais cela ne semble pas correct. Je sacrifie donc quelques octets pour des raisons de précision des couleurs.Vous trouverez ci-dessous le résultat, suivi des 16 couleurs disponibles que la console peut afficher. Notez que l’arrière-plan n’est pas vraiment blanc, car Microsoft, dans sa sagesse, a choisi d’ajouter les couleurs d’arrière-plan aux couleurs de l’avant-plan.
la source
Python, 91 octets +
termcolor
Je ne vais pas gagner, mais posté pour le plaisir.
La moitié du crédit va à Sp3000.
la source
'blue' if c else 'red'
à'brleude'[c^1::2]
.from termcolor import*\nfor c in'I Voted':cprint(c,'brleude'[ord(c)%2::2],'on_white',end='')
Jolf, 53 octets
Il y a des non imprimables. Essayez-le ici!
La sortie de Jolf est compatible HTML. J'ai essayé de faire quelque chose d'intelligent tel que le module 2 pour choisir la couleur, mais cela n'a duré que plus longtemps (environ 69 octets). Donc, la sortie est en HTML.
Sortie:
(version plus grande)
la source
blue
être écrit comme00f
?Python,
9987 octetsEssayez-le en ligne
la source
sh,
6149 octetsComme il contient des éléments non imprimables, voici un fichier hexadécimal réversible xxd:
Xterm (322)
Merci à 4198 (manatwork) pour -12 octets.
la source
[47;31;1m
. Et le1
caractère audacieux persiste jusqu’à a0
, il n’est donc pas nécessaire de le redéfinir pour chaque lettre.sh
c'est quelque chose de plus moderne que l'ancien Bourne shell, une extension des paramètres peut aider:s=":1;47;1mI :4mV:1mo:4mt:1me:4md";echo ${s//:/^[[3}
.${VAR/FROM/TO}
nécessite ksh93, bash ou zsh, pas simplement “quelque chose de plus moderne que l'ancien shell Bourne”. POSIX exige que#
et%
modificateurs extension des paramètres mais pas/…/
ou:…:
SVG +
bzip2
, 1807 octetsUne version vectorisée de l'exemple d'image, puis compressée avec bzip2 à environ la moitié (4385 -> 1807 octets). Vous pouvez le télécharger ici . (lien direct vers les pages GitHub)
Je ne vais pas gagner, mais posté pour le plaisir.
la source
bzip2
n'est pas un langage de programmation.xxd
du fichier<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>
Notez que cela le rend en dehors de la zone imprimable et n’a pas de couleur de fond. Comme je l'ai dit, ce n'est qu'un début.C, 65 octets
ou plus précisément:
Utilise la même technique de couleur bash que celle utilisée par betseg, mais avec la séquence d'échappement octale au lieu de hex et l'observation de Sp3000 selon laquelle tous les points de code impairs sont en rouge.
Laisse le terminal en bleu. Réinitialiser avec:
la source
||
fonctionne en C comme en JavaScript (x||y -> x?x:y
), vous pouvezc&1||4
sauvegarder un octet.||
et&&
sont court-circuit, ils reviennent toujours 1 ou 0, quelles que soient les valeurs impliquées.\33
sauvegarder deux octets, si cela ne va pas à l'encontre des règles.Noeud,
575541 octetsRemplacez-les
q
par l'octet littéral1B
etH
par l'octet08
avant de démarrer.Voici à quoi cela ressemble dans l'émulateur de terminal ConEmu sur mon ordinateur Windows (zoom avant):
la source
Python IDLE,
97967869 octetsMerci à DrMcMoylex pour avoir enlevé quelques octets!
EDIT: Compris qu'un direct
.write()
était plus court de 9 octetsPas vraiment une réponse appropriée, plus d'abus d'un thème standard. IDLE est l'IDE de Python et, à moins d'être personnalisé,
STDOUT
est bleu,STDERR
rouge et l'arrière-plan est blanc. Donc, le code suivant:Imprime ceci:
Cela fonctionne car
ord(i)%2
vérifie la parité du point de code de la lettre et l’imprime dansERR
/ enOUT
conséquence.la source
REBOL ,
1009095 octets (-7 octets avec REPL pour 88)Dans REPL, le REBOL initial [] n'est pas requis. C'est 7 octets.
La version sans golf est:
À gauche, avec "espace 0x0" ajouté à chaque bloc de texte, à droite, avec le remplissage par défaut 2x2.
(source: canardpc.com )
la source
Perl, 57 + 17 = 74 octets
Courir avec
-MTerm::ANSIColor
Votre terminal peut être bleu à la fin (ajouter
,c("reset")
à la fin du code pour le restaurer à la normale).Par défaut, les terminaux ont généralement un fond noir, mais ils peuvent éventuellement être modifiés en blanc, ce que je ne pense pas personnellement être une triche.
Avec photo:
la source
PHP,
199201151 octetsCe script affiche l'image sur la sortie standard. Mis à jour grâce à manatwork
Exécutez-le dans la ligne de commande comme ceci:
Sortie:
la source
header()
appel. Votre code fonctionne bien aussi depuis la ligne de commande. Commeerror_reporting
la valeur par défaut de ne pas afficher les avis, il est généralement acceptable de ne pas citer vos littéraux de chaîne. Ou si vous n'aimez pas cela, ilstr_split("I Voted")
est toujours plus court que d'énumérer les caractères séparément. Et déplacez l'affectation vers $ i pour sa première utilisation.~2**24
semble fonctionner au lieu de0xFFFFFF
. Je ne sais pas si cela est valable pour toutes les architectures. Si non,2**24-1
devrait être portable.~2**24
et2**24-1
j'ai eu des erreurs. Je ne sais même pas comment ça marche.pow()
, mais plus pratique pour le golf. pastebin.com/jFn6ahFkXamarin.Forms C #,
317313 octetsVerticalOptions=LayoutOptions.End
est nécessaire pour iOS, sinon le texte sera superposé par la barre d'état. Pas de problème sur Android, vous pouvez économiser 34 octets, y compris une virgule.Édition: 14/11/2016: -4 octets
Ungolfed
la source
Code machine x86 + DOS + BIOS, 25 octets
Hexdump:
Code d'assemblage (convient comme entrée pour
debug.com
que tous les nombres soient hexadécimaux):Il utilise une routine BIOS pour sortir la chaîne dans la mémoire d'affichage. La chaîne apparaîtra à une position "aléatoire" sur l'écran (voir ci-dessous), comme ceci:
La chaîne contient les lettres
I V o t e d
, entrelacées avec "attributs"qui spécifient la couleur des lettres. Ici, le chiffre 7 le plus significatif signifie "fond blanc" et le chiffre le moins significatif spécifie le premier plan (1 = bleu; 4 = rouge).
La position d'affichage de la chaîne est spécifiée par le
dx
registre. Comme mentionné ici , la valeur initiale de ce registre est égale à la valeur ducs
registre. Et la valeur de celle-ci est la première adresse disponible en mémoire, après le chargement de DOS.La taille de DOS est généralement inférieure à 64 Ko, c'est-à-dire que l'adresse du segment du programme de l'utilisateur chargé est inférieure à hexadécimale
1000
. La sortie apparaîtra donc quelque part autour des 16 premières lignes de texte à l'écran. Dans mon exemple, il apparaît à la ligne 8 (la moitié supérieure dedx
, appeléedh
, est égale à 8).La moitié inférieure de
dx
, appeléedl
, contient la colonne à laquelle le texte est sorti. Des expériences ont montré que le BIOS ne vérifie pas le dépassement de capacité, il est donc indifférent dedx
demander une sortie, par exemple dans la colonne 100la source