Skip to content

Hvv007/Numberlink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Numberlink

Usage

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%

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages