Доведено, що наступні 13 квадратних плиток Ванга завжди плиткою площини аперіодично . Це означає, що коли квадрати розташовані в сітці з усіма сусідніми сторонами одного кольору, переклад візерунка ніколи не збігається з самим собою.
Кожну плитку ми зобразимо текстуально 3 × 3 сіткою, заповненою пробілами в центрі та кутах, а цифрами від 1 до 5 замість кольорів червоного, зеленого, синього, жовтого, сірого на краях:
2 2 2 1 1 1 4 3 2 2 4 3 2
1 2 1 3 2 3 2 1 3 1 3 2 4 4 4 4 4 5 4 5 5 5 5 5 5 4
3 2 3 2 3 2 1 2 1 4 1 2 2
Мета
Ваше завдання - написати програму, яка займає ширину і висоту і виводить дійсну сітку для плитки Ванга з цими розмірами. Дійсною плиткою є та, в якій всі сусідні краї плитки мають однаковий колір (або число). Виграє найменша програма в байтах.
Ваш вхід повинен надходити з аргументів stdin або командного рядка, а вихідний повинен переходити до stdout. Точний формат введення може бути будь-яким досить очевидним, наприклад >>> wangtiler 3 2
. Ширина та висота завжди є цілими додатними.
Приклад (ширина = 3, висота = 2)
Зауважте, що коли ми розкладаємо текстові плитки, сусідні краї утворюють необхідні зайві пари цифр:
1 2 1
2 11 22 1
2 3 2
2 3 2
4 55 55 4
1 2 2
(Це НЕ належний вихідний формат.)
Ми можемо стиснути їх по горизонталі та вертикалі, щоб отримати:
1 2 1
2 1 2 1
2 3 2
4 5 5 4
1 2 2
Цей стислий формат - це правильний вихідний формат, який ви повинні використовувати. Непарні нумеровані лінії повинні містити їх пробіл.
Графічний бонус
Замість того, щоб мати текстовий вихід, ваша програма може вивести зображення плиткової сітки. Графічна плитка повинна складатися з чотирьох трикутників 45-45-90, розташованих у квадраті, та використовувати п’ять кольорів, що легко відрізняються, як плитки вище. Чорні межі не потрібні. Графічна плитка має бути розміром не менше 32 × 32 пікселів. Ніяке «стиснення» до них не застосовується.
Приклад бонусного зображення: (така ж сітка, як приклад вище)
Бонус коштує мінус 150 байт.
Примітки
- Ви повинні використовувати цей набір з 13 плиток.
- Плитка може не обертатися.
- Плитки можуть з’являтися будь-яку кількість разів (навіть не включаючи жодної).
- Ви можете припустити, що можлива допустима плитка з будь-якими розмірами.