Вступ
Морріс Дев'яти чоловіків (його ще називають Міллз) - це настільна гра для двох гравців, яка грається на наступній дошці (зображення, зняте із пов'язаної сторінки Вікіпедії):
У кожного гравця 9 чоловіків, кольорові чорно-білі. Конкретні правила не важливі для цього виклику, але перегляньте сторінку Вікіпедії, якщо вам це цікаво.
Змагання
Беручи під увагу сітку в якості вхідних даних, який представляє певний boardstate, вихід загальної кількості млини m
з 0<=m<=8
.
Три чоловіки одного кольору утворюють млин, коли вони перебувають у прямому ряду з'єднаних точок. b2
щоб f2
НЕ млин , так як люди різного кольору. Крім того, d2
щоб d5
не утворювати млин, оскільки три точки повинні бути з'єднані.
Дошка на зображенні вище містить, наприклад, дві млини. Один від f2
до f6
і один від e3
до e5
.
Вхідні дані
Дошка представлена у вигляді двовимірної сітки з 24 точками, які з'єднані, як показано на прикладі зображення вище. У прикладі використовуються літери a-g
для стовпців та цифри 1-7
для рядків, але ви можете обрати будь-який розумний формат введення, якщо він відображає 24 унікальних координати в один із наступних станів:
- Порожній
- Узятий чорним
- Узятий білим
Конкретна репрезентація залежить від вас, якщо ви не обмежуєтесь кольорами "b" чи "w".
Крім цього, ваш внесок може не містити додаткової інформації.
Додаткові нотатки
- Не потрібно зіставляти точки за будь-якими значеннями. Якщо ви хочете взяти вхід як двовимірний масив, це теж добре. Але майте на увазі, що не всі пункти там використовуються і вам доведеться враховувати зв’язки між ними.
- Вхід може бути порожнім, і тоді вам доведеться вивести нуль (порожня дошка -> без млинів).
- Оскільки у кожного гравця 9 чоловіків, то вхід ніколи не буде містити більше 18 очок.
- Ви можете залишити порожні точки на вході, а отже, лише ті точки введення, які прийняті.
- Введення даних можна замовити будь-яким способом. Ви не можете розраховувати на певне замовлення.
- Ви можете припустити, що введення завжди буде дійсним. Це означає, що не буде більше 9 чоловіків кожного кольору і кожна точка буде унікальною.
Правила
- Поясніть, який формат введення ви використовуєте у своєму рішенні. Надання прикладного запуску програми настійно рекомендується.
- Дозволена функція або повна програма.
- Правила вводу / виводу за замовчуванням .
- Застосовуються стандартні лазівки .
- Це кодовий гольф , тому виграє найменший байт. Tiereaker є більш раннім поданням.
Тестові кейси
Формат введення тут - це список кортежів з координатами, як у наведеному вище прикладі, як перший елемент та стан точкового другого елемента. Точка, взята білим кольором, позначена як "w", а точка, взята чорною як "b". Усі інші пункти залишені та порожні.
[("a4", "w"), ("b2", "b"), ("b4", "b"), ("c4", "b"), ("d1", "w") , ("d2", "w"), ("e3", "w"), ("e4", "w"), ("e5", "w"), ("f2", "b") , ("f4", "b"), ("f6", "b"), ("g4", "w")] -> 2 [("a1", "b"), ("a4", "b"), ("a7", "b"), ("b4", "b"), ("c4", "b") , ("d3", "w"), ("d2", "w"), ("d1", "w")] -> 3 [] -> 0 [("b4", "b"), ("a4", b "), (" c4 ", w")] -> 0 [("b4", "b"), ("a4", b "), (" c4 ", b")] -> 1 [("a1", "b"), ("a4", "b"), ("a7", "b"), ("b2", "b"), ("b4", "b") , ("b6", "b"), ("c3", "b"), ("c4", "b"), ("c5", "b"), ("e3", "w") , ("e4", "w"), ("e5", "w"), ("f2", "w"), ("f4", "w"), ("f6", "w") , ("g1", "w"), ("g4", "w"), ("g7", "w")] -> 8
Щасливе кодування!
d3
і d5
не підключені. Правила говорять: Three men of the same color form a mill when they are in a straight row of connected points.
. Я додав кілька прикладів у цей розділ, щоб зрозуміти, дякую за коментар!