Introduction:
Lorsque nous pensons aux coccinelles, nous pensons généralement à un insecte rouge ou orange foncé avec des taches noires. Bien que cela ne soit pas nécessairement vrai, car il existe également des coccinelles tachetées de rouge / orange ou des coccinelles sans taches , nous imaginons principalement des coccinelles quelque chose comme cette coccinelle asiatique:
Une autre chose à noter est que les taches sur les coccinelles sont presque toujours symétriques. Et c'est là que ce défi entre en jeu.
Défi:
Étant donné un entier n
( >= 0
), sortez une ou plusieurs fois la coccinelle ASCII-art suivante, avec des taches symétriques réparties également entre les deux côtés, ainsi que les deux coccinelles ou plus.
Voici la disposition par défaut des coccinelles:
_V_
/(@I@)\
/ | \
| | |
\ | /
''-!-''
Si n=0
, nous sortons la coccinelle ci-dessus telle quelle.
Quand n
est plus grand que zéro, nous remplissons soit les espaces du bug ASCII-art avec des minuscules o
, soit nous remplaçons ceux |
du centre par des majuscules O
. Le but est d'apporter des n
modifications aux coccinelles «vides», tout en produisant une sortie symétrique (par coccinelle), et en produisant le moins de coccinelles possible.
Les sorties valides pour n=1
sont donc:
_V_
/(@I@)\
/ O \
| | |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| O |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| | |
\ O /
''-!-''
Mais cela serait invalide:
_V_
/(@I@)\
/ | \
| o | |
\ | /
''-!-''
Les sorties valides pour n=2
sont:
_V_
/(@I@)\
/ O \
| O |
\ | /
''-!-''
_V_
/(@I@)\
/ O \
| | |
\ O /
''-!-''
_V_
/(@I@)\
/ o|o \
| | |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| o | o |
\ | /
''-!-''
etc. There are a lot of possible outputs.
La première n
qui n'est plus possible de s'intégrer dans une seule coccinelle est n=24
. Dans ce cas, vous devrez le diviser aussi uniformément que possible en deux coccinelles (vous pouvez choisir de les afficher côte à côte ou sous l'une l'autre - avec éventuellement un espace ou une nouvelle ligne entre elles). Par exemple:
_V_ _V_
/(@I@)\ /(@I@)\
/o o|o o\ /o o|o o\
|o o | o o||o o | o o|
\o o|o o/ \o o|o o/
''-!-'' ''-!-''
OU:
_V_
/(@I@)\
/ooo|ooo\
| | |
\ooo|ooo/
''-!-''
_V_
/(@I@)\
/ooo|ooo\
| | |
\ooo|ooo/
''-!-''
Règles du défi:
n
sera de l'ordre de0-1000
.- Vous pouvez choisir de sortir vers STDOUT, de retourner sous forme de chaîne ou de tableau / liste de caractères 2D, etc. Votre appel.
- Les nouvelles lignes ou les espaces blancs inutiles ne sont pas autorisés. Les espaces blancs à la fin et une seule nouvelle ligne à la fin sont autorisés.
- Comme mentionné ci-dessus, lorsque deux ou plusieurs coccinelles sont nécessaires, vous pouvez choisir de les produire côte à côte ou en dessous l'une de l'autre (ou un mélange des deux ..)
- Lorsque deux ou plusieurs coccinelles sont imprimées côte à côte, un seul espace facultatif entre les deux est autorisé. Lorsque deux ou plusieurs coccinelles sont imprimées l'une sur l'autre, une seule nouvelle ligne facultative entre les deux est autorisée.
- Vous pouvez choisir la disposition des coccinelles à n'importe quelle étape de la séquence, à condition qu'elles soient symétriques et égales à l'entrée
n
. - Puisque le but est d'avoir des
n
changements ET aussi peu de coccinelles que possible, vous commencerez à utiliser plus d'une coccinelle au-dessusn=23
. La disposition de ces coccinelles ne doit pas nécessairement être la même. En fait, ce n'est même pas possible pour certaines entrées, commen=25
oun=50
pour n'en nommer que deux. - De plus, il n'est parfois pas possible de répartir également les points entre deux coccinelles ou plus. Dans ce cas, vous devrez les diviser aussi uniformément que possible, avec au plus une différence de 1 entre eux.
Donc n=50
, en gardant à l'esprit les deux dernières règles, ce serait une sortie possible valide (où le premier bogue a 16 points et les deux autres 17):
_V_ _V_ _V_
/(@I@)\ /(@I@)\ /(@I@)\
/oooOooo\ / O \ /o oOo o\
|ooooOoooo||ooooOoooo||o ooOoo o|
\ | / \oooOooo/ \o oOo o/
''-!-'' ''-!-'' ''-!-''
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse, vous êtes donc autorisé à utiliser STDIN / STDOUT, fonctions / méthode avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- Veuillez également ajouter une explication si nécessaire.
o
et à la O
place. J'ai un peu changé le libellé.
n=50
exemple, je pense que vous voulez dire que le premier bogue a 16 taches et les deux autres en ont 17.