На деревах, які ми вирощуємо, є деякі правила, які визначають, як вони ростуть:
Правила росту:
- Дерева складаються лише з гілок.
- Гілки складаються з комбінації наступних символів:
_
,\
,|
,/
, і_
Дерево починається як одна вертикальна гілка / стовбур (
|
) на землі (_
):__________________|___________________
Їжа для росту гілок надходить із світла.
- Світло починається з інтенсивністю 2 у кожній точці неба і рухається прямо вниз.
- Кожна гілка здатна з'їдати половину доступного їй світла, а решта проходить до нижніх гілок.
- Таким чином, гілка, що не має інших гілок над нею, отримуватиме 1 одиницю легкої їжі кожного сезону, гілка з 1 гілкою над нею отримуватиме5 одиниць їжі щосезону, і взагалі виходить гілка з п ятьма гілками. 1 / (2 ^ n) одиниці їжі кожного сезону.
- Наприкінці кожного сезону їжа підсумовується, починаючи зі стовбура, переміщуючись вгору і перетворюючись на нові гілки та фрукти (застосовуйте такі правила, поки гілка не перетвориться на плоди або залишиться менше 1 одиниці їжі):
- Якщо у філії є менше 1 одиниці їжі в кінці сезону, вся їжа для цієї гілки зберігається в цій гілці до наступного сезону.
- Якщо на гілці є більше або дорівнює 1 одиниці їжі та є можливість вирощувати, вона випадковим чином вирощує нову гілку, використовуючи наявні схеми росту (див. Нижче) та зберігає залишки їжі на наступний сезон.
- Якщо на гілці є> = 1 одиниця їжі, ніде не росте, і вона має відгалужені гілки, вона рівномірно розподіляє їжу на відгалужені гілки
- Якщо на гілці є> = 1 одиниця їжі, ніде не росте, і немає відгалужених гілок, вона стає плодом (представлена
O
)
- Ось можливі конфігурації зростання
Конфігурації росту:
_ \ | / _ _ \ | / \ | / _
| | | | | \ \ \ \ / / / / __ \_ |_ _| _/ __
--- Vertical Branches --- --- Diagonal Branches --- --- Horizontal Branches ---
Приклад потенційного дерева:
\
/ /
\/O |___//
\_/ \//O\_/
\__/|\|_/
\|/
__________________|__________________
Вхід:
Ваша програма повинна мати можливість приймати як вхід список тих знімків дерева, які ви хотіли б побачити. Наприклад, [10,20,50] означатиме, що ви хочете побачити дерево через 10 сезонів, 20 сезонів і 50 сезонів.
Вихід:
Для кожного сезону введення програма повинна виводити сезон, а потім зображення дерева в цьому сезоні. Якщо це допомагає, ви можете визначити максимальний вік для дерева, наприклад 60, так що максимальна висота для дерева була б 61, а максимальна ширина - 121, а потім завжди показуйте дерево в цій шкалі. Інакше сміливо масштабуйте своє зображення на будь-якому розмірі дерева. Наприклад, якщо вхід був [0,1,2,3], ваш вихід може бути:
Season 0:
_|_
Season 1:
\
__|__
Season 2:
_
\|
___|___
Season 3:
|_/ _
\|
____|___
Переможець
Кожне рішення повинно розміщувати висновок улюбленого циклу програми програми із введенням даних [10,40]
разом із вихідним кодом. Крім того, ВСЕ вищевказані критерії повинні бути виконані, щоб отримати право.
Переможець стане кваліфікатором, який набере найбільшу кількість голосів.
Успіхів і веселих посадок !!!