Giới thiệu
Cacti có nhiều kích cỡ, hình dạng và màu sắc khác nhau. Tuy nhiên, cây xương rồng mang tính biểu tượng nhất và phải có ở mọi phương Tây phải là saguaro . Các tính năng quan trọng là kích thước và cánh tay của nó, đã xác định diện mạo xương rồng rập khuôn.
Nhiệm vụ của bạn là đưa saguaro vào thế giới ASCII. Tuy nhiên, - như trong thế giới thực - không có saguaro giống như thế khác, vì vậy chương trình của bạn phải có khả năng tạo saguaros với các cấu hình cánh tay khác nhau.
Một ví dụ saguaro
- Đầu vào:
[0b10, 0b11]
([2, 3]
ở dạng thập phân, độ dài đầu vào của2
)
_
/ \
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
Thông số kỹ thuật
Một saguaro luôn có một đế và đỉnh, với số lượng thân khác nhau ở giữa. Các bộ phận thân cây có thể không có cánh tay, một cánh tay bên phải, một cánh tay trái hoặc hai cánh tay.
Các mẫu tăng trưởng Saguaro được đưa ra dưới dạng danh sách đầu vào chứa các giá trị hai bit. 00
có nghĩa là không có cánh tay, 01
một cánh tay bên phải, 10
một cánh tay bên trái và 11
hai cánh tay (tất cả đều ở dạng nhị phân). Độ dài của danh sách đầu vào xác định chiều cao của saguaro.
Phần Saguaro trông như sau. Các bộ phận xương rồng được bao quanh bởi octothorps #
, cho rõ ràng sẽ không được in.
Chiều cao của saguaro luôn bằng 4+6*k
ký tự cho các số nguyên không âm k
.
#############
# _ # Saguaro top
# / \ #
#############
# _ | | _ # Stem, both arms
#/ \ | | / \# Stem id: 11
#| | | | | |#
#\ \_| |_/ /#
# \__ __/ #
# \ / #
#############
# _ | | # Stem, left arm
#/ \ | | # Stem id: 10
#| | | | #
#\ \_| | #
# \__ | #
# \ | #
#############
# | | _ # Stem, right arm
# | | / \# Stem id: 01
# | | | |#
# | |_/ /#
# | __/ #
# | / #
#############
# | | # Stem, no arms
# | | # Stem id: 00
# | | #
# | | #
# | | #
# | | #
#############
# | | # Saguaro base
# | | #
#############
Đầu vào
Như đã nói trước đây, đầu vào bao gồm một danh sách các giá trị hai bit ( 0, 1, 2, 3
theo số thập phân). Nó có thể được đưa ra trong bất kỳ định dạng hợp lý. Phần tử đầu tiên của danh sách tương ứng với phần thân cao nhất của saguaro, phần tử thứ hai với phần thân cao thứ hai của nó, v.v.
Nếu bạn muốn, bạn có thể yêu cầu độ dài của danh sách đầu vào làm đầu vào bổ sung. Vui lòng ghi rõ trong câu trả lời của bạn nếu bạn làm như vậy.
Đầu ra
Saguaro ASCII đầu ra của bạn nên được xây dựng bằng cách sử dụng các bộ phận chính xác như được mô tả ở trên. Trailing space trên một dòng và trailing dòng mới được bỏ qua; bạn có thể in nhiều hơn, ít hơn hoặc nhiều như được chỉ định ở trên.
Quy tắc
Các trường hợp thử nghiệm
- Một ngoại lệ. Đầu vào:
[0b01, 0b00, 0b01, 0b11]
_
/ \
| | _
| | / \
| | | |
| |_/ /
| __/
| /
| |
| |
| |
| |
| |
| |
| | _
| | / \
| | | |
| |_/ /
| __/
| /
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
- Cánh tay xen kẽ. Đầu vào:
[0b10, 0b01, 0b10]
_
/ \
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
| | _
| | / \
| | | |
| |_/ /
| __/
| /
_ | |
/ \ | |
| | | |
\ \_| |
\__ |
\ |
| |
| |
- Một sự phong phú của vũ khí. Đầu vào:
[0b11, 0b11]
_
/ \
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
_ | | _
/ \ | | / \
| | | | | |
\ \_| |_/ /
\__ __/
\ /
| |
| |
- Không có cánh tay, còn được gọi là giáo. Đầu vào:
[0b00]
_
/ \
| |
| |
| |
| |
| |
| |
| |
| |
- Không có cơ thể, một số người gọi nó là một cây xương rồng trẻ. Đầu vào:
[]
_
/ \
| |
| |
4 1 0 1 3
)