Si vous jetez un œuf ASCII dans une direction donnée, vous vous retrouvez avec un splat ASCII de taille n . Il "commence" par un o(le jaune) et continue dans une direction donnée avec des "lignes" composées de 2 à n * . Les *'sont séparés par un "espace", et otous les "lignes" de *sont séparés par des "lignes" de "l'espace".
La direction du splat peut être l'une des huit directions o, par exemple:
1 2 3
4 o 5
6 7 8
Voici des exemples de splats ASCII de taille 4 dans des directions 5, 2et 3respectivement. Sur la gauche est le splat ASCII réel, et sur la droite est le même splat mais avec les "lignes" de "l'espace" remplacées par des "lignes" réelles (c'est --à- dire ou \ou |selon la direction) juste pour clarifier ce que l'on entend par un "ligne" d'espace.
Size 4, direction 5
* | | |*
* | |*|
* * |*| |*
o * o| |*|
* * |*| |*
* | |*|
* | | |*
Size 4, direction 2
* * * * * * * *
-------
* * * * * *
-------
* * * *
-------
o o
Size 4, direction 3
* *
\
* * *\*
\ \
* * * *\*\*
\ \ \
o * * * o\*\*\*
Défi
Étant donné n ≥ 1 et l'une des 8 directions possibles, écrivez une fonction ou un programme qui sort le splat ASCII de taille n dans la direction donnée.
Entrée et sortie
Tout format d'entrée cohérent et raisonnable est autorisé. Vous n'avez pas besoin de mapper les directions vers les entiers 1 à 8 de la même manière que moi - si une autre façon de spécifier la direction est plus facile, allez-y. Mais dites ce que vous avez fait si ce n'est pas clair.
La sortie se compose de o, *, les espaces (U + 0020) et les nouvelles lignes (U + 000A) qui produisent le floc ASCII. Les espaces de début, de fin, sinon des espaces supplémentaires sont autorisés sur n'importe quelle ligne.
Règles
C'est du code-golf . Des règles standard s'appliquent.
Plus d'exemples
Size 1, any direction
o
Size 3, direction 6
* * o
* *
*
Size 5, direction 7
o
* *
* * *
* * * *
* * * * *