gifts2017

Кратчайший путь коня между двумя полями на шахматной доске, количество и имена битых полей

Опубликовал mr. Script (m..adm) в раздел Программирование - Практика программирования

Обработка вычисляет на шахматной доске минимальные пути ходов "Конём" к выбранному полю, а также определяет перечень битых полей. В служебных сообщениях выводится весь список минимальных путей, их количество и список битых полей. Вычисление полей производится с учетом расставленных фигур.

Перед запуском обработки необходимо указать размерность шахматной доски.

Далее, кликая по нужным полям, расставить фигуры.

Для вычисления пути необходимо отметить поле с конем и пустое поле. Отметка доступна из выпадающего меню по клику на поле. Отмеченные поля выделятся синей рамкой. По окончании отметки двух полей производится расчет минимальных ходов.

Во всех битых выделенным конем полях проставляется символ "Х". Все поля, участвующие в минимальных ходах, выделяются крассным.

Разрешена размерность шахматной доски от 8х8 до 16х16. Размерность ограничена, чтобы не "лопнул" на вычислениях ваш компьютер.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Шахматное поле
.epf 390,26Kb
23.11.15
3
.epf 1.01 390,26Kb 3 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сергей (ildarovich) 23.11.15 13:17
В статье Минимализмы в разделе 14 решается та же задача. Решение заняло 30 строк. Его можно обобщить и на произвольный размер доски и на учет занятых клеток. Там используется алгоритм, который точно не позволит "лопнуть" компьютеру на вычислениях. А сколько строк в предлагаемом решении? И насколько быстро оно работает? Возможность лопания компьютера настораживает.
2. Сан Саныч (herfis) 23.11.15 13:52
Ну, в принципе, если нужна готовая визуализация шахматной доски, то 2 стартмани не жалко. Выглядит симпатично.
Только аудитория не шибко широкая выходит для платной публикации и название не сильно подходящее :)
3. mr. Script (m..adm) 23.11.15 14:18
(1) ildarovich,
Обработка на 420 строк.
Для расчета ходов используется 110 строк кода (с операторами вывода сообщений, оформление полей и пр.)
"Лопнуть" - имеется ввиду, что при больших размерах доски и определенном размещении фигур, длинна минимального хода может быть очень большая и количество таких ходов может быть десятки тысяч. Для выдачи такой информации и обработки, как ни-крути, надо ресурс компьютера. Поэтому так написано.
Насколько быстро работает - это субъективно.
Т.к. комбинации диктуют длительность механизма вычисления. Грубо говоря, для полей размерностью 8х8 - 10х10 это доли, секунд не зависимо от размещенных фигур.

4. Александр Шишкин (Шёпот теней) 24.11.15 08:11
(3) m..adm, на вашем месте я бы прислушался к ildarovich ...

будет хорошим результатом если снизить количество строк в программе в два раза и/или во столько же раз повысить быстродействие ... задачи очень сложные и очень интересные - если конечно задаться принципом "ограниченных ресурсов" .

... вот ...
5. Alexei Zhovner (jan27) 24.11.15 09:49
(1) раздел 12, если быть точным :)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа