Takuzu - це логічна гра, в якій вам доведеться заповнити сітку з клітинками, що містять 0s і 1s. Сітка повинна відповідати 3 правилам:
- Немає трьох горизонтальних або вертикальних послідовних комірок не може бути однаковим.
- У кожному рядку та стовпці повинно бути однакове число
0s і1s. - Жоден два рядки не можуть бути однаковими, і жоден два стовпці не можуть бути однаковими.
Давайте розглянемо готову сітку:
0011
1100
0101
1010
Як бачите, ця рада дотримується правила 1, 2і 3. Немає трьох горизонтальних чи вертикальних комірок, які однакові, усі рядки та стовпці містять однакову кількість 0s і 1s, і жодних двох рядків та двох стовпців немає однакових.
Давайте розглянемо сітку, яка не є дійсною:
110100
010011
011010
101100
100011
001101
З цією сіткою є маса проблем. Наприклад, рядок 5має три 0s підряд, а стовпець 2- три 1s підряд, а потім три 0s. Тому це не дійсна сітка.
Завдання:
Ваше завдання - скласти програму, яка, даючи 2D масив n* n 0s і 1s, перевіряє плату, щоб переконатися, що це дійсна, закінчена плата Takuzu.
Приклади:
0011
1100
0101
1010
Ця рада дотримується всіх правил, тому є дійсною дошкою Takuzu. Ви повинні повернути для цього значення "truthy".
11
00
Це не дійсна дошка - рядок 1не відповідає правилу 2. Ви повинні повернути для цього значення фальси.
100110
101001
010101
100110
011010
011001
Це не дійсна дошка, вона виходить з ладу (лише) через правило 3 - перший і четвертий рядки однакові.
110100
001011
010011
101100
100110
011001
Це не дійсна дошка, вона виходить з ладу (лише) через правило 3 - перший і четвертий стовпці однакові.
011010
010101
101100
010011
100110
101001
Це дійсна дошка.
Правила та характеристики:
- Можна припустити, що всі дошки мають квадратні розміри
n * n, деnдодатне парне ціле число. - Можна припустити, що всі дошки закінчені.
- Ви можете взяти введення в масиві 2D , що містять значення означають
0і1, або у вигляді рядка. - Ви повинні виводити послідовні значення truthy та falsey для truthy та falsey дощок, а значення, що представляють "truthy" та "falsey", не можуть бути однаковими.
Це код-гольф , тому найкоротший код у байтах виграє!