Problema
dada entrada a,b,c
onde a,b,c
são positivos números inteiros
e a > b > c
Faça uma caixa de qualquer caractere permitido com dimensões a x a
Centralize uma caixa com um caractere permitido diferente com dimensões b x b
dentro da anterior
Centralize uma caixa com outro caractere permitido diferente, com dimensões c x c
dentro da anterior
Caracteres permitidos são caracteres ASCII [a-zA-z0-9!@#$%^&*()+,./<>?:";=_-+]
Entrada a=6, b=4, c=2
######
#****#
#*@@*#
#*@@*#
#****#
######
Entrada a=8, b=6, c=2
########
#******#
#******#
#**@@**#
#**@@**#
#******#
#******#
########
Entrada a=12, b=6, c=2
############
############
############
###******###
###******###
###**@@**###
###**@@**###
###******###
###******###
############
############
############
Regras
- O código mais curto vence
- Lembre-se de que você pode escolher qual caractere imprimir dentro do intervalo especificado
- Novas linhas à direita aceitas
- Espaço em branco à direita aceito
- funções podem retornar string com novas linhas, array de strings ou imprimi-lo
Respostas:
Carvão , 14 bytes
Experimente online! Link é a versão detalhada do código.
fonte
Geléia ,
2019 bytes-1 byte usando o quick
`
para evitar um link, conforme sugerido por Erik, o Outgolfer.Um programa completo tirando uma lista
[a,b,c]
imprimindo as caixas usandoa:2 b:1 c:0
... na verdade, como é, funcionará para até 10 caixas, onde a caixa mais interna é
0
( por exemplo ).Experimente online!
Quão?
fonte
Python 2,
107103 bytesPrograma completo, imprime caixas com
a=2
,b=1
,c=0
Resposta ligeiramente pior, com compreensão de lista (104 bytes):
fonte
C #,
274322bytesTerrível mesmo para C #, então definitivamente posso jogar golfe, mas minha mente ficou em branco.
Versão completa / formatada:
fonte
j + m <= n + c
pode se tornarn + c > j + m
i + m >= n
paran < i + m
i+m
4 vezes, para que você possa adicioná-lo a uma variável no seufor
para poupar algumi
isoladamente, apenas inicializai=m
e comparai<b+m
; ou ... apenas usei
init,i=0
mas faça loopi<a
, adicioner[i]=new string('#',a),
ao ladoj=0
e adicione uma condição para verificari
sej
o loop está dentro dos limites (isso deve valer a pena, porque você perde todo o Linq).Haskell , 126 bytes
Experimente online!
fonte
JavaScript (ES6),
174170147 bytesTente
Explicação
fonte
C (gcc) , 97 bytes
Experimente online!
fonte
V ,
70, 44, 42 bytesExperimente online!
Isso é horrível. Eww.Muito melhor. Ainda não é o mais curto, mas pelo menos um pouco de golfe.Guardou dois bytes graças a @ nmjmcman101!
Hexdump:
fonte
MATL ,
2623222018 bytesEntrada é um vetor de coluna
[a; b; c]
. Usa a saída personagens2
,1
,0
.Experimente online!
Como um aparte, ele funciona para até dez caixas, não apenas três. Aqui está um exemplo com cinco caixas .
fonte
Mathematica, 49 bytes
Recebe entrada
[c, b, a]
. A saída éa=1, b=2, c=3
.Quão?
fonte
Grid
não fazString
nem fazPrint
-lo.PHP> = 7.1, 180 bytes
Neste caso, eu odeio que as variáveis começam com um
$
no PHPSandbox do PHP Online
fonte
$argv
como uma matriz? Você já tentou isso? Você já tentou ternários separados?Mathematica, 173 bytes
entrada
fonte
Python 2 , 87 bytes
Experimente online!
Aritmeticamente calcula os números a serem impressos adicionando números do formulário
111100
. Há muita feiúra, provavelmente espaço para melhorias.fonte
Java 8,
265252 bytes-13 bytes, substituindo caracteres por dígitos.
Definitivamente, você pode jogar golfe usando uma abordagem diferente.
Explicação:
Experimente aqui.
fonte
JavaScript (ES6), 112
Função anônima retornando uma sequência de linhas múltiplas. Caracteres 0,1,2
Menos golfe
fonte
PHP> = 5,6, 121 bytes
Execute
-nr
ou teste on-line .Loops combinados novamente ... Eu os amo!
demolir
fonte