Завдання:
Розглянемо проблему: "давши шаховій дошці з відсутністю одного квадрата, розріжте її на 21 L-триоміно". Існує добре відомий конструктивний доказ того, що це можна зробити для будь-якого квадратного розміру шахової дошки потужністю два. Це працює, розбиваючи шахівницю на меншу шахівницю з отвором у ній і однією великою тріоміно, а потім спостерігаючи, що це тріоміно можна рекурсивно розрізати на чотири триоміно.
У цьому завданні вам потрібно вирізати шахову дошку розміром 8х8 на трійчасті форми у формі L, а потім пофарбувати їх чотирма кольорами, щоб жодні дві сусідні триоміно не мали одного кольору.
Специфікація:
Ваш вхід - це положення дірки, яке задається у вигляді пари цілих чисел. Ви можете вибрати, який - індекс стовпця, а індекс - рядок. Ви можете вибрати, якщо кожен починається на 0 або на 1, і далеко від кута вони збільшуються. Вам може знадобитися A..H в якості першої координати замість 0..7 або 1..8. Ви також можете прийняти обидві координати, упаковані в одне ціле число 0..63 або 1..64 в лексикографічному порядку (рядок-великий або стовпець-великий, зліва направо або справа наліво, вгору вниз або вниз вгору). Ви можете написати повну програму або функцію.
Ви можете виводити плитку як ASCII, як кольоровий ASCII або як графічний примітив. Якщо ви виберете вихід ASCII, ви можете вибрати будь-які чотири символи для друку ASCII, які представлятимуть чотири кольори. Якщо ви вибрали кольоровий ASCII, ви можете обрати будь-які чотири символи для друку ASCII або лише один символ, крім пробілу. Отвір повинен бути представлений символом пробілу. Якщо один із ваших персонажів є символом пробілу, жодне тріоміно, що примикає до отвору чи на краю шахової дошки, не може бути такого кольору.
Якщо ви вибрали кольоровий ASCII або графічний вихід, ви можете вибрати будь-які чотири кольори з # 000, # 00F, # 0F0, # 0FF, # F00, # F0F, # FF0, #FFF або їх найближчих еквівалентів, наявних у вашому середовищі. Якщо ви виберете графічний вихід, ваші графічні примітиви повинні бути заповнені квадратами розміром не менше 32х32 пікселів і розділені не більше ніж двома пікселями іншого кольору. Якщо вищезазначене перевищує роздільну здатність екрана вашого оточення, вимога до мінімального розміру зменшується до найбільшого розміру квадрата, який все ще відповідає екрану.
Ви можете вибрати будь-яку дійсну плитку даної шахової дошки. Ви можете вибрати будь-яке чотириколірне обране вами плитка. Ваш вибір з чотирьох кольорів повинен бути однаковим для всіх результатів, але вам не потрібно використовувати кожен колір у кожному висновку.
Приклади:
Можливий вихід для вводу = [0, 0] (лівий верхній кут)
#??##??
##.?#..?
?..#??.#
??##.?##
##?..#??
#.??##.?
?..#?..#
??##??##
Інший можливий вихід тієї ж програми (input = [0, 7]):
??#??#?
?##?##??
..xx..xx
.?x#.?x#
??##??##
..xx..xx
.?x#.?x#
??##??##
Для введення "D1" також може бути створена інша програма (зверніть увагу на нестандартну, але дозволену орієнтацію шахової дошки),
AABBCCAA
ACBACBAC
CCAABBCC
ABBAADD
AABDABDC
BBDDBBCC
BABBACAA
AABAACCA