Écrivez un programme ou une fonction qui prend un entier positif et imprime ou renvoie une représentation artistique ASCII d'une flèche de tir à l'arc , mise à l'échelle en fonction de l'entrée.
Si l'entrée est 1
la sortie est
/\
/ \
\__/
||
||
||
||
||
||
||
||
/||\
/ || \
/ || \
// \\
/ \
Si l'entrée est 2
la sortie est
/\
/ \
/ \
/ \
\ /
\____/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
/| |\
/ | | \
/ | | \
/ | | \
/ | | \
/ |__| \
/ / \ \
/ / \ \
// \\
/ \
Si l'entrée est 3
la sortie est
/\
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\______/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
/| |\
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ |____| \
/ / \ \
/ / \ \
/ / \ \
/ / \ \
// \\
/ \
Si l'entrée est 4
la sortie est
/\
/ \
/ \
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\________/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
/| |\
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ |______| \
/ / \ \
/ / \ \
/ / \ \
/ / \ \
/ / \ \
/ / \ \
// \\
/ \
Le modèle continue pour les nombres d'entrée plus importants - la flèche est mise à l'échelle en conséquence.
Notez que pour toute entrée N:
- La pointe de flèche est un pentagone avec 2 × N traits de soulignement à la base, N barres obliques sur chacun des côtés s'étendant depuis la base, et 2 × N barres obliques sur les deux côtés qui forment la pointe de la flèche.
- L'arbre (y compris la partie à l'intérieur de l'empennage) se compose de 11 × N lignes de deux barres verticales séparées par 2 × (N-1) espaces. La toute dernière ligne comporte des traits de soulignement au lieu d'espaces.
- L'effondrement entoure les lignes inférieures 3 × N de l'arbre. Deux lignes de barres obliques 2 × N s'étendent en diagonale vers le bas de chaque côté de l'arbre et sont reliées à des colonnes verticales de barres obliques.
- La flèche complète mesure 16 × N lignes de haut et 6 × N de large.
Dans votre sortie, il ne devrait pas y avoir de lignes vides avant la pointe de la flèche et seulement jusqu'à un saut de ligne de fin.
Aucune des lignes de sortie ne doit avoir d'espaces de début inutiles (le bord gauche de l'extraction doit être le plus à gauche possible), mais l'une des lignes peut avoir un nombre quelconque d'espaces de fin.
La soumission la plus courte en octets l'emporte.
Réponses:
Pyth,
149147146144146Edit 2015-9-23: avait un bug, corrigé pour 2 octets. Il pourrait être possible de raccourcir, je n'ai pas le temps maintenant.
Semble encore trop long pour une réponse Pyth.
Explication (presque à jour)
Je génère essentiellement la transposition de la flèche, car son format de ligne est beaucoup plus simple. De plus, je n'en génère qu'une moitié, puis je l'inverse pour économiser beaucoup d'octets.
la source
Perl, 298 octets
Multi-ligne:
Production:
Merci à Dom Hastings de m'avoir aidé à économiser 5 octets (et à compter)
la source
$w=<>
déclaration à la première fois que vous l'utilisezfor$y(0..($w=<>)*16-1){
et de nombreux crochets peuvent être supprimés (certains changent la sortie, mais je pense que vous les parcourez quand même!). De plus, vous'_'
pouvez simplement être un littéral_
. J'espère que cela pourra aider!Julia, 452 octets
Cette réponse n'est pas très inspirée, et je ne l'ai pas jouée au-delà de l'évidence flagrante. J'ai l'intention que ce soit un score à battre pour les autres.
Essaye le:
non golfé:
la source
Rubis, 233
Je suis particulièrement satisfait de la technique enveloppante que j'ai utilisée pour dessiner tout
\
dans la tête avec une seule expression (et de même pour/
)Non testé dans le programme de test
la source