Sắp đến sinh nhật bạn tôi và vì anh ấy là lập trình viên và người yêu nghệ thuật ASCII, tôi nghĩ tôi sẽ làm cho anh ấy một chiếc bánh ASCII!
Đáng buồn thay, tôi đã quên mất tuổi hiện tại của anh ấy, vì vậy tôi muốn có một chương trình cho lò nướng ASCII của mình, đó là nướng một chiếc bánh với một số nến được chỉ định, vì vậy tôi không phải tự làm lại nếu tôi sai với anh ấy tuổi tác.
Lò nướng ASCII chỉ có bộ nhớ và dung lượng lưu trữ hạn chế, vì vậy nó nên sử dụng ít byte nhất có thể .
Nhiệm vụ của bạn:
Viết chương trình xuất ra một chiếc bánh sinh nhật vào bàn điều khiển, với số lượng nến nhiều như đầu vào chỉ định.
Yêu cầu về bánh là:
- Nó phải có đường viền, được xây dựng từ các đường ngang
-
và dọc|
và các đỉnh+
. - Toàn bộ 5 ký tự (bao gồm cả viền bánh
|
) - Cao nhất 5 ký tự (bao gồm cả viền bánh
-
) - Phải có một ký tự khoảng trắng
giữa đường viền bánh và đế nến đầu tiên (không phải ngọn lửa), ở mỗi bên, trừ khi có một ngọn lửa trong không gian đó. Một ngọn lửa hoặc chân nến không thể chồng lên các đường viền bánh.
- Chiều rộng tối đa của bánh là 9 ký tự, vì vậy có tối đa 5 nến mỗi hàng.
- Vì chúng tôi không muốn bánh của chúng tôi là 2 chiều, nên nó phải cao thêm 2 hàng, để cho nó một khối lượng. Thêm đường viền khác ở phía dưới và kết nối các đỉnh với những người ở trên chúng, một lần nữa bằng cách sử dụng các ký tự ASCII từ trên cao (
-
,|
và+
).
Yêu cầu nến là:
- Bao gồm các cơ sở
|
và ngọn lửa*
, với ngọn lửa xếp chồng lên nhau trên cơ sở. - Nến có thể không liền kề với nhau, ngoại trừ đường chéo.
- Nến được đặt từ trái sang phải, sau đó từ trên xuống dưới, tối đa 5 trong một dòng.
(Lưu ý: Nếu có 5 nến ở hàng trước, hàng tiếp theo không thể có 5 nến, kể từ đó chúng sẽ liền kề nhau.)
Ghi chú bổ sung:
- Chiều rộng bánh phụ thuộc vào số lượng nến ở hàng đầu tiên , nhưng nó phải có tối thiểu 5 ký tự và rộng tối đa 9 ký tự.
- Những ngọn nến được lấp đầy bắt đầu từ hàng trên cùng, đi từ trái sang phải. Khi một hàng nếu đầy, hàng tiếp theo sẽ bắt đầu ở hàng bên dưới hàng đầu tiên.
Đầu vào:
Bạn có thể chấp nhận một số ở định dạng (hợp lý) mà bạn thích.
Đối với thử thách này, bạn có thể cho rằng con số nằm trong khoảng từ 0 đến 2 31 (không bao gồm 0), mặc dù tôi không thừa nhận ai đó đã già.
Đầu ra:
Bạn có thể trả về một chuỗi hoặc trực tiếp viết bánh kết quả vào bảng điều khiển đầu ra.
Quy tắc:
- Sơ hở tiêu chuẩn bị cấm.
- Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte, trong bất kỳ ngôn ngữ nào, sẽ thắng.
Ví dụ:
Đầu vào: 8
+-----------+
| * * * * * |
| |*|*|*| | |
| | | | |
| |
+-----------+
| |
+-----------+
Đầu vào: 2
+-----+
| * * |
| | | |
| |
+-----+
| |
+-----+
Đầu vào: 12
+-----------+
| * * * * * |
| |*|*|*|*| |
| *|*|*| | |
| | | | |
| |
+-----------+
| |
+-----------+
Chúc may mắn!