Wprowadzenie:
Kiedy myślimy o Biedronkach, zwykle myślimy o czerwonym lub ciemnopomarańczowym błędzie z czarnymi plamami. Chociaż nie jest to konieczne, ponieważ są również czarne z czerwonymi / pomarańczowymi biedronkami z kropkami lub biedronki w ogóle bez plam , to głównie wyobrażamy sobie biedronki, takie jak azjatycka biedronka:
Należy również zauważyć, że plamy na biedronkach są prawie zawsze symetryczne. I tu pojawia się to wyzwanie.
Wyzwanie:
Biorąc pod uwagę liczbę całkowitą n
( >= 0
), wypisz jedną lub wiele razy następującą biedronkę ASCII-art, z symetrycznymi plamami równomiernie podzielonymi między dwie strony, a także dwie lub więcej biedronek.
Oto domyślny układ biedronki:
_V_
/(@I@)\
/ | \
| | |
\ | /
''-!-''
Jeśli n=0
wyprowadzamy biedronkę powyżej taką, jaka jest.
Kiedy n
jest większy od zera, albo wypełniamy spacje błędu ASCII-art małymi literami o
, albo zastępujemy środek |
w środku wielką O
. Celem jest wprowadzenie n
zmian w „pustych” biedronkach, przy jednoczesnym wytwarzaniu symetrycznego wyjścia (na biedronkę) i generowaniu jak najmniejszej liczby biedronek.
Prawidłowe wyniki dla n=1
:
_V_
/(@I@)\
/ O \
| | |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| O |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| | |
\ O /
''-!-''
Ale byłoby to nieprawidłowe:
_V_
/(@I@)\
/ | \
| o | |
\ | /
''-!-''
Prawidłowe dane wyjściowe dla n=2
:
_V_
/(@I@)\
/ O \
| O |
\ | /
''-!-''
_V_
/(@I@)\
/ O \
| | |
\ O /
''-!-''
_V_
/(@I@)\
/ o|o \
| | |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| o | o |
\ | /
''-!-''
etc. There are a lot of possible outputs.
Pierwszym, n
który nie jest już w stanie zmieścić się w jednej biedronce, jest n=24
. W takim przypadku będziesz musiał podzielić go tak równo, jak to możliwe na dwie biedronki (możesz wybrać, czy wyprowadzać je obok siebie, czy pod sobą - z opcjonalnie jedną spacją lub jedną nową linią między nimi). Na przykład:
_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/
''-!-'' ''-!-''
LUB:
_V_
/(@I@)\
/ooo|ooo\
| | |
\ooo|ooo/
''-!-''
_V_
/(@I@)\
/ooo|ooo\
| | |
\ooo|ooo/
''-!-''
Zasady konkursu:
n
będzie w zakresie0-1000
.- Możesz wybrać wyjście do STDOUT, powrót jako ciąg lub tablicę / listę 2D-char itp. Twoje połączenie.
- Wiodące znaki nowej linii lub niepotrzebne białe znaki nie są dozwolone. Dozwolone są końcowe białe spacje i pojedyncza nowa linia.
- Jak wspomniano powyżej, gdy potrzebne są dwie lub więcej biedronek, możesz wybrać, czy mają być wyprowadzane obok siebie, czy pod sobą (lub połączenie obu ...)
- Gdy dwie lub więcej biedronek jest drukowanych obok siebie, dozwolone jest jedno opcjonalne miejsce pomiędzy nimi. Kiedy drukowane są dwie lub więcej biedronek, dozwolona jest jedna opcjonalna nowa linia pomiędzy nimi.
- Możesz wybrać układ biedronek na dowolnym etapie sekwencji, o ile są one symetryczne i równe wejściowi
n
. - Ponieważ celem jest wprowadzanie
n
zmian ORAZ jak najmniejszej liczby biedronek, zaczniesz używać więcej niż jednej biedronki, gdy będziesz wyżejn=23
. Układ tych biedronek nie musi być taki sam. W rzeczywistości nie jest to nawet możliwe w przypadku niektórych danych wejściowych, takich jakn=25
lubn=50
wymienić dwa. - Ponadto czasami nie jest możliwe równomierne podzielenie kropek na dwie lub więcej biedronek. W takim przypadku musisz podzielić je możliwie równomiernie, z różnicą co najwyżej 1.
Tak więc, biorąc n=50
pod uwagę dwie ostatnie zasady, byłby to prawidłowy możliwy wynik (gdzie pierwszy błąd ma 16 miejsc, a pozostałe dwa mają 17):
_V_ _V_ _V_
/(@I@)\ /(@I@)\ /(@I@)\
/oooOooo\ / O \ /o oOo o\
|ooooOoooo||ooooOoooo||o ooOoo o|
\ | / \oooOooo/ \o oOo o/
''-!-'' ''-!-'' ''-!-''
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i zwracanymi typami, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem swojego kodu.
- W razie potrzeby dodaj również wyjaśnienie.
o
i O
zamiast tego. Trochę zmieniłem brzmienie.
n=50
przykład uważam, że masz na myśli, że pierwszy błąd ma 16 miejsc, a pozostałe dwa mają po 17.