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 o
tous 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
, 2
et 3
respectivement. 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
* *
* * *
* * * *
* * * * *