Il est probable que quiconque a utilisé Twitter il y a quelques mois connaîtrait le «Howdy! Je suis le shérif de la mème X ". Où une simple image d'un shérif est dessinée avec des emoji et change pour s'adapter à un thème. J'ai donc pensé qu'il était temps pour le shérif de Code Golf. Le voici:
###
#####
###
###
###
#
#####
# # #
# # #
# # #
#
###
# #
# #
# #
# #
Celui-ci en particulier a des «pixels» qui font un caractère de large et un caractère de haut. Pour le générer, les arguments seront 1 et 1.
Et s'il devait être plus large que grand?
######
##########
######
######
######
##
##########
## ## ##
## ## ##
## ## ##
##
######
## ##
## ##
## ##
## ##
Il a une hauteur de 1, mais une largeur de 2.
Règles:
- Le défi consiste à écrire du code pour dessiner votre propre shérif de Code Golf, dans le moins de caractères possible.
- Utilisez n'importe quel langage de programmation que votre cœur désire.
- Votre code doit prendre deux arguments, tous deux des entiers, pour la hauteur et la largeur du shérif.
- La sortie doit être composée d'espaces blancs simples pour l'arrière-plan et de tout autre caractère que vous choisissez pour le shérif. (J'ai utilisé des hachages pour les cas de test, mais peu importe ce que vous utilisez).
- Il devrait être possible que la hauteur soit un entier négatif, inversant l'image.
- La largeur peut être un entier négatif, mais comme l'image est symétrique, elle sera identique à sa valeur positive.
- Les espaces blancs à la fin ne sont pas pertinents.
- Si l'un des arguments est 0, cette dimension est «aplatie» en une seule ligne ou colonne. La longueur de cette ligne est l'autre argument multiplié par la hauteur ou la largeur du shérif, respectivement.
- Si les deux arguments sont 0, les deux lignes sont «aplaties», laissant un seul caractère positif.
- Pas indispensable, mais veuillez inclure un lien vers un interprète en ligne tel que tio.run
- La sortie doit être une chaîne, sur plusieurs lignes, ou sortie vers la console.
Cas de test
1 haut, 1 large
###
#####
###
###
###
#
#####
# # #
# # #
# # #
#
###
# #
# #
# #
# #
2 haut, 1 large
###
###
#####
#####
###
###
###
###
###
###
#
#
#####
#####
# # #
# # #
# # #
# # #
# # #
# # #
#
#
###
###
# #
# #
# #
# #
# #
# #
# #
# #
1 haut, 2 large
######
##########
######
######
######
##
##########
## ## ##
## ## ##
## ## ##
##
######
## ##
## ##
## ##
## ##
2 haut, 2 large
######
######
##########
##########
######
######
######
######
######
######
##
##
##########
##########
## ## ##
## ## ##
## ## ##
## ## ##
## ## ##
## ## ##
##
##
######
######
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
-1 haut, 1 large
# #
# #
# #
# #
###
#
# # #
# # #
# # #
#####
#
###
###
###
#####
###
1 haut, -1 large
###
#####
###
###
###
#
#####
# # #
# # #
# # #
#
###
# #
# #
# #
# #
0 haut, 0 large
#
1 haut, 0 large
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
0 haut, 2 large
##################
Amusez-vous bien!
Réponses:
JavaScript (ES6), 171 octets
Prend une entrée dans la syntaxe de curry
(width)(height)
. Renvoie un tableau de chaînes.Essayez-le en ligne!
Comment?
Seule la moitié gauche du shérif est codée sous forme de masques binaires binaires, y compris la colonne du milieu:
la source
Python 2 ,
228218202 202189173 octetsEssayez-le en ligne!
Alternatives:
Python 2 , 173 octets
la source
Perl 5 ,
169166157 157 octetsEssayez-le en ligne!
Peut-être pourrait-on gagner plus en tripotant un peu.
la source
split
, je l'utilise maintenant et j'ai économisé deux octets. Également rasé en perdant le'
s autour des index. Je n'ai pas pu me mettresay
au travail cependant.-a
, perdu 9 octets de plus avec cela.say
avec-M5.010
, mais pas tout le monde aime, vous pouvez utiliser à la-l
place et conserverprint
, mais sinon, vous pouvez utiliser une nouvelle ligne littérale ou$_.$/
pour -1. Ravi de voir un autre golfeur Perl!say
ne fonctionnait pas car la nouvelle ligne a été ajoutée dans lemap
afin de l'utiliser nécessite un appel légèrement différent. J'ai également réalisé que lorsque votre code se termine par une variable et que vous utilisez-p
ou quelque chose que vous pouvez utiliser@;
car il comprend cela: Essayez-le en ligne! J'espère que cela ne vous dérange pas mes commentaires!Fusain , 61 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Saisissez les dimensions.
Si la hauteur n'est pas nulle, bouclez sur la moitié droite du shérif ...
... en répétant la hauteur absolue nombre de fois ...
... si la largeur est différente de zéro, répéter chaque caractère le nombre absolu de fois, sinon a
#
.Mais si la hauteur est nulle, répétez
#
5 fois la largeur absolue, mais au moins 1#
.Réfléchissez pour produire la moitié gauche du shérif.
Si la hauteur est négative, retournez le shérif.
la source
Python 2 ,
217216 octetsEssayez-le en ligne!
Un riff Pythonique sur l'approche d'Arnauld .
Pouah! Fonctionne maintenant pour toutes les conditions de bord ...
la source
Nettoyer ,
299275272 octetsEssayez-le en ligne!
la source
Powershell,
174170 octetsInspiré par le Javascript d' Arnauld
Non golfé, expliqué et script scripté:
la source