python3 main.py -h - help
python3 main.py FILE_NAME - консольный вариант
python3 -g main.py FILE_NAME - GUI вариант
python3 -n X main.py FILE_NAME - выведет первые X решений, если столько есть
На вход подаётся имя файла с головоломкой
В папке test_files
лежит несколько примеров файлов
Геометрия входа: Тор, т.е. нет строгой границы сверху/снизу и по бокам
Головоломка задаётся цифрами так, что 0 - это пустая клетка, цифры отличные от нуля соответствуют себе и в каждой строке цифры разделены пробелом
В итоге образуется прямоугольник соответствующий изначальной головоломке
Всё решение происходит в модулях в папке src
Само решение головоломки происходит в Solver.py
, туда передаётся
поле полученное после парсинга в Field.py
данных из файла
Внутри Solver.py
есть вспомоготельный класс SolvePath,
который собирает путь воедино после того как он был найден
Point.py
задаёт вспомогательный класс точки
SolutionBuilder.py
строит двумерный массив для каждого решения,
где между клетками добавляются линии обозначающие путь
Интерфейсы находятся в папке interfaces
CUI.py
- консольный интерфейс, который отрисовывает решения
в консоли, где -
- горизонтальная, |
- вертикальная линия
GUI.py
- оконный интерфейс сделанный при помощи tkinter
,
в созданом окне отрисовываются решения, если решения не влезают на один экран
то окно можно прокрутить при помощи скролбара
Все тесты находятся в файле Tests.py
Тесты проверяют все модули ответственные за решение, т.е расматривается
покрытие тестами папки src
Покрытие составляет 100%