Головоломка Hitori
Данное приложение имеет 2 режима работы: интерактивный и режим решения.
Интерактивный режим.
Программа генерирует карту головоломки Hitori (с размерами от 3 до 5), которую можно решить внутри программы.
Режим решения.
Решает введеную головоломку с размерами от 3 до 9
Также представлены 3 типа правил 1-Classic 2-Extended, 3-Triangle. Classic - классическое Hitori с квадратным полем, Extended - Hitori с прямоугольным полем и дополнительным условием: закрашенные клетки не могут находится по диагонали, Triangle - Hitori с треугольным полем со следующими правилами: так как в тругольниках нет прямых вертикальных линий, их заменяют диагональные. Пример:
[1]
2 [3]
[1] [3] 2
в квадратных скобках выделены конфликтующие клетки, диагонали в этом треугольнике:1, 2, 1; 1, 3, 3; 2, 3; 3, 3; 1; 2, ну и конечно учитываются горизонтальные линии.
Чтобы запустить программу необходимо запустить файл main.py с консоли (python main.py). Далее следует выбор правил, и затем выбор режима работы. Для установки нужных библиотек введите: pip install -r requrements.txt
Запуск в интерактивном режиме
python3 main.pyРешение головоломки через командную строку:
python3 main.py -s "4,2,4;1,5,5;1,1,5" -m Classic -a-
флаг
-s --solveпринимает строку с данными о головоломке- форматы, которые принимаются:
"x,y,z...;a,b,c...;...""x y z ... a b c ..."- Для
Extendedв формате выше требуется приписать размер поля:"x y z ... a b c ...:[widht]x[height]"
- форматы, которые принимаются:
-
флаг
-f --fileпринимает строку с путём до файла.txt, в котором лежат данные о головоломке- Для режима
Triangleполе задается только через файл
python3 main.py -f "Tests/Boards/board_4.txt" -m Triangle -a- Принимаемый формат такой же, с добавлением формата, в котором в качестве разделителя строк используется
\n:4 2 3 1 4 2 2 3 4 1 4 2
- Для режима
-
Вместе с флагом
-sили-fнужно указать флаг режима головоломки-m --mode:Classic,Extended,Triangle -
Флаг
-a --allиспользуется для отображения всех решений головоломки
Решение Extended головоломки, с указанием всех решений
python3 main.py -s "4 2 3 1 4 2 2 3 4 1 4 2:3x4" -m Extended -aРешение Сlassic головоломки, с указанием всех решений
python3 main.py -s "6 3 7 4 2 5 7 1 7 4 3 7 5 5 7 1 2 1 3 4 7 7 7 2 1 4 1 2 3 1 6 7 5 7 1 4 2 5 7 6 1 2 2 3 7 6 2 3 4" -m Classic -aРешение Extended головоломки в файле
python3 main.py -f "Tests/Boards/board_1.txt" -m ExtendedРешение Triangle головоломки в файле, с указанием всех решений
python3 main.py -f "Tests/Boards/board_4.txt" -m Triangle -a