D'accord, ma première question sur le golf. S'il vous plaît soyez doux :) Je sais qu'il y a beaucoup trop de puzzles ascii: P mais c'est parti.
La tâche est simple, utilisez votre langage de programmation préféré pour imprimer une ondulation triangulaire. L'entrée doit être de la taille de l'ondulation.
Chaque triangle est régulièrement espacé. Fondamentalement, vous continuez à ajouter les triangles jusqu'à ce qu'il n'y ait pas assez d'espace pour le plus petit triangle.
Vous avez droit à des espaces blancs où vous voulez tant que les ondulations sont identiques à celles de l'exemple avec la bonne taille.
Exemple
q)g 1
__
\/
q)g 2
____
\ /
\/
q)g 3
______
\ /
\ /
\/
q)g 4
________
\ __ /
\ \/ /
\ /
\/
q)g 5
__________
\ ____ /
\ \ / /
\ \/ /
\ /
\/
q)g 6
____________
\ ______ /
\ \ / /
\ \ / /
\ \/ /
\ /
\/
q)g 7
______________
\ ________ /
\ \ __ / /
\ \ \/ / /
\ \ / /
\ \/ /
\ /
\/
q)g 8
________________
\ __________ /
\ \ ____ / /
\ \ \ / / /
\ \ \/ / /
\ \ / /
\ \/ /
\ /
\/
Comme d'habitude, le code le plus court gagne :)
Réponses:
Pyth, 31 octets
Manifestation.
Explication:
la source
GNU sed -nr, 210
Un début:
L'entrée est un entier unaire positif via STDIN, selon cette méta-question .
Production:
la source
C, 165 octets
Avant les étapes de golf qui détruisent la lisibilité:
Cela fait une boucle sur tous les caractères du rectangle contenant la figure et évalue les équations de ligne qui séparent l'intérieur du triangle de l'extérieur, ainsi que celles qui séparent les différentes parties du triangle.
la source
n,x,y,b,c;main(c,v)char**v;{for(n=atoi(v[1]);y<=n;++y)for(x=-n;x<=n;putchar(x++-n?b>6*y?95:b<6*y-4&c>0&c%4==1?"/\\"[x<1]:32:10))c=(b=2*n-abs(2*x+1))-2*y+2;}
Rétine , 182 octets
Prend l'entrée comme unaire.
Chaque ligne doit aller dans son propre fichier et
#
doit être remplacée par un retour à la ligne dans les fichiers. Ceci n'est pas pratique, mais vous pouvez exécuter le code tel quel comme un fichier avec l'-s
indicateur, en conservant les#
marqueurs.#
Si vous le souhaitez, vous pouvez changer les 's en sauts de ligne dans la sortie pour plus de lisibilité. Par exemple:Le code n'est pas trop bien joué (pour l'instant).
la source
C - 206 octets
i,j,m,k,a,b;main(i,v)char**v;{m=atoi(v[1])*2;while(k<m*(m/2+1)){i=k/m;j=k%m;a=i*3,b=(i+j)%2;putchar("_\\/ "[j>=a&&j<m-a?0:j>i-2&&b&&j<i*3-1&&j<m/2?1:j<=m-i&&!b&&j>m-a&&j>=m/2?2:3]);if(j==m-1)puts("");k++;};}
Exemple de sortie
la source
int
. De plus, si vous les déclarez à la portée globale, ils sont automatiquement initialisés à 0. Au lieu d'avoir un tas d'putchar()
appels dans différentes branches, vous pouvez utiliser un seul appel et remplacer lesif
instructions par des opérateurs ternaires. Bien sûr, cela devient difficile à lire de cette façon, mais c'est complètement dans l'esprit de ce site d'écrire du code laid s'il est plus court. :)JavaScript ( ES6 ) 165
180 204Exécutez l'extrait dans Firefox pour tester. Si le retour de la chaîne n'est pas suffisant, l'utilisation d'alerte pour la sortie représente 2 caractères de plus.
la source