Un octothorpe (également appelé signe numérique, dièse ou hashtag, ou dièse) est le caractère ASCII suivant:
#
N'est-ce pas une forme amusante? Permet de faire de plus grandes versions de celui-ci! Alors, voici votre défi:
Etant donné un entier positif N , la sortie d' un hashtag ASCII de taille N .
Par exemple, un hashtag ASCII de taille 1 ressemble à ceci:
# #
#####
# #
#####
# #
Les espaces de fin sur chaque ligne sont autorisés, mais pas obligatoires.
L’entrée sera toujours un entier positif valide, vous n’aurez donc pas à traiter des nombres non négatifs, négatifs ou 0. Votre sortie peut être dans n’importe quel format raisonnable. les nouvelles lignes, une matrice de caractères 2D, l'écriture dans un fichier, etc.
Cas de test
2:
## ##
## ##
##########
##########
## ##
## ##
##########
##########
## ##
## ##
3:
### ###
### ###
### ###
###############
###############
###############
### ###
### ###
### ###
###############
###############
###############
### ###
### ###
### ###
4:
#### ####
#### ####
#### ####
#### ####
####################
####################
####################
####################
#### ####
#### ####
#### ####
#### ####
####################
####################
####################
####################
#### ####
#### ####
#### ####
#### ####
5:
##### #####
##### #####
##### #####
##### #####
##### #####
#########################
#########################
#########################
#########################
#########################
##### #####
##### #####
##### #####
##### #####
##### #####
#########################
#########################
#########################
#########################
#########################
##### #####
##### #####
##### #####
##### #####
##### #####
Puisqu'il s'agit d'un code-golf, essayez d'écrire la solution la plus courte possible, et surtout amusez-vous!
Réponses:
MATL ,
20161211 octets3 octets grâce à DJMcMayhem.
1 octet grâce à Luis Mendo.
Essayez-le en ligne!
Explication
la source
Zc
au lieu de35*c
et~
(logique NOT) au lieu de0=
Q
lieu de2<
!t*
à&*
. Ce dernier signifie "multiplication à une entrée", qui multiplie (élément par élément) l'entrée par sa transpositionBrain-Flak , 420 octets
Essayez-le en ligne!
Non, le score de 420 n'était pas intentionnel. Je promets. Version lisible:
la source
6502 code machine (C64),
5956 octetsDémo en ligne
Utilisation:
SYS49152,N
où N est un nombre compris entre 1 et 255.(les valeurs supérieures à 4 seront déjà trop grandes pour l'écran C64, à partir de 8, la sortie est même trop large)
Explication :
la source
Haskell , 43 octets
Essayez-le en ligne!
Affiche une liste de chaînes.
la source
Python 2 , 55 octets
Essayez-le en ligne!
Ceci retourne une liste 2D de caractères.
Python 2 , 65 octets
Essayez-le en ligne!
Python 2 , 66 octets
Essayez-le en ligne!
la source
f(i);
stocker le résultat dans un temp et d'yprint
accéder.f(i)
impressions etprint
en Python 2 ajoute une nouvelle ligne: PCharbon de bois , 21 octets
Essayez-le en ligne! Le lien est vers la version verbeuse du code. J'avais initialement essayé une approche bitmap mignonne:
Essayez-le en ligne! Le lien est vers la version verbeuse du code. Explication: Fonctionne en considérant le
#
comme un tableau de 5 × 5 carrés. Les carrés qui se trouvent dans des lignes ou des colonnes impaires doivent être remplis.la source
J, 22 octets
Essayez-le en ligne!
Beaucoup de similitudes avec l'autre réponse de J, bien que je ne comprenne pas bien les trains avec beaucoup de noms, ma réponse a donc trois octets potentiels à couper (deux parens et un réflexif
~
).Explication
Générer l'octothorpe
L'octothorpe est composé de tout ce qui est entre parenthèses, reproduit ci-dessous pour plus de commodité.
Une bonne partie de ma fabrication de l'octothorpe est un abus de la façon dont J remplit ses tableaux quand ils ne sont pas assez longs.
21,0
crée simplement le tableau21 0
.5$
remodèle ce tableau dans un tableau 5-atome:21 0 21 0 21
.#:
convertit chaque atome en un nombre binaire. Puisqu'il#:
fonctionne sur chaque atome, la sortie est une matrice. Chacun21
est remplacé par1 0 1 0 1
comme prévu, mais chacun0
est remplacé par0 0 0 0 0
! Cela est dû au fait que les tableaux de J Pads ne sont pas assez longs pour correspondre à la forme du tableau 2D résultant, ce qui est forcé à5 5
cause des1 0 1 0 1
lignes. Heureusement, pour les nombres avec lesquels nous plaçons0
, nous obtenons la matrice résultante'# '{~
convertit chacun1
en espace et0
en#
.{
signifie "prendre" et "~
signifie" permuter les arguments dyadiques, donc J regarde chaque élément de la matrice comme des indices pour la chaîne,'# '
ce qui signifie que chacun0
devient l'élément zéro,#
et que chacun1
devient le premier élément, un espace. Cela donne la taille un octothorpe.Redimensionner l'octothorpe
Il s’agit simplement de copier les
n
temps le long de chaque axe, en utilisantle premier
#
(qui fait partie d'un crochet) et#~"1]
.#
copies le long de l'axe horizontal et#"1
copies le long de l'axe vertical.la source
##"1&('# '{~#:5$21,0)
enregistre un octet.CJam,
272625 octetsEssayez-le en ligne!
Fait amusant: cela a commencé à l'origine avec 29 octets, et les octets ont été supprimés un par un depuis, alternant entre le mode bloc et le mode programme complet.
Explication:
la source
Husk ,
12 à10 octetsEssayez-le en ligne! Notez l'espace de fuite.
Explication
la source
J ,
2319 octetsSauvegardé 4 octets grâce à @LeakyNun.
Essayez-le en ligne!
Explication
la source
[:|:f
pourrait être0|:f
' # '{~]#"1]#+./~@i:@2
sauve un octetf=:' #'{~1=]+./~@#i:@2
Jelly ,
141311 octets2 octets sauvés grâce à @JonathanAllen
Un lien monadique renvoyant une liste de lignes. Notez l'espace de fuite.
Essayez-le en ligne!
Comment ça marche
la source
µ
(ou si⁸
vous auriez pu en avoir à la place) ...5ẋ€Ẏ&þ`ị⁾ #
5Ḷẋ€
faut-ilµ
, mais pas5ẋ€
?Ẏ
agirn
et de passer ensuite à droiteẋ€
, car avec une chaîne principale nilad-dyad étant appelée monadiquement, ce n'est pas nécessaire. Cependant, je ne suis pas tout à fait sûr de savoir comment`
semble alors placer 5 (ou peut-être la liste de cette longueur) à droite du document déposé&
.Jeu Game Maker Language,
138108 octetsDestiné à un script (nom du fabricant pour des fonctions définies par l'utilisateur), ainsi le
n=argument0
etreturn s
. 20 octets pourraient être rasés en prenantn
directement à partir de l'instance actuelle et en utilisants
comme résultat. (L’instance obtient ces variables de toute façon car elles n’ont pas été déclarées avecvar
).Méfiez-vous bien sûr
#
des éléments graphiques de Game Maker utilisés comme caractères de substitution à la nouvelle ligne. Vous voudrez peut-être les préfixer par\
si vous souhaitez afficher à l'écran;)Notez également que j'utilise la version de GML de Game Maker 8.0; les versions GML modernes pourraient avoir des fonctionnalités qui pourraient économiser des octets supplémentaires.
Quelques idées fournies par des amis wareya et chordbug.
la source
Perl 5 , 49 + 1 (-p) = 50 octets
Essayez-le en ligne!
Comment?
Stocke implicitement l'entrée dans $ _ via l'
-p
indicateur. Commencez par la ligne de base la plus élémentaire possible" # # "
avec sa nouvelle ligne. Répliquez chacun de ces caractères par le numéro saisi. Puis répliquez cela par le numéro d'entrée pour former la partie supérieure de l'octothorpe, en stockant tout cela dans $ . Puis ajoutez la ligne avec tous les caractères remplacés par «#» fois le nombre saisi. Puis ajoutez la section supérieure. Ne ces deux dernières phrases un total de deux fois. La sortie du $ est implicite dans le-p
drapeau.la source
05AB1E ,
252221 octetsEssayez-le en ligne!
-1 parce qu'Emigna déteste translittérer et, heureusement, me rappelle que je devrais aussi: P.
Je dois être un meilleur moyen que de le bitmoder ... Encore en train de travailler.
la source
5ôεS„# èJ¹F=
enregistre un octet.JavaScript (ES6), 79 octets
Port de l'approche bitmap que j'avais utilisé pour ma tentative originale de charbon de bois.
la source
Python 2 ,
124,116,113,112,98,9666 octetsNouveau (Crédit: HyperNeutrino):
Vieux:
Essayez-le en ligne!
De toute évidence pas la solution la plus courte, mais je pense que c'est décent. Tout commentaire serait apprécié!
la source
a,b,c=input()," #"
devrait sauver quelques octets.a,b,c=input(),"#"," "
? Ce qui n'est pas plus court ... J'apprécie l'aide!a,b="# "
fonctionne.a=input();b,c="# "
va travailler et économiser des octets(i==2)
et ajouter un espace au début.Brain-Flak ,
338332 octets6 octets grâce à Riley.
Essayez-le en ligne!
Version plus "lisible"
Essayez-le en ligne!
la source
(({})<>)(())<>({}<>)
au début peut être remplacé par(({}<>)<(())>)
SOGL (SOGLOnline commit 2940dbe) , 15 octets
Pour l'exécuter, téléchargez -le et exécutez le code dans le dossier
index.html
fichier.Utilise ça à ce commit (et avant)
*
répète chaque caractère, pas la chaîne entière.Explication:
Bonus: ajoutez 2 entrées pour des longueurs X et Y séparées!
la source
ø─Ζ┘Χ⁴‘
pousse cela si?#
et les données base-2 requises pour cette chaîne.brainfuck , 224 octets
Essayez-le en ligne!
Making-of
J'ai essayé de construire ce code à la main et j'ai passé pas mal de temps. J'ai donc décidé de faire un transpiler en Python.
Voici le code que j'ai entré pour faire ce code:
Essayez-le en ligne!
la source
C (gcc) ,
9893 octets5 octets grâce à Felix Palmen.
Essayez-le en ligne!
la source
Gaia , 9 octets
A peu près un port de Zgarb est excellente réponse
Essayez-le en ligne!(le pied de page est juste assez imprimé, le programme lui-même renvoie une liste 2D de caractères)
Explication
la source
Befunge ,
105 à103 octetsEssayez-le en ligne!
la source
Python,
888477 octetsEssayez-le en ligne!
Retourne la liste 2D des caractères.
la source
PowerShell ,
72686360 octetsEssayez-le en ligne!
Prend les entrées
$a
. Ensuite, nous faisons un tas de manipulationsmagiques dechaînes et de tableaux.Vous pouvez détacher les parties de l'explication en commençant par le bas pour voir comment la sortie est construite. J'espère donc que mon explication a un sens.
la source
Haskell, 72 octets
Retourne une liste de chaînes. Essayez-le en ligne!
Comment ça marche:
la source
Mathematica, 63 octets
Explication
(1)
-##
analyse dansTimes[-1, ##]
la source
ArrayFlatten
est très beau.Python 2, 113 octets
Comme un tableau de chaînes:
Comme art ASCII:
Python 3, 115 octets
Python 3, 117 octets
Comme un tableau de booléensPython 2, 75 octets
la source
Java 8, 103 octets
Lambda accepte
Integer
et imprime l'octothorpe au format standard. Cast àConsumer<Integer>
.Essayez-le en ligne
Lambda Ungolfed
L’observation clé ici est que, sur une grille de 5 sur 5 de n sur n cellules, octothorpes apparaissent chaque fois que le numéro de ligne ou de colonne (sur la base 0-) est impair. Je suis à peu près sûr que c’est l’approche générale la moins chère, mais elle semble plus facile à jouer.
Remerciements
la source
int s=5*n,x=0,y
boucle for à la place pour enregistrer un octet sur le point-virgule.Pyth ,
2822 octets-6 octets grâce à @LeakyNun
Suite de tests.
la source
R ,
878562 octets2 octets enregistrés en représentant c (F, T) comme! 1: 0, grâce à LeakyNun
23 octets sauvés grâce à Giuseppe
Essayez-le en ligne!
Explication (non golfée):
la source