Шестикутна тесселяція або нахили площини триколірні - це означає, що, використовуючи лише три кольори, такі як червоний, синій та зелений, кожен шестикутник можна пофарбувати без двох шестикутників, які мають загальну межу, що розділяє колір. Частковий приклад, що показує таку закономірність.
З огляду на часткове шестикутне облицювання в ASCII (через STDIN, зчитування з файлу тощо), змініть кольори символів (за допомогою ANSI-кодів, маніпулювання зображеннями тощо), щоб відповідати цьому фарбуванню. Скрутка - середина шестикутників ( *
внизу) - це три кольори, а лінії між ними повинні бути сумішшю двох відповідних шестикутних *
кольорів. Якщо лінія знаходиться на зовнішній межі, вона повинна відповідати відповідній *
.
Наприклад, враховуючи часткову шестикутну плитку
/ \ / \ / \ / \
| * | * | * | * |
\ / \ / \ / \ /
| * | * | * |
\ / \ / \ /
припустимо, ми вирішимо пофарбувати верхній лівий шестигранник *
у червоний колір , а його двох сусідів - синій та зелений (йде за годинниковою стрілкою). Тоді |
лінія повинна бути пурпуровою, а /
лінія повинна бути жовтою. Якщо ми продовжимо фарбувати, ми врешті-решт закінчимо щось подібне (збільшене для наочності):
Або для введення
/ \
| * |
/ \ /
| * |
/ \ /
| * |
\ /
ви можете розфарбувати його так (збільшено для наочності):
Кілька додаткових тестових випадків (ваш код повинен мати змогу впоратися з ними):
/ \ / \
| * | * |
\ / \ /
| * |
/ \ / \
| * | * |
\ / \ /
/ \
| * |
\ / \
| * |
/ \ /
| * |
\ /
/ \
| * |
\ /
Правила
- Гарантоване вхід має принаймні один шестикутник, і жоден вхід не матиме «дірку».
- Вам не потрібно починати фарбування червоним кольором, поки ви дотримуєтесь правила триколірного.
- Якщо часткова плитка може бути двоколірною, ви можете зробити це без штрафних санкцій (як, наприклад, у другому прикладі) - не обов'язково екстраполювати часткову плитку на повну плитку.
- Центри шестикутника
*
повинні бути пофарбовані червоним, блакитним або зеленим кольором, а лінії між ними повинні бути або синім, жовтим, або пурпуровим. Наприклад, має Magenta*
не допускається, а червоний|
або\
або/
повинні знаходитися на зовнішньому кордоні малюнка. Дивіться Кольори нижче. - Якщо ваша консоль не має цих точних кольорів, скористайтеся найближчим наближенням та вкажіть у своїй відповіді, яке наближення ви використовуєте.
- Простір провідних або кінцевих пробілів, включаючи прокладки нових рядків, є прийнятними до тих пір, поки символи не вирівнюються.
- Часткова плитка може бути введена за допомогою пробілу для формування прямокутника, якщо це полегшить ваш код.
- Прийнятна або повна програма, або функція. Якщо функція, ви можете повернути вихід, а не надрукувати його.
- Вихід може бути на консолі, зберегти у вигляді зображення тощо.
- Стандартні лазівки заборонені.
- Це код-гольф, тому застосовуються всі звичайні правила гольфу, і найкоротший код (у байтах) виграє.
Кольори та кольорові суміші:
Три доступні базові кольори (з кольоровими кодами у десятковому форматі RGB):
- Червоний
(255,0,0)
- Зелений
(0,255,0)
- Синій
(0,0,255)
Комбінації:
- Червоний і зелений поєднуються, щоб зробити Жовтий
(255,255,0)
- Синій і зелений поєднуються, щоб зробити блакитний
(0,255,255)
- Червоний і Синій поєднуються, щоб зробити пурпуровий
(255,0,255)
*