Há uma música satírica chamada Little Boxes , originalmente de Malvina Reynolds, sobre a expansão suburbana que tem letras da seguinte forma:
Pequenas caixas na encosta,
Pequenas caixas feitas de cócegas,
Pequenas caixas na encosta,
Pequenas caixas iguais.
Há uma verde e uma rosa
E uma azul e uma amarela
E todas são feitas de cócegas
E parecem todas iguais.
Seu trabalho aqui é, dada uma entrada inteira n>1
que representa o tamanho da casa, imprima as quatro "caixinhas" usando as seguintes cores (na notação 0xRRGGBB):
Green -- 0x00FF00
Pink --- 0xFF00FF (technically magenta)
Blue --- 0x0000FF
Yellow - 0xFFFF00
Se o seu console em particular não tiver essas cores exatas, você poderá usar o mais próximo disponível (por exemplo, códigos de escape ANSI).
As casas são construídas n
_
representando o piso e a linha do telhado. Eles são cercados por caracteres n/2
(arredondados) |
que representam as paredes. Os telhados são sempre 2
altos e são dois /
na borda esquerda, dois \
na borda direita e n-2
-
representam o pico do telhado. À medida que as casas aumentam, o tamanho comparativo do telhado diminui; isto é pretendido.
Aqui está uma casa de tamanho 2
:
/\
/__\
|__|
Aqui está o tamanho 3
:
/-\
/___\
| |
|___|
Aqui está o tamanho 7
:
/-----\
/_______\
| |
| |
| |
|_______|
Dada a entrada de 7
, produz quatro casas de tamanho 7
como descrito acima, com a primeira em verde, a segunda em rosa (magenta), a terceira em azul e a quarta em amarelo. A saída das cores nessa ordem é importante.
Exemplo de imagem de tamanho 3
:
Regras
- As casas podem ser horizontais ou verticais, desde que haja uma separação clara entre elas.
- As novas linhas iniciais / finais ou outros espaços em branco são opcionais, desde que as casas sejam alinhadas adequadamente.
- Um programa completo ou uma função são aceitáveis. Se uma função, você pode retornar a saída em vez de imprimi-la.
- A saída pode ser no console, salva como imagem, etc.
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.
fonte
90
e2,5,4,3
resumido é efetivamente concatenação.JavaScript (ES6), Chrome / Firefox,
156148151150 bytesGuardado 8 bytes graças a @Shaggy
Guardado 1 byte graças a @Neil
Demo
Certifique-se de abrir o console do seu navegador para obter a saída colorida.
Mostrar snippet de código
fonte
0
são necessários?#RGB
código de cores CSS válido .Excel VBA, 243 bytes
Função de janela imediata VBE anônima que leva as entradas
A1
e saídas para o intervaloA2:A5
Resultado
fonte
Japt ,
7976747372 bytesExperimente (abra o console do navegador antes de clicar em "Executar").
Agradeço à ETH por me ajudar a testar isso ontem à noite enquanto estava trabalhando no meu telefone.
Explicação
Entrada implícita do número inteiro
U
Primeiro, construímos uma matriz de cores hexadecimais de 3 dígitos para mapear. O código de código de
²
178 é o que3#²
nos dá 3178. Nós o convertemos em uma string de base 2 por¤
e depois substituímos todas as ocorrências de1
porf
.ò3
divide a string em uma matriz de strings de comprimento 3 ew
reverte essa matriz.(Eu preciso descobrir uma maneira de encurtar isso, de alguma forma.)
Mapeamos a matriz usando
£
-X
sendo o elemento atual - e osOl
logs para o console. Passaremos 2 strings para isso, um contendo a casa e outro contendo o CSS.A segunda string é construída usando
i
para precederX
com a string compactadacolor:#
.O
%c
comando diz ao console para usar a segunda string como CSS. A linha superior da casa é criada repetindo (ç
) os tempos dos-
caracteresU
e, em seguida, cortando-os do segundo elemento (indexado 0) com¤
. Os chavetas agem como um atalho das sortes para concatenação de strings.A segunda linha é construída de maneira semelhante, desta vez repetindo os tempos dos
_
caracteresU
.O corpo da casa é criado primeiro repetindo o
|
caractere duas vezes com²
e, em seguida, inserindo um espaço repetidoU
vezes nessa sequência no índice 1. A sequência resultante é então anexada a uma nova linha (R
) e a sequência é repetida váriasU/2-0.5
vezes.Finalmente, a última linha é construída da mesma maneira que a segunda.
fonte
Python 2 , 120 bytes
Experimente online! (mostra caracteres de escape em vez de cores reais, testados no terminal local)
fonte
n=2
.use the closest available
, embora você pareça usar as cores normais em vez das cores brilhantes. As cores brilhantes - eu acho - estariam, no entanto, mais próximas das cores desejadas.Yabasic , 220 bytes
Uma função anônima que recebe a entrada como um número inteiro
n
e gera 4 casas coloridas para o terminal.A falta de uma função de repetição ou substituição de string dedicada no yabsic realmente prejudica essa resposta.
Esta versão requer o modo gráfico e, portanto, não funciona no TIO.
Resultado
O valor de entrada para o abaixo é
n=7
.fonte
SmileBASIC, 115 bytes
Outro que também tem 115 bytes:
Os códigos de cores necessários (em RGBI de 4 bits) são 5, 11, 9, 7. Isso é gerado usando
!!J*8-J*2+5
Se J não for 0, este é13-J*2
(fornecendo 11,9,7) e, se for, o resultado será apenas 5.fonte