Giới thiệu:
Khi chúng ta nghĩ về Ladybugs, chúng ta thường nghĩ về một con bọ màu đỏ hoặc màu cam sẫm có đốm đen. Mặc dù điều này không cần thiết đúng, vì cũng có màu đen với bọ rùa đốm đỏ / cam hoặc bọ rùa không có đốm , chúng tôi chủ yếu hình dung bọ rùa giống như bọ rùa châu Á này:
Một điều cần lưu ý là các đốm trên bọ rùa hầu như luôn luôn đối xứng. Và đó là nơi thử thách này đến.
Thử thách:
Cho một số nguyên n
( >= 0
), xuất ra bọ rùa nghệ thuật ASCII sau một hoặc nhiều lần, với các điểm đối xứng được chia đều giữa hai bên, cũng như hai hoặc nhiều bọ rùa.
Đây là cách bố trí bọ rùa mặc định:
_V_
/(@I@)\
/ | \
| | |
\ | /
''-!-''
Nếu n=0
, chúng tôi xuất ra bọ rùa ở trên.
Khi n
lớn hơn 0, chúng ta sẽ điền vào chỗ trống của lỗi nghệ thuật ASCII bằng chữ thường o
hoặc thay thế |
ở giữa bằng chữ hoa O
. Mục tiêu là để thực hiện các n
thay đổi đối với bọ rùa 'trống rỗng', trong khi vẫn tạo ra một đầu ra đối xứng (trên mỗi con bọ rùa) và xuất ra càng ít bọ rùa càng tốt.
Vì vậy, đầu ra hợp lệ n=1
là:
_V_
/(@I@)\
/ O \
| | |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| O |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| | |
\ O /
''-!-''
Nhưng điều này sẽ không hợp lệ:
_V_
/(@I@)\
/ | \
| o | |
\ | /
''-!-''
Đầu ra hợp lệ cho n=2
là:
_V_
/(@I@)\
/ O \
| O |
\ | /
''-!-''
_V_
/(@I@)\
/ O \
| | |
\ O /
''-!-''
_V_
/(@I@)\
/ o|o \
| | |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| o | o |
\ | /
''-!-''
etc. There are a lot of possible outputs.
Cái đầu tiên n
không thể phù hợp với một con bọ rùa duy nhất nữa là n=24
. Trong trường hợp đó, bạn sẽ phải chia nó càng nhiều càng tốt thành hai con bọ rùa (bạn có thể chọn đầu ra chúng cạnh nhau, hoặc bên dưới nhau - với tùy chọn một khoảng trắng hoặc một dòng mới ở giữa chúng). Ví dụ:
_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/
''-!-'' ''-!-''
HOẶC LÀ:
_V_
/(@I@)\
/ooo|ooo\
| | |
\ooo|ooo/
''-!-''
_V_
/(@I@)\
/ooo|ooo\
| | |
\ooo|ooo/
''-!-''
Quy tắc thử thách:
n
sẽ trong phạm vi0-1000
.- Bạn có thể chọn xuất ra STDOUT, trả về dưới dạng chuỗi hoặc danh sách / chuỗi 2D-char, v.v. Cuộc gọi của bạn.
- Hàng đầu dòng mới hoặc khoảng trắng không cần thiết không được phép. Trailing-space trắng và một dòng mới trailing được cho phép.
- Như đã đề cập ở trên, khi cần có hai hoặc nhiều bọ rùa, bạn có thể chọn đầu ra chúng cạnh nhau hoặc bên dưới nhau (hoặc kết hợp cả hai ..)
- Khi hai hoặc nhiều bọ rùa được in cạnh nhau, một khoảng trống tùy chọn ở giữa được cho phép. Khi hai hoặc nhiều bọ rùa được in xuống nhau, một dòng mới tùy chọn ở giữa được cho phép.
- Bạn có thể chọn bố cục của bọ rùa ở bất kỳ bước nào trong chuỗi, miễn là chúng đối xứng và bằng với đầu vào
n
. - Vì mục tiêu là có
n
những thay đổi VÀ càng ít bọ rùa càng tốt, bạn sẽ bắt đầu sử dụng nhiều hơn một con bọ rùa khi ở trênn=23
. Bố cục của những con bọ rùa này không cần thiết phải giống nhau. Trong thực tế, điều này thậm chí không thể đối với một số đầu vào, nhưn=25
hoặcn=50
đặt tên hai. - Ngoài ra, đôi khi không thể chia đều các chấm giữa hai hoặc nhiều bọ rùa. Trong trường hợp đó, bạn sẽ phải chia chúng càng nhiều càng tốt, với nhiều nhất là chênh lệch 1 giữa chúng.
Vì vậy n=50
, để ghi nhớ hai quy tắc cuối cùng, đây sẽ là một đầu ra hợp lệ có thể (trong đó lỗi đầu tiên có 16 điểm và hai quy tắc còn lại có 17):
_V_ _V_ _V_
/(@I@)\ /(@I@)\ /(@I@)\
/oooOooo\ / O \ /o oOo o\
|ooooOoooo||ooooOoooo||o ooOoo o|
\ | / \oooOooo/ \o oOo o/
''-!-'' ''-!-'' ''-!-''
Quy tắc chung:
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte thắng.
Đừng để ngôn ngữ mã-golf ngăn cản bạn đăng câu trả lời với các ngôn ngữ không mã hóa. Cố gắng đưa ra một câu trả lời càng ngắn càng tốt cho ngôn ngữ lập trình 'bất kỳ'. - Các quy tắc chuẩn áp dụng cho câu trả lời của bạn, vì vậy bạn được phép sử dụng STDIN / STDOUT, các hàm / phương thức với các tham số thích hợp và kiểu trả về, các chương trình đầy đủ. Cuộc gọi của bạn.
- Lỗ hổng mặc định bị cấm.
- Nếu có thể, vui lòng thêm một liên kết với một bài kiểm tra cho mã của bạn.
- Ngoài ra, xin vui lòng thêm một lời giải thích nếu cần thiết.
o
và O
thay vào đó. Tôi đã thay đổi từ ngữ một chút.
n=50
dụ, tôi tin rằng bạn có nghĩa là lỗi đầu tiên có 16 điểm và hai điểm còn lại có 17.