npm install
npm run serve
npm run build
npm run lint
Hеобходимо посчитать количество доменов в гексагональной решётке.
Ячейкам решётки м.б. присвоено значение 0 или 1. Если 2 ячейки, имеющие одинаковое значение, имеют общую грань, то они входят в один домен.
В решётке, изображённой на рисунке можно определить 3 различных домена, отображённых на рисунке цветами. Подразумевается, что бесцветным ячейкам присвоено значение 0.
Предложить пользователю ввод размера односвязной гексагональной области ( L,N,M<=30 - три поля ввода с валидацией, на примере L=3, M=5, N=7). После ввода размера отобразить (по отдельной кнопке) на странице пустую гексагональную решётку заданного размера с возможностью ручного ввода значений в ячейки (изменение 0\1 и наоборот щелчком мыши на ячейке).
Программа должна определять количество доменов в заданной решётке, ячейки которых имеют значение 1, (кнопка «Посчитать домены») и выделить цветом ячейки, входящие в домен. Цвета разных доменов должны отличаться. Предусмотреть поле для вывода количества доменов.
Также реализовать автоматическое заполнение решётки по отдельной кнопке «АВТО» значениями 0 или 1 с предварительным указанием вероятности использования единицы (вероятность от 0,01 до 0,99) в отдельном поле ввода с валидацией. По нажатию кнопки «АВТО» также следует рассчитывать количество доменов и раскрашивать их.
После каждого автоматического заполнения и расчета количества доменов в полученной решётке добавлять строку в таблице (внизу страницы) следующего вида:
Вероятность | Всего доменов | Неодносвязных | L | M | N | Количество ячеек в решетке | Количество выбранных ячеек (1) |
---|---|---|---|---|---|---|---|
0.434234 | 12 | --- | 3 | 5 | 7 | 123 | 12 |
Ограничить количество строк результата в таблице значением 10. Т.е. при попытке вставить 11-ую строку стирается строка 1, происходит сдвиг строк вверх, данные записываются в последнюю строку.
Подсчет неодносвязных областей
В ручном режиме не совсем корректно работает перекрашивание сложной фигуры при удалении элемента.
То есть - если выделенная область неодносвязна, например кольцо,
0 0 0 1 1 1 0 0 0
0 0 1 0 0 0 1 0 0
0 0 1 0 0 0 1 0 0
0 0 0 1 1 1 0 0 0
Убрать 2 элемента, чтобы разорвать кольцо
0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 0
0 0 0 1 1 1 0 0 0
В итоге получим 2 односвязных области.
Ожидаемый результат - одна из них перекрасится в другой цвет.
Финальный результат - начальная область разрывается, и имеем 2 разных области одинакового цвета.