J'adore les sardines, je n'en ai jamais assez, tout comme mon ordinateur, l'Omnilang 5000, qui n'a pas de langage.
Pour donner à mon ordinateur le plaisir de goûter aux sardines, j'ai décidé de lui alimenter un certain nombre de programmes capables d'afficher sur l'écran des boîtes de sardines dans diverses orientations et de montrer jusqu'à dix sardines.
Dans ce défi, vous serez responsable de la création des programmes en fonction de ces paramètres:
L'entrée
Un nombre (compris entre 0 et 10) et une lettre de l'un des "LR" suivants (représentant respectivement la gauche ou la droite) Par exemple: 3L
ou 5R
; comment cela est entré dans le programme est à vous.
Sortie
Une boîte ouverte de sardines avec les sardines faisant face à la direction indiquée, avec la clé (représentée par le caractère " %
") et le couvercle pelé (boîte métallique enroulée à la fin représentée par le caractère " @
") situé au sommet de la boîte.
- Toutes les sardines doivent faire face à la direction indiquée par l'entrée.
- Toutes les sardines auront un corps long de cinq caractères entre le branchie ("
)
" ou "(
") et la queue "><
" - La clé et le rouleau de couvercle pelé seront toujours dans le sens opposé à celui des sardines.
- La boîte doit avoir une apparence 3D, comme indiqué ci-dessous dans les exemples.
- La hauteur minimale de la boîte est de 3 sardines en hauteur. Donc, si un nombre est inférieur à 3, une boîte de 3 sardines de hauteur doit être indiquée, avec le nombre entré de sardines. Sinon, la boîte doit correspondre au nombre de sardines indiqué dans l’entrée. Donc, l'entrée de
0R
ou0L
montrera une boîte de sardine vide. - Toute autre entrée qui ne peut pas être validée ne montrera rien.
Par exemple, pour " 3L
"
__________
(__________@%
|<*)_____><||
|<*)_____><||
|<*)_____><||
'==========''
Pour " 7R
"
__________
%@__________)
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
''=========='
Pour " 2L
"
__________
(__________@%
|<*)_____><||
|<*)_____><||
| ||
'==========''
Pour " 0R
"
__________
%@__________)
|| |
|| |
|| |
''=========='
" 0L
"
__________
(__________@%
| ||
| ||
| ||
'==========''
Une entrée invalide ne retournera rien ...
- C'est du code golf, donc le plus petit nombre de personnages gagnera ce défi.
- Aucune échappatoire comme d'habitude.
-v
indicateur) et la direction ("L" ou "R") sous "donner entrée au programme "puis cliquez sur" donner ". (J'ai édité la réponse dans l'espoir de le rendre plus clair.)Emojicode ,
456448 octetsPrend 2 arguments: le premier est les lignes, le second est la direction (0 ou 1).
Essayez-le en ligne!
Version "non lisible" et version pseudocode "lisible":
la source
Python 2 , 155 octets
Essayez-le en ligne!
L'entrée consiste en une longueur de 2 tuple. Le premier élément indique le nombre de sardines. Le deuxième élément indique la direction;
0
pour gauche,1
pour droite.-84 octets utilisant la magie lambda grâce à notjagan et officialaimm
la source
0 to 10
. PS` -10` imprime une boîte vide, car cela signifie qu'il y a des10
sardines, mais vous les avez déjà mangées. : DPêche , 1311 octets
Prend les entrées
stdin
sous la forme:La pêche n’est pas sur Try It Online , mais il existe un interprète pour cela en Ruby sur la page des esolangs liée.
C'est le premier programme que j'ai créé dans Pêche - en fait, c'est le premier programme que j'ai créé dans un langage 2D -, donc il peut probablement être beaucoup plus court. Les astuces de golf sont les bienvenues (même si je ne serais pas surpris si personne n'en donnait, vu que je ne sais même pas ce que je viens d'écrire).
Voici un GIF du chemin que le programme prend pour l'entrée
1R
(désolé pour la qualité médiocre):(Ceci a été créé à l'aide d'un interprète que j'ai créé; il n'y a pas de programme disponible au public qui "visualise" la pêche, à ma connaissance)
la source
Charbon de bois , 49 octets
Essayez-le en ligne! Le lien est vers la version verbeuse du code. Le premier argument est le nombre de sardines, le second est la direction (0 = gauche, 1 = droite).
la source
SOGL V0.12 ,
5148 octetsEssayez-le ici!
La première entrée est le décompte et la deuxième, à gauche ou à droite, représentée par 1 ou 0.
Explication:
la source
R,
334 octets311 octetsFunction prend une valeur numérique pour n et une chaîne pour la direction.
C’est ma première publication, je vais donc admettre que je ne suis pas sûr de savoir comment compter les octets de code.
la source
C ++,
307296292 octetsUtilisation:
-11 octets enregistrés grâce à l'utilisateur ThePirateBay -4 octets grâce à Zacharý
la source
#define
directive? Je ne l'ai pas testé mais il semble que ce ne soit pas nécessaire.c!=82
êtrec-82
dans tous les cas où vous l'utilisez?Python 2 , 287 octets
Essayez-le en ligne!
L' entrée est séparées par une virgule tuple de numéros de ce format:
2, 1
. Le premier nombre est la quantité de poisson et le second est 0 pour gauche et 1 pour droite.Cela a commencé comme une tentative de sur-jouer l’autre réponse (je pensais pouvoir le faire), mais ça craint. : P Si quelqu'un peut faire la queue et la queue et aider à jouer au golf (je le blâme sur le fait qu'il soit midi maintenant), je serais heureux.
la source
C # (.NET Core), 289 octets
Essayez-le en ligne!
Prend un entier et un caractère (L, R) en tant que paramètres et génère la chaîne résultante.
Pouah. A dû faire face à des constantes de chaînes ennuyeuses, malheureusement, vous ne pouvez pas le faire
string * length
en C #. Et la méthode avecnew string(char, length)
n'aurait pas valu le coût en octets.L'algorithme fonctionne comme suit:
h > i
nous y mettons une sardine. Sii >= h
, il y aura un espace vide où une sardine serait normalement.la source
Perl 5 , 167 + 1 (-n) = 168 octets
Essayez-le en ligne!
la source
JavaScript (ES6),
283273269251 octetsSauvegardé 10 octets grâce à @WallyWest
4 octets enregistrés en supprimant les parents supplémentaires
Enregistrement de 18 octets grâce à @ThePirateBay
Souffre de l'absence d'inversion de chaîne dans la bibliothèque standard. Définit une fonction qui prend des entrées
n
pour le nombre de poissons etd
pour la direction. Lance sid
n'est pas "L" ou "R".Essayez-le en ligne
la source
if...else if
supplémentaires en extrayant une fonction et en modifiant les ternaires imbriqués avec une affectation de déstructuration. Je suis à court d'idées ..._
function twice, once for the 10 underscores (which gets used twice), once for the 10 equal signs, so having it in a function saves me a byte. And unless I'm using template strings wrong, using them instead of concatenation is 3 bytes more.