Eu amo sardinhas, não consigo obter o suficiente delas, e meu computador, o Omnilang 5000, que é independente da linguagem.
Para dar ao meu computador a alegria de experimentar sardinha, decidi alimentá-lo com vários programas que são capazes de exibir na tela latas de sardinha em várias orientações e mostrar até dez sardinhas.
Neste desafio, você será responsável por criar os programas com base nesses parâmetros:
A entrada
Um número (entre 0 e 10) e uma letra de um dos seguintes "LR" (representando esquerda ou direita, respectivamente) Por exemplo: 3L
ou 5R
; depende de você como isso é inserido no programa.
Saída
Uma lata aberta de sardinha com as sardinhas voltadas para a direção indicada, com a chave (representada pelo %
caractere " ") e a tampa descascada (lata enrolada no final representada pelo @
caractere " ") localizada no topo da lata.
- Todas as sardinhas devem estar voltadas para a direção indicada pela entrada.
- Todas as sardinhas terão corpos com cinco caracteres entre a guelra ("
)
" ou "(
") e a cauda "><
" - A chave e o rolo da tampa descascada sempre estarão voltados para a direção oposta às sardinhas.
- A lata deve ter uma aparência 3D, como mostrado abaixo nos exemplos.
- A altura mínima da lata é de 3 sardinhas de altura. Portanto, se um número for menor que 3, uma lata de 3 sardinhas de altura deve ser mostrada, com o número de sardinhas inserido. Caso contrário, o estanho deve ser o número de sardinhas alto indicado na entrada. Portanto, insira
0R
ou0L
mostre uma lata de sardinha vazia. - Qualquer outra entrada que não possa ser validada não mostrará nada.
Por exemplo, para " 3L
"
__________
(__________@%
|<*)_____><||
|<*)_____><||
|<*)_____><||
'==========''
Para " 7R
"
__________
%@__________)
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
''=========='
Para " 2L
"
__________
(__________@%
|<*)_____><||
|<*)_____><||
| ||
'==========''
Para " 0R
"
__________
%@__________)
|| |
|| |
|| |
''=========='
" 0L
"
__________
(__________@%
| ||
| ||
| ||
'==========''
Entrada inválida não retornará nada ...
- Isso é código de golfe, então o menor número de caracteres vencerá esse desafio.
- Sem brechas, como de costume.
-v
bandeira) e a direção ("L" ou "R") em "dar entrada para o programa "e clique em" dar ". (Eu editei a resposta para fazer espero que mais clara.)Emojicode ,
456448 bytesToma 2 argumentos: o primeiro é linhas, o segundo é a direção (0 ou 1).
Experimente online!
Versão não legível "legível" e versão de pseudocódigo:
fonte
Python 2 , 155 bytes
Experimente online!
A entrada consiste em uma tupla de comprimento 2. O primeiro elemento indica o número de sardinhas. O segundo elemento indica a direção;
0
para a esquerda,1
para a direita.-84 bytes usando magia lambda, graças a notjagan e officialaimm
fonte
0 to 10
. O PS` -10` imprimiria lata vazia, pois significa que havia10
sardinha, mas você já as comeu. : DPesca , 1311 bytes
Recebe entrada
stdin
no formato:A pesca não está disponível no Try It Online , mas há um intérprete no Ruby na página de esolangs vinculada.
Este é o primeiro programa que eu criei no Fishing - na verdade, é o primeiro programa que eu criei em qualquer linguagem 2D - então provavelmente pode ser muito mais curto. Dicas de golfe são bem-vindas (embora eu não ficasse surpreso se ninguém desse alguma, considerando que nem eu sei o que diabos acabei de escrever).
Aqui está um GIF do caminho que o programa leva para entrada
1R
(desculpe pela baixa qualidade):(Isso foi criado usando um intérprete que eu criei; não existem programas publicamente disponíveis que "visualizem" o Fishing, tanto quanto eu sei)
fonte
Carvão , 49 bytes
Experimente online! Link é a versão detalhada do código. O primeiro argumento é o número de sardinhas, o segundo é a direção (0 = esquerda, 1 = direita).
fonte
SOGL V0.12 ,
5148 bytesExperimente aqui!
Espera que a entrada seja a 1ª sendo a contagem e a 2ª - esquerda ou direita representada por 1 ou 0.
Explicação:
fonte
R,
334 bytes311 bytesA função assume um valor numérico para n e uma sequência para a direção.
Esta é a primeira vez que publico, então admito que não tenho certeza de como contar bytes de código.
fonte
C ++,
307296292 bytesUso:
-11 bytes economizados graças ao usuário ThePirateBay -4 bytes graças a Zacharý
fonte
#define
diretiva? Não testei, mas parece que não há necessidade deles.c!=82
serc-82
em todos os casos em que você o usa?Python 2 , 287 bytes
Experimente online!
Entrada é uma vírgula separados tuple dos números deste formato:
2, 1
. O primeiro número é a quantidade de peixes e o segundo é 0 para a esquerda e 1 para a direita.Isso começou como uma tentativa de superar a outra resposta (eu pensei que podia), mas é péssimo. : P Se alguém puder fazer cara de pau e ajudar e jogar golfe (eu culpo as 12 horas agora), ficaria feliz.
fonte
C # (.NET Core), 289 bytes
Experimente online!
Pega um número inteiro e um caractere (L, R) como parâmetros e gera a string resultante.
Ugh. Teve que lidar com algumas constantes irritantes de string, infelizmente você não pode simplesmente fazer
string * length
em C #. E o método comnew string(char, length)
não teria valido o custo de bytes.O algoritmo funciona da seguinte maneira:
h > i
colocarmos uma sardinha dentro dela. Sei >= h
houver um espaço vazio onde normalmente seria uma sardinha.fonte
Perl 5 , 167 + 1 (-n) = 168 bytes
Experimente online!
fonte
JavaScript (ES6),
283273269251 bytesGuardado 10 bytes graças a @WallyWest
4 bytes salvos removendo parênteses extras
Guardado 18 bytes graças a @ThePirateBay
Sofre da falta de reversão de cadeia na biblioteca padrão. Define uma função que recebe entradas
n
para o número de peixes ed
para a direção. Lança sed
não for "L" ou "R".Experimente online
fonte
if...else if
ternários para aninhados com uma atribuição de desestruturação. Eu estou fora de ideias embora ..._
função duas vezes, uma vez para os 10 sublinhados (que são usados duas vezes), uma vez para os 10 sinais de igual, portanto, tê-la em uma função economiza um byte. E a menos que eu esteja usando seqüências de caracteres de modelo incorretas, usá-las em vez de concatenação é de 3 bytes a mais .