Hoje é 8 de novembro de 2016, dia da eleição nos Estados Unidos da América.
Se você é um cidadão dos EUA elegível para votar, saia e vote se ainda não o fez antes de responder a este desafio. Não discuta em quem você votou. É importante apenas que você tenha votado.
Se você não é um cidadão dos EUA ou não é elegível para votar, antes de responder a este desafio, faça um favor aos EUA dizendo a alguém que você sabe que é um cidadão elegível para sair e votar se já não o tiver.
Desafio
Escreva um programa que indique que você votou, como um adesivo digital "Eu votei" .
Ele deve tomar nenhuma saída de entrada e obrigação de uma forma razoável a frase I Voted
onde a I
, o
e e
são vermelhas ( #FF0000
) e do V
, t
e d
são azuis ( #0000FF
). O fundo deve ser branco ( #FFFFFF
).
Por exemplo:
Naturalmente, essas cores são representativas da bandeira americana (embora não as cores oficiais ). O vermelho vem em primeiro lugar simplesmente porque vem em primeiro lugar no idioma comum "vermelho branco e azul".
Para ser válida, uma resposta deve:
Use as cores especificadas no arranjo especificado.
Use uma única fonte legível e tamanho da fonte. O exemplo usa 72pt Times New Roman em negrito, mas qualquer fonte comum acima de 6pt provavelmente está correta.
Tenha apenas a frase
I Voted
em uma única linha , maiúscula corretamente, com um espaço livre entre as duas palavras. Não deveria parecerIVoted
.Não indicar em quem o respondente votou ou apóia o presidente ou qualquer corrida abaixo da cédula. Não vamos iniciar nenhum debate na Internet. Trata-se de celebrar a votação, não os candidatos.
Qualquer maneira razoável de exibir ou produzir a saída é válida, como:
Desenho do texto para uma imagem que é exibida, salva ou gerada como raw.
Escrevendo o texto em um console usando formatação de cores . Nesse caso, você pode aproximar vermelho e azul puro, se necessário, e tudo bem se apenas a área diretamente atrás do texto puder ficar em branco.
Exibindo o texto em um formulário WPF / Windows.
Saída de um arquivo HTML / RTF / PDF com o texto.
Por favor, poste uma imagem da sua saída.
A resposta mais curta em bytes vence.
fonte
Respostas:
Minecraft Chat (cliente vanilla 1.10, servidor spigot 1.10): 19 bytes
ou do lado do cliente:
O Minecraft usa um sistema de código de cores com essas cores programadas.
Observe as regras:
Tudo isso é verdade, como:
o vermelho e o azul são aproximações (embora ainda sejam muito semelhantes).
O plano de fundo no chat do Minecraft é transparente, o que significa que é possível colocar isso em um plano de fundo branco. (como um mundo vazio)
fonte
&
s devem ser§
s #C,
8280787454 bytesAgradecemos a @WillihamTotland e @criptych por economizar 2 bytes cada!
Onde os represents representam 0x1B bytes (tecla de escape). Como esse código contém caracteres de controle não imprimíveis, aqui está um hexdump reversível:
Saída no meu telefone:
fonte
a
como"\x1B[%dm"
, que é uma sequência de escape ANSI para colorir, com um espaço reservado. Os númerosprintf()
preenchem esses espaços reservados."\x1B[47;31m"
e definindo b como"\x1B[34m"
, depois usandoputs
com alternânciaa
eb
prefixos.\33
. Não sei o que o padrão C pensa que ...Google Blockly ,
1014 blocos,284135 blytesCódigo
Resultado
Experimente aqui
Sem contar o
hide turtle
bloco, porque é apenas estética.Um blyte é uma combinação de um bloco e um byte, ainda não existe uma meta post sobre como contar isso, mas crio uma mais tarde. Por enquanto, é assim que eu conto:
I o e
, 8 blytesV t d
, 10 blytes (2 espaços principais aqui)Como o Google Blockly raramente é usado para jogar golfe, e estou pensando fora do comum para esse desafio, espero que este seja um envio válido.
fonte
I o
por dois em?Inspect Element
executar o código na API do Blockly para obter o código JavaScript real.HTML, 52 bytes
fonte
#FF0000
->#F00
e#0000FF
->#00F
trabalha<r>I <c>V<r>o<c>t<r>e<c>d<style>r{color:red}c{color:blue
funcionaI <c>V<e>o<c>t<e>e<c>d<style>*{color:red}c{color:0ff
e nota a mudança para azul0ff
c{color:blue}
versão.LaTeX,
147126 bytesEconomizou 21 bytes e melhorou o kerning graças a @ AndreïKostyrka.
Isso imprime uma página a4 com isso na primeira linha (observe que também imprime a página 1 na parte inferior):
fonte
Vo
kerning mais bonito ... Mas, aparentemente, considera cada letra separadamente devido às cores.\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}
salva 21 bytes e resulta em 126 bytes de pura beleza tipográfica.Lote do Windows 10,
5150 bytesOnde ␛ representa o caractere ANSI Escape 0x1B. Saídas usando formatação de cores. Editar: salvou 1 byte graças a @ brianush1. Eu tentei escrever o código para gerar isso, mas foram necessários 97 bytes. Resultado:
fonte
@color fc&echo I
...JavaScript, 71 bytes
Utiliza
console.log
a capacidade de imprimir em cores. Não funciona em um snippet de pilha, portanto, você deve colar esta resposta no console para testá-la.Créditos de imagem para @Mast
fonte
console.log([...' I Voted'].join`%c`,r='color:red',r,b='color:blue',r,b,r,b)
R,
113 85 81 74 7355 bytesEdit: salvou um monte de bytes graças a @rturnbull e @JDL
O tamanho da saída (e espaçamento etc.) depende da resolução do dispositivo gráfico atualmente aberto. Testado em RGui e RStudio no meu monitor e produz:
fonte
el()
antes. Obrigado por me ajudar a aprender mais R! Desdetext
é vetorizado, você pode pular o loop for e apenas escrever:text(seq(.3,.6,.05),.5,s,col=c("red","blue"))
. (I modificado suas posições x para Golfier código, embora o espaçamento pode ser um pouco menos puro.)co=
vez decol=
. E, finalmente,6:12*.05
é vários bytes menor queseq(.3,.6,.05)
.6:12/20
é, obviamente, 1 byte menor que6:12*.05
, desculpas por desviá-lo e sugerir edições abaixo do ideal.el()
melhora 99% de todas asstrsplit
respostas anteriores em 1 byte.LÖVE ,
152 142136 bytesVamos mostrar um pouco da linguagem de prototipagem divertida! Não é perfeito para a tarefa de jogar golfe (vamos lá, é baseado em LUA), mas é fácil de escrever.
Captura de tela:
Versão totalmente não destruída:
fonte
love.draw()
é uma função interna que você substitui, que é executada na etapa de desenho. Também existem coisas comolove.update()
elove.load()
para várias partes do loop de renderização, mas são opcionais. É uma linguagem agradável e você pode começar com ela com muita facilidade . Às vezes, eu o uso para criar protótipos de idéias de jogos.Processador de sopa quente , 48 bytes
A versão ungolfed é:
Se você tem em mente que
mes
(a mensagem) é HSPecho
, acho que isso é bastante legível.Estranhamente, se você tentar fazer
pos
oupos,
, a linha azul não substitui a linha vermelha e aparece abaixo dela. Ainda mais estranho,color
serve apenas para receber valores0-255
, mas0,0,-1
funciona para azul,0,-1,0
funciona para verde e-1,0,0
funciona para ... preto? (-257,0,0
e511,0,0
trabalhe no vermelho, então algo está estranho no mod 256 em andamento)fonte
mes
substituem o primeiro?MATLAB, 74 bytes
Criamos um plano de fundo branco 50x50 (uma coluna para cada estado) usando
imshow
uma matriz deones
. Em seguida, exibimos um texto, usando meu truque para encurtar os nomes das propriedades para obter as cores. Como a fonte padrão não possui largura fixa, o texto é preenchido com espaços.Fonte MATLAB, 99 bytes, largura fixa
A primeira versão usa mexer com espaços e coordenadas para obter um kerning adequado na fonte padrão e pode não ser exibida corretamente no seu computador. Em vez disso, podemos usar uma fonte de largura fixa, como
Courier
(ou, por mais alguns bytes,FixedWidth
que funciona em qualquer sistema que tenha uma fonte de largura fixa instalada). Isso tem um custo de alguns bytes extras. Podemos atenuar um pouco isso usando umfor
loop para imprimir o texto. O texto e as cores correspondentes são armazenados em uma matriz de células. O plano de fundo precisa ser um pouco maior.Matlab, edição de bônus de 80 bytes
Infelizmente, texto sublinhado em azul não é permitido. Caso contrário, essa resposta teria destacado algum comportamento interessante no MATLAB. Você pode imprimir texto em vermelho usando
fprintf(2,txt)
e pode imprimir texto sublinhado em azul comfprintf('<a href="">txt</a>')
. Combinar isso funciona ... às vezes. Completamente aleatório , também pode criar texto sublinhado em vermelho. Você pode emitirdrawnow
entref
chamadas consecutivas , se esse for o caso no seu sistema.fonte
<a href>
vez de<a href="">
. Se você não gostar, pode usar<a href=#>
.<a>
não funcionou.<a>
não é considerado um link clicável. para obter a cor azul, deve ser considerado como um. Em CSS, o seletor pode sera[href]
. Enquanto o atributohref
estiver lá, é um link clicável. É por isso que usar apenas<a>
não funciona.ImageMagick, 102 bytes
Ungolfed:
Jogar golfe no comando ImageMagick completo consistia em
não chamando explicitamente o
convert
utilitário padrãousando em
xc:
vez decanvas:
(xc:
é um sinônimo antigocanvas:
; eu não prevejo que o ImageMagick o elimine)não especificando a cor da tela, mas confiando no padrão do ImageMagick, que é branco
removendo a largura
60
da geometria (quando omitida, width == height)removendo o "!" da geometria necessária apenas para produzir uma tela não quadrada, como
canvas:white[60x30!]
usando o antigo em
x:
vez deshow:
como o arquivo de saída (assume que o ImageMagick foi criado comX
suporte)removendo algum espaço em branco que eu tinha usado para alinhar as seqüências de texto
unindo as várias linhas do comando (removido o CR de barra invertida entre as linhas)
Se você estiver tão inclinado após a eleição, adicione 12 bytes
-rotate 180
antes dashow:
diretiva:fonte
Bash, 35 bytes
Meu script fica assim
xxd do arquivo de script:
Digitando: ctrl-v-esc e ctrl-vh irá inserir os escapes e backspaces (^ [e ^ H).
fonte
Mathematica (saída de imagem REPL),
6549 bytesExpressão gráfica de REPL.
fonte
Overlay@{"I o e"~Style~Red," V t d"~Style~Blue}
(não é suposto ser dois espaços entre I e O e antes V)Java,
322319318309304229217 bytes-9 Bytes graças a Kevin.
-75 bytes graças a Angzuril, texto explicativo agradável sobre as classes antigas, sempre esqueça que elas existem.
-12 bytes graças a user902383.
Resultado:
fonte
JFrame j=
pode ser jogado golfe paraFrame j=
;(c==' '||i++%2==0)?
pode ser jogadoc<33|i++%2<1?
etrue
jogado1>0
. Além disso, @HelkaHomba, essa saída é válida? Uma vez que também tem espaços entre osV o t e d
? Ah e por quê0,0,999,99
?0,0,99,99
é grande o suficiente para o texto na minha tela.(c<33||i++%2<1)?
ainda pode ser golfed por três bytes removendo o parêntese e mude||
para #|
new JComponent
paranew Container
(-1); removachar c="IVoted".charAt(i);
e mudeg.drawString(c+""
parag.drawString("IVoted".charAt(i)+""
(-8).Frame j=new JFrame();j.add(new JComponent()
paraFrame j=new Frame();j.add(new Container()
e você também pode descartar a importaçãoimport javax.swing.*;
e,g.setColor(Color.WHITE);g.fillRect(0,0,99,99)
como resultado (-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);}};}
permite reduzir em 12 bytesChiclete, 28 bytes
Não funciona online, pois usa códigos de cores ANSI para colorir.
fonte
PowerShell v2 +,
71595755 bytesSalvou dois bytes graças a @flashbang ... salvou mais dois graças a @ConnorLSW
Pega
"I Voted"
e transforma em umchar
arranjo, depois faz um loop|%{...}
. Cada letra é executadaWrite-Host
com a-b
cor de fundo paraWhite
,-n
oNewLine e a-f
cor do primeiro plano para ser o índice apropriado . Isso aproveita o fato de que valores ASCII ímpares são vermelhos, enquanto valores ASCII pares são azuis via$_%2
como índice.As cores do console no PowerShell são muito limitadas, portanto essa é a aproximação mais próxima que pude obter. Seria mais golfista usar
4
(DarkRed
) para o vermelho, mas não parece certo, então estou sacrificando alguns bytes por uma questão de precisão de cores.Abaixo está a saída, seguida pelas 16 cores disponíveis que o console pode exibir. Observe que o plano de fundo não é verdadeiramente branco, pois, em sua opinião, a Microsoft optou por ter as cores de plano de fundo cada vez mais discretas das cores de primeiro plano.
fonte
Python, 91 bytes +
termcolor
Não vou ganhar, mas postei por diversão.
Metade do crédito vai para o Sp3000.
fonte
'blue' if c else 'red'
para'brleude'[c^1::2]
.from termcolor import*\nfor c in'I Voted':cprint(c,'brleude'[ord(c)%2::2],'on_white',end='')
Jolf, 53 bytes
Existem imprimíveis. Experimente aqui!
A saída de Jolf é capaz de HTML. Tentei fazer algo inteligente, como o módulo 2, para decidir a cor, mas isso só acabou mais (cerca de 69 bytes). Portanto, a saída está em HTML.
Resultado:
(versão ampliada)
fonte
blue
ser escrito como00f
?Python,
9987 bytesExperimente online
fonte
sh,
6149 bytesComo contém imprimíveis, aqui está um hexdump xxd reversível:
Xterm (322)
Graças a 4198 (manatwork) por -12 bytes.
fonte
[47;31;1m
. E o1
negrito persiste até a0
, portanto, não é necessário defini-lo repetidamente para cada letra.sh
é algo mais moderno do que o antigo Bourne shell, alguma expansão parâmetro pode ajudar:s=":1;47;1mI :4mV:1mo:4mt:1me:4md";echo ${s//:/^[[3}
.${VAR/FROM/TO}
requer ksh93, bash ou zsh, não apenas “algo mais moderno que o antigo shell Bourne”. POSIX requer que os#
e%
expansão parâmetro modificadores, mas não/…/
ou:…:
SVG +
bzip2
, 1807 bytesUma versão vetorizada da imagem de exemplo, depois compactada com bzip2 para cerca da metade (4385 -> 1807 bytes). Você pode baixá-lo aqui . (link direto para páginas do GitHub)
Não vou ganhar, mas postei por diversão.
fonte
bzip2
não é uma linguagem de programação.xxd
do arquivo<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>
Observe que isso realmente o renderiza fora da área imprimível e não possui cor de fundo. Como eu disse, é apenas um começo.C, 65 bytes
ou, com mais precisão:
Usa a mesma técnica de bash color usada pela betseg, mas com a sequência de escape octal em vez de hex e com a observação do Sp3000 de que todos os pontos de código ímpares são vermelhos.
Deixa o terminal em azul. Redefinir com:
fonte
||
funcionar em C, como no JavaScript (x||y -> x?x:y
), você poderác&1||4
salvar um byte.||
e&&
são curto-circuito, eles sempre retornar 1 ou 0, independentemente dos valores envolvidos.\33
salvar dois bytes, se isso não for de alguma forma contra as regras.Nó,
575541 bytesSubstitua cada um
q
pelo literal1B
eH
byte08
antes de executar.Veja como fica no emulador de terminal ConEmu no meu computador Windows (ampliado):
fonte
Python IDLE,
97967869 bytesObrigado ao DrMcMoylex por remover alguns bytes!
EDIT: Descobri que um direto
.write()
era 9 bytes mais curtoNão é realmente uma resposta adequada, mais abuso de um tema padrão. IDLE é o IDE do Python e, a menos que seja personalizado,
STDOUT
é azul,STDERR
é vermelho e o fundo é branco. Então, o seguinte código:Imprime isto:
Isso funciona porque
ord(i)%2
verifica a paridade do ponto de código da letra e a imprime emERR
/ deOUT
acordo.fonte
REBOL ,
1009095 bytes (-7 bytes com REPL para 88)No REPL, o REBOL inicial [] não é necessário. São 7 bytes.
A versão ungolfed é:
À esquerda, com "espaço 0x0" adicionado a cada bloco de texto, à direita, com o preenchimento padrão de 2x2.
(fonte: canardpc.com )
fonte
Perl, 57 + 17 = 74 bytes
Correr com
-MTerm::ANSIColor
Seu terminal pode estar azul no final (anexe
,c("reset")
no final do código para restaurá-lo ao normal).Por padrão, os terminais geralmente são de fundo preto, mas podem opcionalmente ser alterados para branco, o que eu pessoalmente não acho que seja trapaça.
Com imagem:
fonte
PHP,
199201151 bytesEste script gera imagem para saída padrão. Atualizado graças ao manatwork
Execute-o na linha de comando da seguinte maneira:
Resultado:
fonte
header()
ligação. Seu código também funciona bem na linha de comando. Comoerror_reporting
o valor padrão não mostra avisos, geralmente é aceitável não citar seus literais de string. Ou, se você não gosta,str_split("I Voted")
é ainda mais curto do que enumerar os caracteres separadamente. E mova a atribuição para $ i para o seu primeiro uso.~2**24
parece funcionar em vez de0xFFFFFF
. Não tenho certeza se isso é válido para todas as arquiteturas. Caso contrário,2**24-1
deve ser portátil.~2**24
e2**24-1
obtive erros. Eu nem sei como isso funciona.pow()
, mas mais prático para jogar golfe. pastebin.com/jFn6ahFkXamarin.Forms C #,
317313 bytesVerticalOptions=LayoutOptions.End
é necessário para iOS, caso contrário, o texto será sobreposto pela barra de status. Não há problema no Android, portanto, você pode economizar 34 bytes, incluindo vírgula.Edit: 14/11/2016: -4 bytes
Ungolfed
fonte
código de máquina x86 + DOS + BIOS, 25 bytes
Hexdump:
Código de montagem (adequado como entrada para
debug.com
, portanto, todos os números são hexadecimais):Ele usa uma rotina do BIOS para enviar a string para a memória do monitor. A string aparecerá em uma posição "aleatória" na tela (veja abaixo), assim:
A cadeia contém as letras
I V o t e d
intercaladas com "atributos"que especificam a cor das letras. Aqui 7 como o dígito mais significativo significa "fundo branco" e o dígito menos significativo especifica o primeiro plano (1 = azul; 4 = vermelho).
A posição de exibição da string é especificada pelo
dx
registro. Como mencionado aqui , o valor inicial desse registro é igual ao valor docs
registro. E o valor desse é o primeiro endereço disponível na memória, após o carregamento do DOS.O tamanho do DOS geralmente é menor que 64 K, ou seja, o endereço do segmento do programa do usuário carregado é menor que hexadecimal
1000
. Portanto, a saída aparecerá em algum lugar nas primeiras 16 linhas de texto no visor. No meu exemplo, ele apareceu na linha 8 (a metade superior dedx
, chamadadh
, é igual a 8).A metade baixa de
dx
, chamadadl
, contém a coluna na qual o texto é produzido. As experiências mostram que o BIOS não verifica o estouro, portanto, não importa sedx
solicita saída na coluna 100, por exemplo.fonte