Me faça uma pizza
Como é sábado (UTC) e estou com fome, gostaria de uma fatia de pizza. Vou fazer um pedido e eu gostaria de uma boa pizza quente de arte ascii . Até o desafio?
O drive-thru
Farei meu pedido onde quer que esteja o drive-thru, seja STDIN, um parâmetro de função, um argumento de linha de comando, mas não vou colocá-lo em uma variável para você. (As expressões de função JS devem ser atribuídas a uma variável.)
Meu pedido terá 2 partes. O primeiro será um número inteiro positivo diferente de zero de 3a 6. Este é o tamanho da minha pizza. Por exemplo, uma 6pizza de tamanho sem coberturas se pareceria com:
Um tamanho 5:
Um tamanho 4:
Minhas coberturas serão uma sequência de letras MAIÚSCULAS. Aqui estão os valores possíveis:
P - Calabresa
S - Linguiça
B - Pimentos de banana
Você deve colocá-los na pizza em algum lugar. Se eu pedir um tamanho 4 e PSPCJ, então esta é uma saída válida:
Não sou muito exigente sobre onde estão minhas coberturas na pizza, desde que não estejam na crosta ou uma sobre a outra.
A janela de recolhimento
Irei a muitos lugares para buscar minha pizza, incluindo STDOUT, um arquivo, o valor de retorno de uma função, mas não uma variável.
Coisas extras
Isso está marcado como code-golf, para que a resposta mais curta em bytes seja vencida!
Não se preocupe com entradas inválidas (coberturas> espaço para pizza, etc.)
Veja minha resposta (JS ES6) abaixo para um exemplo (espero que você possa fazer melhor)
Umm, então você também pode pegar sua pizza no Drive-thru?
Você é exigente quanto a mim preenchendo os cantos superior direito e inferior direito da caixa de pizza com espaço em branco? ;)
@DLosc não, qualquer espaço em branco à direita no final de qualquer linha (incluindo uma nova linha à direita no final da saída) é opcional, mas não é obrigatório.
Pode a pizza tem mais de uma para uma das coberturas ̶ Então se você gosta de abacaxi:? ̶ ̶ ̶5̶,̶ ̶N̶N̶N̶̶ é também um válido entrada ̶ (ou deveria ser ̶ ̶5̶,̶ ̶N̶̶ Em vez) ̶ ̶ Além disso, onde estão os cogumelos ..? :( EDIT: o Nevermind sobre a primeira pergunta, eu vejo seus casos de teste tem 2x P.
Posso postar um link de pedido ? xD
Pip , 87 81 75 bytes
74 bytes de código, +1 para -lsinalizador.
Recebe entrada como argumentos da linha de comando. Experimente online!
eé a linha superior, como /=====\. Se você reverter, também é a linha inferior.
yé a borda esquerda, como ["/" "|" "|" "\"]. Se você inverter, também será a borda direita.
Em seguida, construímos o meio pegando bas coberturas, preenchendo-as com espaços de comprimento (a+1)*(a-2)(onde aestá o tamanho) e agrupando-as em uma lista de linhas.
Finalmente, imprimimos a linha superior com um espaço à esquerda; concatene o meio entre yà esquerda e RVyà direita e imprima isso; e imprima a linha inferior com um espaço à esquerda.
Isso funciona com uma pizza de queijo (sem coberturas)?
@ programmer5000 Sim - nesse caso, o segundo cmdline arg deve ser uma string vazia (se você estiver executando a partir de uma linha de comando real, precisará citá-la).
Python 2 , 202,198,190,177,162,157, 146 bytes
Ei, você pode atribuir '\\', '|' e '/às variáveis de golfe fora de alguns bytes? É assim que eu raspei muito a minha resposta JS.
Eu só estou trabalhando nisso !!!!
— Keerthana Prabhakaran 01/04/19
Além disso, você pode substituir o primeiro (n-1)por (--n), os n>4por n>3, (n+1)com (n+2)e o final (n-1)por npara reduzir 4 bytes?
— Programmed5000
python não suporta --operador!
— Keerthana Prabhakaran / 01/17 /
Python 3 , 224 213 195 bytes
Começa pegando uma pizza deformada, de largura 2 e altura 5, estica-a horizontalmente e ajusta-a verticalmente conforme apropriado; depois, substitui o interior por coberturas ou espaços depois que eles acabam.