Amanhã, 23 de novembro, é o dia de ação de graças nos Estados Unidos. Para preparar, você precisa preparar alguns perus ASCII. No entanto, como você está atrasado no planejamento, precisa de um programa (ou função) para ajudá-lo com quantos pássaros você precisa preparar.
.---. _
.' './ )
/ _ _/ /\
=(_____) (__/_/==
===================
Os perus que você encontrou são bastante pequenos, então você descobriu as seguintes proporções - um peru será alimentado:
- quatro pessoas que só gostam de carne branca e três pessoas que só gostam de carne escura
- ou sete pessoas que não se importam
- ou uma combinação dos mesmos.
Ou seja, há um total de 4 porções de carne branca e 3 porções de carne escura em qualquer peru. Além disso, você não pode comprar e cozinhar um peru parcial.
Por exemplo, para 3 pessoas que gostam apenas de carne branca, 6 pessoas que gostam apenas de carne escura e 3 pessoas que não se importam, você precisará de dois perus. Isso dá 8 porções de branco e 6 porções de escuro, o que é suficiente para satisfazer a todos e ter um pouco de carne branca restante:
.---. _ .---. _
.' './ ) .' './ )
/ _ _/ /\ / _ _/ /\
=(_____) (__/_/== =(_____) (__/_/==
=====================================
Para 20 pessoas que não se importam, você precisará de três perus e restará um pouco de branco ou escuro:
.---. _ .---. _ .---. _
.' './ ) .' './ ) .' './ )
/ _ _/ /\ / _ _/ /\ / _ _/ /\
=(_____) (__/_/== =(_____) (__/_/== =(_____) (__/_/==
=======================================================
E assim por diante.
Regras
- As três entradas podem estar na ordem que você escolher e em qualquer formato conveniente . Indique na sua resposta como a entrada é recebida.
- Nunca haverá a exigência de mais de 25 perus (portanto, um máximo de 175 pessoas para alimentar).
- Novas linhas à esquerda / à direita ou outro espaço em branco são opcionais, desde que os caracteres sejam alinhados 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, retornada como uma lista de cadeias, retornada como uma única cadeia, 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.
Respostas:
Befunge-93,
231224 bytesExperimente online!
Os três valores são lidos a partir de stdin na ordem: carne branca, carne escura, não importa.
fonte
APL (Dyalog) ,
120118104 bytes14 bytes salvos graças a @ Adám
Experimente online!
O branco e o escuro exigentes estão à direita e os não exigentes à esquerda.
Pena que a maior parte da contagem de bytes é obtida pela string atualmente.
Quão?
⍵,⍺++/⍵
- cria uma variedade de whity, dark e soma de todos eles, mais não pickys4 3 7÷⍨
- divida por quantos deles recebe seus desejos de uma galinha⌈/
- faça a estimativa mais alta dos três - por isso, se tivermos uma quantidade extremamente alta de caçadores de carne escura, eles não serão deixados de lado⌈
- teto, caso exista apenas meia galinhaEm seguida, criamos uma string, anexamos-a e
⊂
, em seguida, repetimos a matriz eclosed com a qual as galinhas calculadas criam/
e finalmente concatenamos todas as galinhas,/
.fonte
'='⍪⍨' .-_''/)\=('[4 19⍴10 10⊤¯35+⎕UCS'###(##-:77-&(#F*####+,&0N&&)#,N0Z&d++#']
com⎕IO←0
.Python 2 , 142 bytes
Experimente online!
-16 bytes graças ao Lynn
-4 bytes graças ao Sr. Xcoder
e de volta a um lambda xD
fonte
SOGL V0.12 , 65 bytes
Experimente aqui!
Ordem de entradas é
white
,dark
e entãoeither
.fonte
Python 2 ,
197189174 bytesgraças a Erik the Outgolfer por -12 bytes
graças a Jonathan Frech por -1 byte
Experimente online!
fonte
Carvão , 76 bytes
Experimente online! Link é a versão detalhada do código. Explicação:
Imprima um peru recuado com 1 espaço.
Imprima a tabela.
Digite o número de comedores de carne branca e escura.
Repita um a menos do que o limite máximo de: a) um terço do número de comedores de carne escura; b) um quarto do número de comedores de carne branca; c) um sétimo do número de clientes.
Faça uma cópia da Turquia.
fonte
Excel VBA,
222219211198 bytesFunção de janela imediata VBE anônima que recebe entradas do intervalo
[A1:C1]
com a ordem de carne branca, carne escura e indiferente nessa ordem e sai para o intervalo[D1]
.Inicialmente, a solução encontra o número correto de perus e depois repete o padrão de peru muitas vezes. Idealmente, isso seria enviado diretamente para a janela imediata do VBE, como mostra a função abaixo
Essa versão produz inicialmente a resposta correta, no entanto, é imediatamente formatada automaticamente pelo compilador, como
_
é o caractere de continuação de linha e, portanto, é movida para ter apenas umcaractere (espaço) à esquerda, quebrando o padrão.
Exemplo mostrado abaixo para maior clareza
Para corrigir isso, o último caractere de espaço (
, caractere 160, Alt + 255)
, caractere 32) antes da
_
linha um da saída ser substituído por um espaço sem quebra (-3 bytes para uso da
1
instrução de divisão delimitada-8 bytes para usar movendo
=
para a divisão e usando adição de cadeia por concatenação-13 bytes para uso de um espaço sem quebra para impedir a autoformatação da saída
fonte
Kotlin ,
207198 bytesgraças a Taylor Scott por -7 bytes
Isso ainda não funciona no TIO , pois requer o Kotlin 1.1Experimente online!
fonte
JavaScript (ES6),
180179 bytesProduz uma matriz de seqüências de caracteres.
Mostrar snippet de código
JavaScript (ES6),
182181 bytesProduz uma única sequência.
Mostrar snippet de código
-1 byte (Arnauld): em
a+3>>4
vez de(a+3)/4)
fonte