Скоро день народження мого друга, і оскільки він програміст і любитель мистецтва ASCII, я подумав, що я зроблю йому якийсь торт ASCII!
На жаль, я продовжую забувати його теперішній вік, тому я хотів би мати програму для моєї духовки ASCII, яка випікає торт із заданою кількістю свічок, тому мені не доведеться робити це знову, якщо я помиляюся з його вік.
Духовки ASCII мають лише обмежену кількість пам'яті та об'єм пам’яті, тому в ній слід використовувати найменші байти .
Ваше завдання:
Напишіть програму, яка видає торт на день народження на консоль, з такою кількістю свічок, скільки вказує вхід.
Вимоги до торта:
- Він повинен мати межу, побудовану з горизонтальних
-
та вертикальних|
ліній та вершин+
. - Принаймні 5 символів (включаючи рамку торта
|
) - Принаймні 5 символів у висоту (включаючи рамку торта
-
) - Між
бордюром пирога та першою основою свічки (не полум’ям) повинен бути символ пробілу з кожної сторони, за винятком випадків, коли в цьому просторі є полум'я. Полум'я або основа свічки не повинні мати змогу перекривати межі торта.
- Максимальна ширина торта - 9 символів, тому максимум 5 свічок на ряд.
- Оскільки ми не хочемо, щоб наш пиріг був двовимірним, він повинен бути зайвим у 2 ряди, щоб надати йому певного обсягу. Додати ще одну кордон в нижній частині і з'єднують вершини з тими , над ними, знову використовуючи символи ASCII зверху (
-
,|
і+
).
Вимоги до свічок:
- Складається з основи
|
та полум'я*
, причому полум'я розташоване зверху основи. - Свічки можуть не знаходитися безпосередньо поруч із іншим, крім діагоналі.
- Свічки ставлять зліва направо, потім зверху вниз, максимум 5 в одному рядку.
(Примітка. Якщо в попередньому ряду було 5 свічок, наступний ряд не може мати 5, оскільки тоді вони будуть суміжними.)
Додаткові нотатки:
- Ширина пирога залежить від кількості свічок у першому ряду, але він повинен бути як мінімум 5 символів та максимум 9 символів.
- Свічки заповнюються, починаючи з самого верхнього ряду, йдучи зліва направо. Один рядок, якщо він заповнений, наступний слід починати в рядку під першим.
Вхід:
Ви можете прийняти номер у (розумному) форматі, який вам подобається.
Для цього виклику ви можете припустити, що число становить від 0 до 2 31 (не враховуючи 0), хоча я не визнаю того, хто такий старий.
Вихід:
Ви можете повернути рядок або безпосередньо записати отриманий торт у вихідну консоль.
Правила:
Приклади:
Вхід: 8
+-----------+
| * * * * * |
| |*|*|*| | |
| | | | |
| |
+-----------+
| |
+-----------+
Вхід: 2
+-----+
| * * |
| | | |
| |
+-----+
| |
+-----+
Вхід: 12
+-----------+
| * * * * * |
| |*|*|*|*| |
| *|*|*| | |
| | | | |
| |
+-----------+
| |
+-----------+
Удачі!