У своєму попередньому виклику я малював першу діаграму здебільшого вручну (за допомогою режиму візуального блоку vim). Але, безумовно, повинен бути кращий спосіб ...
З огляду на введення двох розмірів, ширини та висоти, вивести шестикутну сітку з тими розмірами в арт.
Ось діаграма, на яку посилається вступ (з незначними правками), яка має бути результатом для введення даних width=7, height=3
:
_____ _____ _____
/ \ / \ / \
_____/ -2,-1 \_____/ 0,-1 \_____/ 2,-1 \_____
/ \ / \ / \ / \
/ -3,-1 \_____/ -1,-1 \_____/ 1,-1 \_____/ 3,-1 \
\ / \ / \ / \ /
\_____/ -2,0 \_____/ 0,0 \_____/ 2,0 \_____/
/ \ / \ / \ / \
/ -3,0 \_____/ -1,0 \_____/ 1,0 \_____/ 3,0 \
\ / \ / \ / \ /
\_____/ -2,1 \_____/ 0,1 \_____/ 2,1 \_____/
/ \ / \ / \ / \
/ -3,1 \_____/ -1,1 \_____/ 1,1 \_____/ 3,1 \
\ / \ / \ / \ /
\_____/ \_____/ \_____/ \_____/
Зауважте кілька речей:
Ширина і висота по суті еквівалентні тому, скільки існує шестикутників для заданої координати y і x відповідно. Це завжди будуть непарні числа.
Кожен шестикутник представлений у статті ASCII
_____ / \ / \ \ / \_____/
але межі "розділені" між сусідніми шестикутниками.
Кома в координатах завжди рівно на два символи нижче центру верхнього краю. Потім координата x розміщується безпосередньо перед комою, а координата y безпосередньо після.
Ви можете припустити, що координати ніколи не будуть занадто великими, щоб вони перекривали межі шестикутника.
Введення може сприйматися як рядок, розділений пробілом / комою, масив цілих чисел або два аргументи функції / командного рядка. Вихід повинен бути одним рядком (STDOUT, як повернене значення тощо).
Оскільки це код-гольф , найкоротший код у байтах виграє.
Сітка вище може бути використана як тестовий випадок. width=199, height=199
Сітка максимального розміру
, очевидно, не включати сюди, але перші кілька рядків і стовпців мають виглядати наступним чином:
_____ ___
/ \ /
_____/-98,-99\_____/-96,
/ \ / \
/-99,-99\_____/-97,-99\___
\ / \ /
\_____/-98,-98\_____/-96,
/ \ / \
/-99,-98\_____/-97,-98\___
\ / \ /
\_____/-98,-97\_____/-96,
/ \ / \
/-99,-97\_____/-97,-97\___
\ / \ /