Introduzione:
Quando pensiamo alle coccinelle, di solito pensiamo a un insetto rosso o arancione scuro con macchie nere. Anche se questo non è necessariamente vero, dal momento che ci sono anche neri con coccinelle rosse / arancioni o coccinelle senza macchie , principalmente immaginiamo coccinelle qualcosa come questa coccinella asiatica:
Un'altra cosa da notare è che le macchie sulle coccinelle sono quasi sempre simmetriche. Ed è qui che arriva questa sfida.
Sfida:
Dato un numero intero n
( >= 0
), emette una o più volte la seguente coccinella di arte ASCII, con punti simmetrici divisi uniformemente tra i due lati, così come le due o più coccinelle.
Ecco il layout predefinito della coccinella:
_V_
/(@I@)\
/ | \
| | |
\ | /
''-!-''
Se n=0
, abbiamo emesso la coccinella sopra com'è.
Quando n
è maggiore di zero, riempiamo gli spazi del bug di arte ASCII con una lettera minuscola o
o sostituiamo |
il centro con una maiuscola O
. L'obiettivo è faren
modifiche alle coccinelle 'vuote', pur producendo un risultato simmetrico (per coccinella) e producendo il minor numero possibile di coccinelle.
Quindi gli output validi per n=1
sono:
_V_
/(@I@)\
/ O \
| | |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| O |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| | |
\ O /
''-!-''
Ma questo non sarebbe valido:
_V_
/(@I@)\
/ | \
| o | |
\ | /
''-!-''
Le uscite valide per n=2
sono:
_V_
/(@I@)\
/ O \
| O |
\ | /
''-!-''
_V_
/(@I@)\
/ O \
| | |
\ O /
''-!-''
_V_
/(@I@)\
/ o|o \
| | |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| o | o |
\ | /
''-!-''
etc. There are a lot of possible outputs.
Il primo n
che non è più possibile inserire in una singola coccinella è n=24
. Nel qual caso dovrai dividerlo il più uniformemente possibile in due coccinelle (puoi scegliere se riprodurle una accanto all'altra o una sotto l'altra - opzionalmente con uno spazio o una nuova riga tra di loro). Per esempio:
_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/
''-!-'' ''-!-''
O:
_V_
/(@I@)\
/ooo|ooo\
| | |
\ooo|ooo/
''-!-''
_V_
/(@I@)\
/ooo|ooo\
| | |
\ooo|ooo/
''-!-''
Regole della sfida:
n
sarà nella gamma di0-1000
.- È possibile scegliere di eseguire l'output su STDOUT, tornare come stringa o array / elenco di caratteri 2D, ecc. La chiamata.
- Non sono consentite nuove righe o spazi bianchi non necessari. Sono consentiti spazi vuoti finali e una sola nuova riga finale.
- Come accennato in precedenza, quando sono necessarie due o più coccinelle, è possibile scegliere se riprodurle una accanto all'altra o una sotto l'altra (o una combinazione di entrambe ..)
- Quando due o più coccinelle sono stampate una accanto all'altra, è consentito un solo spazio opzionale in mezzo. Quando due o più coccinelle sono stampate l'una sull'altra, è consentita una singola nuova riga opzionale in mezzo.
- Puoi scegliere il layout delle coccinelle in qualsiasi momento della sequenza, purché simmetriche e uguali all'input
n
. - Poiché l'obiettivo è quello di avere
n
cambiamenti E il minor numero possibile di coccinelle, inizierai a utilizzare più di una coccinella quando sopran=23
. Il layout di queste coccinelle non deve necessariamente essere lo stesso. In realtà, questo non è nemmeno possibile per alcuni input, comen=25
on=50
per nominarne due. - Inoltre, a volte non è possibile dividere uniformemente i punti tra due o più coccinelle. In tal caso dovrai dividerli il più uniformemente possibile, con al massimo una differenza di 1 tra di loro.
Quindi n=50
, tenendo a mente le ultime due regole, questo sarebbe un output possibile valido (dove il primo bug ha 16 punti e gli altri due ne hanno 17):
_V_ _V_ _V_
/(@I@)\ /(@I@)\ /(@I@)\
/oooOooo\ / O \ /o oOo o\
|ooooOoooo||ooooOoooo||o ooOoo o|
\ | / \oooOooo/ \o oOo o/
''-!-'' ''-!-'' ''-!-''
Regole generali:
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. - Per la tua risposta valgono regole standard , quindi puoi usare STDIN / STDOUT, funzioni / metodo con i parametri corretti e tipo di ritorno, programmi completi. La tua chiamata.
- Sono vietate le scappatoie predefinite .
- Se possibile, aggiungi un link con un test per il tuo codice.
- Inoltre, si prega di aggiungere una spiegazione, se necessario.
o
e O
invece. Ho cambiato un po 'le parole.
n=50
esempio, credo che tu intenda che il primo bug ha 16 punti e gli altri due ciascuno 17.