SAIA E VOTE
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.
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 Votedonde a I, oe esão vermelhas ( #FF0000) e do V, te dsão azuis ( #0000FF). O fundo deve ser branco ( #FFFFFF).
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 Votedem uma única linha , maiúscula corretamente, com um espaço livre entre as duas palavras. Não deveria parecer IVoted.
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.
— Passatempos de Calvin
Um pouco decepcionado, meu adesivo real não se parece com o seu.
"Só importa que você tenha votado." - @HelkaHomba ... É como dizer "não importa o código que você escreve, desde que você tenha escrito algum código". : /
— Michael Yaeger
@ MichaelYaeger Bem, escrever algum código é melhor do que escrever nenhum. Votar é melhor do que não votar. É provável que as pessoas pensem em codificar e votar se optarem por fazê-lo. Mas na verdade eu disse isso para ajudar a evitar debates furiosos.
Se isso ajuda alguém, as vogais são vermelhas, as consoantes são azuis.
@ mbomb007 Ou, mais útil, as letras com pontos de código ímpares são vermelhas e as letras com pontos de código pares são azuis.
— Sp3000 8/16
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.
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.
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)
Uau. Estou sem palavras. Essa é uma resposta muito inteligente!
Eu não acho que o Minecraft Chat seja Turing completo ou considerado uma linguagem de programação (embora isso possa não ser mais um requisito). Muito criativo! :)
— Kade 8/16
@Shebang gaming.stackexchange.com/questions/20219/... Minecraft bate-papo tem (quase) todos os mesmos comandos dos blocos de comando e, certamente, todos os comandos de volta quando a pergunta foi feita :-)
Tecnicamente, no baunilha Minecraft, os &s devem ser §s #
Hmmm eu acho que pode ser feito em Quake 3, também
Agradecemos 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:
@KritixiLithos que a linha define acomo "\x1B[%dm", que é uma sequência de escape ANSI para colorir, com um espaço reservado. Os números printf()preenchem esses espaços reservados.
É possível remover dois bytes substituindo a com "\x1B[47;31m"e definindo b como "\x1B[34m", depois usando putscom alternância ae bprefixos.
— Williham Totland
Você pode salvar outros 2 bytes com "\ 33" em vez de "\ x1B".
— criptych
Estendendo o que criptych disse, não sei se isso é permitido, mas você salvaria outros quatro bytes usando um caractere de escape literal em vez de \33. Não sei o que o padrão C pensa que ...
@paxdiablo de acordo com este meta thread, as funções são boas para o código de golfe.
Google Blockly , 10 14 blocos, 28 41 35 blytes
Sem contar o hide turtlebloco, 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:
V t d, 10 blytes (2 espaços principais aqui)
Cores, 1 blyte cada, 2 no total
vire à direita, 2 blytes
seguir em frente, 2 blytes
blocos normais, 1 blyte cada, 5 no total
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.
Para o registro, isso é válido. É bom ver idiomas únicos. No entanto, a menos que haja um meta-consenso sobre a contagem de bytes no Google Blockly, posso ignorá-lo ao selecionar um vencedor.
— Calvin's Hobbies
Você pode encontrar discussões aqui relevantes. CC @HelkaHomba.
Você já pensou em substituir esses três espaços I opor dois em?
— Andrea Lazzarotto 11/11
O Google Blockly será traduzido para JavaScript e depois executado. Você precisa Inspect Elementexecutar o código na API do Blockly para obter o código JavaScript real.
Espere, para que o Scratch possa ser usado?
Além disso, acho que #FF0000-> #F00e #0000FF-> #00Ftrabalha
Por que não transformar isso em um snippet de pilha?
— 9116 Neil
<r>I <c>V<r>o<c>t<r>e<c>d<style>r{color:red}c{color:bluefunciona
— somente ASCII
na verdade, você pode apenas manter assentamento sem fechar I <c>V<e>o<c>t<e>e<c>d<style>*{color:red}c{color:0ffe nota a mudança para azul0ff
Infelizmente, a versão atual não parece funcionar como um snippet de pilha, a versão mais recente que funciona para mim é a c{color:blue}versão.
Economizou 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):
Eu pensaria que o LaTeX digitaria o Vokerning mais bonito ... Mas, aparentemente, considera cada letra separadamente devido às cores.
Como cada letra está em um comando separado, acho que destrói o kerning adequado.
Sim exatamente. Embora eu tenha certeza de que seria possível de alguma forma se o golfe não fosse um requisito.
@sanchises isso é definitivamente possível , mas isso é realmente mais do que esta solução feia.
— Fatalize 8/11
\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, 51 50 bytes
Onde ␛ 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:
Você pode golfe-lo para baixo por 1 byte, se você usar @color fc&echo I...
— brianush1
suportados seqüências de escape ANSI interessante, eu não sabia que o Windows Terminal
@ MarkKCowan É apenas o Windows 10 e (acho!) Postar a Atualização Redstone. É uma das poucas coisas que me impedem de instalar o XP sobre ele.
@ wizzwizz4 O ConEmu também suporta esses :) De fato, isso é do aniversário do Windows 10 (ou seja, redstone 1)
— Asu
@ Asu eu instalei o XP sobre ele.
— wizzwizz4 24/01
Utiliza console.loga 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
Isso é exatamente o que eu acabei de criar, haha. Eu acho que a alternativa mais curto seriaconsole.log([...' I Voted'].join`%c`,r='color:red',r,b='color:blue',r,b,r,b)
Também não funciona no Node.js. :(
Fiquei surpreso que isso realmente funcione, mas funciona .
Edit: 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:
— Billywob
Oh, eu nunca vi el()antes. Obrigado por me ajudar a aprender mais R! Desde texté 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.)
Além disso, graças à correspondência parcial de argumentos, você pode usar em co=vez de col=. E, finalmente, 6:12*.05é vários bytes menor que seq(.3,.6,.05).
— R16 #
Boa pegada! E agora percebo que 6:12/20é, obviamente, 1 byte menor que 6:12*.05, desculpas por desviá-lo e sugerir edições abaixo do ideal.
As cores não estão apagadas? O "eu" e o "V" não deveriam ter cores diferentes?
— JDL #
Tenho certeza que el()melhora 99% de todas as strsplitrespostas anteriores em 1 byte.
— Vlo
LÖVE , 152 142 136 bytes
Vamos 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.
Versão totalmente não destruída:
Eu amo que você usou algo diferente de Java.
Tantos 255 ... Uma variável para eles?
@ ConorO'Brien Este é um programa completo. love.draw()é uma função interna que você substitui, que é executada na etapa de desenho. Também existem coisas como love.update()e love.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.
@cat Eles simplesmente não. Não é como se eu os estivesse imprimindo em um console, é uma impressão gráfica. Portanto, um espaço aqui é apenas "não pinte nada nesta área", não "pinte esta área com um fundo colorido".
— Geobits 9/11/16
@ ZoltánSchmidt Obrigado! Existem algumas outras respostas do LÖVE , se você quiser dar uma olhada nelas: D
Processador de sopa quente , 48 bytes
A versão ungolfed é:
Se você tem em mente que mes(a mensagem) é HSP echo, acho que isso é bastante legível.
Estranhamente, se você tentar fazer posou pos,, a linha azul não substitui a linha vermelha e aparece abaixo dela. Ainda mais estranho, colorserve apenas para receber valores 0-255, mas 0,0,-1funciona para azul, 0,-1,0funciona para verde e -1,0,0funciona para ... preto? ( -257,0,0e 511,0,0trabalhe no vermelho, então algo está estranho no mod 256 em andamento)
Por que os espaços no segundo não messubstituem o primeiro?
@cat espaços realmente não desenhar qualquer coisa, ele apenas avança a posição do cursor em um sentido
Inteligente usando -1 para 255. +1
@ Cyoce Ou talvez seja realmente -255?
— 2331717
Criamos um plano de fundo branco 50x50 (uma coluna para cada estado) usando imshowuma matriz de ones. 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, FixedWidthque 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 um forloop 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 com fprintf('<a href="">txt</a>'). Combinar isso funciona ... às vezes. Completamente aleatório , também pode criar texto sublinhado em vermelho. Você pode emitir drawnowentre fchamadas consecutivas , se esse for o caso no seu sistema.
Você pode escrever em <a href>vez de <a href="">. Se você não gostar, pode usar <a href=#>.
@IsmaelMiguel Clever. <a>não funcionou.
Usar apenas <a>não é considerado um link clicável. para obter a cor azul, deve ser considerado como um. Em CSS, o seletor pode ser a[href]. Enquanto o atributo hrefestiver lá, é um link clicável. É por isso que usar apenas <a>não funciona.
Jogar golfe no comando ImageMagick completo consistia em
não chamando explicitamente o convertutilitário padrão
usando em xc:vez de canvas:( xc:é um sinônimo antigo canvas:; 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 60da geometria (quando omitida, width == height)
removendo o "!" da geometria necessária apenas para produzir uma tela não quadrada, comocanvas:white[60x30!]
usando o antigo em x:vez de show:como o arquivo de saída (assume que o ImageMagick foi criado com Xsuporte)
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 180antes da show:diretiva:
— Glenn Randers-Pehrson
Eu amo como a versão não-golfada difere drasticamente da versão do golfe.
Meu script fica assim
xxd do arquivo de script:
0000000: 6563 686f 2022 1b5b 3437 3b33 316d 4920 eco ". [47; 31mI
0000010: 686f 7065 1b5b 3334 6d64 0808 0874 0808 esperança. [34md ... t ..
0000020: 0876 22 .v "
Digitando: ctrl-v-esc e ctrl-vh irá inserir os escapes e backspaces (^ [e ^ H).
— Cernelha Elevada
Como é que isso funciona? Uma explicação seria super
@cat parece escrever todas as letras vermelhas (com "h" e "p" como substitutos), depois define a cor para azul e escreve "d" no final. Por fim, move o cursor para a esquerda para adicionar "t" e "V" sobre os anteriores (ascii 0x08, representado por "^ H" na exibição acima, move para a esquerda 1 caractere). Maneira inteligente de evitar muitas seqüências de escape para mudanças de cor. Ele também usa um caractere de escape literal (0x1B, representado como "^ ["), que economiza espaço em comparação com respostas semelhantes, como a minha.
Além disso: pode economizar 3 bytes assumindo que o terminal esteja definido como fundo branco por padrão (a maioria das outras respostas do terminal já assume isso).
Você pode salvar um byte removendo as duas aspas e adicionando uma barra invertida (caractere de escape) antes do ponto e vírgula. Além disso, seu script possui uma letra minúscula v (sua linha de comando é boa).
Mathematica (saída de imagem REPL), 65 49 bytes
Expressão gráfica de REPL.
"Uso particular?" O que é isso?
@ ConorO'Brien enwp.org/Private_Use_Areas
Este é de 49 bytes: 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)
-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.
JFrame j=pode ser jogado golfe para Frame j=; (c==' '||i++%2==0)?pode ser jogado c<33|i++%2<1?e truejogado 1>0. Além disso, @HelkaHomba, essa saída é válida? Uma vez que também tem espaços entre os V 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.
— 11556 Kevin Crijssen em
(c<33||i++%2<1)?ainda pode ser golfed por três bytes removendo o parêntese e mude ||para #|
— 911 Kevin Cruijssen
Encontrei mais algumas coisas no golfe: new JComponentpara new Container(-1); remova char c="IVoted".charAt(i);e mude g.drawString(c+""para g.drawString("IVoted".charAt(i)+""(-8).
— 21716 Kevin Murrijssen
Primeiro aprimoramento, altere Frame j=new JFrame();j.add(new JComponent()para Frame j=new Frame();j.add(new Container()e você também pode descartar a importação import javax.swing.*;e, g.setColor(Color.WHITE);g.fillRect(0,0,99,99)como resultado (-63)
— Angzuril 10/11
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 bytes
— user902383 11/11
Chiclete, 28 bytes
Não funciona online, pois usa códigos de cores ANSI para colorir.
— um spaghetto
É uma codificação direta ou emprega algum outro truque inteligente?
@ ConorO'Brien Não há truques inteligentes no Bubblegum. Para ser sincero, essa resposta foi principalmente um efeito colateral da resposta real em que estou trabalhando.
— a spaghetto
PowerShell v2 +, 71 59 57 55 bytes
Salvou dois bytes graças a @flashbang ... salvou mais dois graças a @ConnorLSW
Pega "I Voted"e transforma em um chararranjo, depois faz um loop |%{...}. Cada letra é executada Write-Hostcom a -bcor de fundo para White, -noNewLine e a -fcor 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 $_%2como í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.
IIRC, em coisas antigas, você tinha 4 bits para o primeiro plano e 3 bits para o segundo plano; portanto, os fundos podiam ser apenas as cores "escuras" de 0 a 7. O console ainda está seguindo isso?
@Hurkyl Kinda. Parece basear-se na paleta de cores EGA , mas não tenho certeza dos motivos históricos para o PowerShell manter esse esquema. Provavelmente algo oculto na compatibilidade com versões anteriores da API do Win32 que os forçou a usar apenas essas 16 cores.
— AdmBorkBork 8/16
Não funciona se você definir a cor de fundo para 15?
@ Random832 é por uma questão de fundo branco do adesivo.
@ geisterfurz007, TimmyD, eu estava perguntando se você poderia definir o plano de fundo para "15" em vez de "branco" [já que o plano de fundo real da sua imagem parece ser o nº 7] para obter um branco mais brilhante. Mas, olhando mais, sua tela inteira parece estranha - as bordas entre as linhas no seu exemplo e a linha cinza entre "I" e o espaço a seguir não fazem sentido se o PowerShell estiver sendo executado no console - você está usando alguma outra ferramenta como o ConEmu? Nesse caso, não faz sentido culpar a Microsoft por isso.
— Aleatório
Não vou ganhar, mas postei por diversão.
Metade do crédito vai para o Sp3000.
Usando códigos ANSI deve ser mais curto
@ TùxCräftîñg Não é suportado em todas as plataformas, ou seja, Windows.
Se importa de adicionar uma imagem?
Você pode salvar 5 bytes mudando 'blue' if c else 'red'para 'brleude'[c^1::2].
— Kade8
Você provavelmente deve colocar + termcolor no título, pois não é um módulo padrão. Também:from termcolor import*\nfor c in'I Voted':cprint(c,'brleude'[ord(c)%2::2],'on_white',end='')
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.
(versão ampliada)
Isso é terrível você só salvou três bytes mais de HTML: P
— ASCII-only
@EriktheGolfer Realmente só funciona no Firefox.
@ ConorO'Brien Oh, eu uso o Chrome. Obrigado.
— Erik the Outgolfer 8/16
... e a resposta HTML superou isso.
Não pode blueser escrito como 00f?
@HelkaHomba Tudo o que você precisa fazer é clicar no link.
Como contém imprimíveis, aqui está um hexdump xxd reversível:
00000000: 6563 686f 2022 1b5b 3437 3b33 313b eco de 316d ". [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 "
Xterm (322)
Graças a 4198 (manatwork) por -12 bytes.
Por que definir as cores de fundo e primeiro plano separadamente? Comece com [47;31;1m. E o 1negrito persiste até a 0, portanto, não é necessário defini-lo repetidamente para cada letra.
@manatwork Oh Deus, eu pensei que você tinha que re-configurá-lo!
Se isso 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}.
@manatwork Não funciona. Parece que não é mais moderno.
@homem a trabalhar ${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:…:
Uma 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)
bzip2não é uma linguagem de programação.
@PeterTaylor Por meta regras, não precisa ser uma linguagem de programação. ( meta.codegolf.stackexchange.com/a/10426/41088
deve postar uma reversível xxddo arquivo
tente usar brotli para ainda mais compressão
Se você estiver realmente interessado em jogar isso, provavelmente faria mais sentido criar o SVG manualmente com alguns elementos de texto definidos nas cores certas. Aqui está um ponto de partida: <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.
— trlkly
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:
Se ||funcionar em C, como no JavaScript ( x||y -> x?x:y), você poderá c&1||4salvar um byte.
Não @ETHproductions não funciona dessa maneira em C. Enquanto ||e && são curto-circuito, eles sempre retornar 1 ou 0, independentemente dos valores envolvidos.
@Dave eu aprendi alguma coisa hoje ...
Isso não define a cor do plano de fundo. Além disso, você pode usar um caractere de escape literal em vez de \33salvar dois bytes, se isso não for de alguma forma contra as regras.
@yellowantphil isso pressupõe que o plano de fundo padrão do terminal esteja definido como branco (já que o desafio diz que só é possível ter um plano de fundo branco). De fato, no OS X, o terminal é preto e branco pronto para uso.
Nó, 57 55 41 bytes
Substitua cada um qpelo literal 1Be Hbyte 08antes de executar.
Veja como fica no emulador de terminal ConEmu no meu computador Windows (ampliado):
Que emulador de terminal é esse?
@cat ConEmu: conemu.github.io
Obrigado ao DrMcMoylex por remover alguns bytes!
EDIT: Descobri que um direto .write()era 9 bytes mais curto
Nã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)%2verifica a paridade do ponto de código da letra e a imprime em ERR/ de OUTacordo.
REBOL , 100 90 95 bytes (-7 bytes com REPL para 88)
No REPL, o REBOL inicial [] não é necessário. São 7 bytes.
À esquerda, com "espaço 0x0" adicionado a cada bloco de texto, à direita, com o preenchimento padrão de 2x2.
(fonte: canardpc.com )
— Le Canard fou
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:
— Gabriel Benamy
Este script gera imagem para saída padrão. Atualizado graças ao manatwork
Execute-o na linha de comando da seguinte maneira:
Ignore a header()ligação. Seu código também funciona bem na linha de comando. Como error_reportingo 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**24parece funcionar em vez de 0xFFFFFF. Não tenho certeza se isso é válido para todas as arquiteturas. Caso contrário, 2**24-1deve ser portátil.
@manatwork awesome thanks. Isso reduziu para 152. Tentei ~2**24e 2**24-1obtive erros. Eu nem sei como isso funciona.
— Kodo Johnson
Provavelmente, seu PHP tem mais de 5.6.0: "Adicionado um operador de exponenciação (**)." - Registro de alterações do PHP . O mesmo que pow(), mas mais prático para jogar golfe. pastebin.com/jFn6ahFk
Ah eu vejo. Bem, como o php 5.5 parece não ter suporte, eu usarei sua solução. Agora são 150. Obrigado novamente.
Xamarin.Forms C #, 317 313 bytes
VerticalOptions=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
— Ng do link
Bem, esse é um novo tipo de ideia. +1
código de máquina x86 + DOS + BIOS, 25 bytes
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 dintercaladas 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 dxregistro. Como mencionado aqui , o valor inicial desse registro é igual ao valor do csregistro. 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 de dx, chamada dh, é igual a 8).
A metade baixa de dx, chamada dl, 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 se dxsolicita saída na coluna 100, por exemplo.