Le 5 avril est la Journée nationale de la pizza Deep DIsh, le thème de ce défi. Étant donné un entier positif n
( n
supérieur à 0), créez une pizza à plat profond ASCII. Pizza à plat profonde réelle montrée:
Comme vous pouvez le voir, il y a une couche de croûte au fond et entourant le reste de la pizza.
Comment faire la pizza
La croûte est composée de deux couches. La première couche sera n
haute et n*3
longue. La longueur est le nombre de caractères (espaces compris) dans la ligne la plus haute. Donc, étant donné n
1, la première couche ressemblerait à ceci:
\_/ 1 character tall
3 characters long
Si n
est deux:
\ / 2 characters tall
\__/
6 characters long
Passons maintenant à la deuxième couche de la croûte. Il ira à l' extérieur de la première, la croûte intérieure ainsi donc, ce sera des n+2
caractères grands et (n*3)+6)
caractères. Étant donné n
est un:
\ / 3 characters tall
\ /
\___/
9 characters long (3 underscores, 3 slashes on either side)
Si n
est deux:
\ / 4 characters high
\ /
\ /
\____/
12 characters long
Vous devez ensuite faire correspondre les deux paires les plus élevées \/
entre elles pour la croûte intérieure et extérieure. En n
est 1:
\ \ / /
\ \_/ /
\___/
Si cela est fait correctement, il ressemblerait à un V sans les sommets avec une différence d'un caractère entre chaque couche. En parlant de dessus, la croûte sera réunie par une paire de /\
, séparés par une ligne de soulignements (n*3)+2
longs pour compléter la croûte et la pizza.
Exemples
Si n
est 1:
/\_____/\
\ \ / /
\ \_/ /
\___/
n
est 2:
/\________/\
\ \ / /
\ \ / /
\ \__/ /
\____/
n
est 3:
/\___________/\
\ \ / /
\ \ / /
\ \ / /
\ \___/ /
\_____/
Critère gagnant
Il s'agit de code-golf , donc le code le plus court en octets gagne!
-
au lieu d'un_
?Réponses:
Fusain , 35 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Saisissez la taille de la pizza.
Imprimer une partie de la base extérieure de la croûte.
Imprimez le côté gauche de la croûte extérieure.
Imprimer une partie de la croûte supérieure.
Imprimez le côté gauche de la croûte intérieure.
Imprimer une partie de la base intérieure de la croûte.
Réfléchissez pour terminer la pizza.
Notez que les ajouts modernes au charbon de bois réduisent la taille à 31 octets:
Essayez-le en ligne! Le lien est vers la version détaillée du code.
la source
JavaScript (ES6), 136 octets
La pizza entière est très répétitive, de sorte que la
r
fonction (conçue comme un modèle littéral étiqueté) répète le premier caractère de sesn
temps d' entrée . Cela gère les deux lignes supérieure et inférieure de la pizza. Le milieu est répété en remplaçant une chaîne de blancs; les$`
et les$'
substitutions correspondent automatiquement à un nombre croissant et décroissant de blancs positionnant ainsi le\ \
et de/ /
manière appropriée.la source
Python 2,
153151 octetsEssayez-le en ligne
-2 octets en remplaçant les valeurs répétées par des variables grâce à @KoishoreRoy
la source
print' '*=~n+'\\'+'_'*-~n+'_/'
ne pouvez-vous pas écrireprint' '*i+' \\_'+'_'*n+'_/'
? (Oun
au lieu dei
, mais je copiais la ligne précédente.)-~n
ài
, car à ce stadei==n
. Mais le deuxième changement est bon. Aussi j'ai raccourci-~n
, grâce à votre idée-~n
ài
, parce que j'ajoutais l'espace. (Mais vous semblez avoir réglé cela par vous-même de toute façon. De plus, je l'ai déjà notén
et je suisi
le même à ce stade.)MATLAB, 333 octets
(Tentative paresseuse)
Formaté:
L'idée de base est que j'ai des poignées de fonction pour tout imprimer, puis je le force à peu près brutalement. Celui pour la boucle est pour les
n
couches entre le haut et le bas de la couche intérieure. La répétition de(espaces) et
_
se fait à l'aidearrayfun
, avec des entrées de tableau. J'essaierai de penser à des façons plus intéressantes de le faire si j'ai plus de temps plus tard.la source
Fusain ,
5452 octetsExplication:
Ma réponse précédente était en rétine, une langue à laquelle je n'ai pas encore répondu. Maintenant, vous avez une réponse dans Charcoal, à laquelle je n'ai pas posté de réponse auparavant.
Essayez-le en ligne!
la source
PHP,
209 200 137135 octetsenfin battre JS :)
Prend l'entrée de STDIN; courir avec
-nR
ou commander une pizza familiale .panne
la source
JavaScript (ES6), 205 octets
Ceci est mon premier article ascii-art !
Ajoutez un
f=
au début et invoquez likef(arg)
.Remarque: tous les sauts de ligne sont nécessaires!
Explication
Le code déclare d'abord un tableau
a
. Il déclare ensuitew
etu
ayant respectivement la valeur des espaces et des traits de soulignement. Ensuite, il déclare une variable String pour contenir la valeur de la croûte (qui peut être calculée par/\+(n*3+2 underscores)+/\
, comme mentionné dans le défi). Après cela, avec unefor
boucle et unTemplate Literal
, le milieu de la pizza est créé (avec chaque couche ayant desi
espaces au début et des(n+1-i*2)+n+(n-1)
espaces entre\ \
et/ /
, oùi
représente l'indice defor
boucle). Enfin, la partie la plus basse de la pizza est créée ((i whitespaces)+\+(n+2 underscores)+/
). Toutes les pièces sont assemblées et sorties (ted).Si, pour une raison quelconque, l'extrait n'affiche pas correctement l'illustration ASCII, jetez un œil ici .
Bonne journée de pizza profonde à tous!
la source
Lot, 200 octets
t
contient le retrait gauche tandis ques
contient l'intérieur; ses_
s sont remplacés par des espaces sur les rangées du milieu.l
existe juste pour éviter une répétition.la source
V , 57 octets
Essayez-le en ligne!
Puisque, (comme d'habitude) cela contient beaucoup de méchants caractères non ASCII et non imprimables, voici un hexdump:
Je publierai bientôt une explication plus détaillée, mais voici un aperçu de haut niveau:
la source
C (clang) ,
211215 octetsEssayez-le en ligne!
Joli code:
Modifications:
la source
CJam, 74 octets
Way trop longtemps. Je vais essayer une autre approche.
Génère la chaîne ligne par ligne. Rien de trop fou.
la source
CJam, 89 octets
Eh bien, c'est en fait plus long que mon autre solution pour le moment, mais je pense que c'est plus jouable au golf:
Trace de la pile:
la source