Автор Тема: Программа SBP на сдвигание фигур  (Прочитано 1421 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kosshams

  • Новичок
  • *
  • Сообщений: 46
  • Пол: Мужской
Программа SBP на сдвигание фигур
« : 12 января 2022, 13:50:32 »
Вот моя программа SBP для редактирования и решения задач типа пятнашек на сдвигание фигур из квадратных клеток:
http://kosshams.ru/Programs/SBP/SBP.zip

Программу я написал в 2016 году и потом много раз дорабатывал. Она была выставлена на форуме http://www.nontwistypuzzles.ru/, но летом 2020 года я обнаружил, что он перестал работать и эта программа отсутствовала для общего доступа. Программу я написал по предложению Сергея Рыбалки, он же в ней ввел огромное количество головоломок.
В SBP самый проработанный пользовательский интерфейс из всех моих программ по головоломкам. 8 видов ходов. Возможность ограничивать направление движения фигурок, задавать штырьки и желобки (идея Кирилла Гребнева), стенки, нумеровать и давать имена фигуркам, накладывать картинку. Реализован режим игры, когда можно самому решать головоломку.
Есть 32 и 64-битные версии: SBP32.exe и SBP64.exe. В 64-битной доступно больше 4 ГБ памяти, что существенно для решения некоторых задач.
В прилагаемом архиве содержится только одна простая головоломка, изображенная на картинке.
« Последнее редактирование: 04 января 2024, 19:14:38 от kosshams »

Оффлайн Plut`on

  • Глобальный модератор
  • *****
  • Сообщений: 1 661
  • Пол: Мужской
  • коллекционер
    • мои коллекции
Re: Программа SBP на сдвигание фигур
« Ответ #1 : 12 января 2022, 18:34:36 »
Отличная программа, спасибо!
Периодически пользуюсь, но у меня была не последняя версия. Сейчас скачаю заново.

Оффлайн grigr

  • Глобальный модератор
  • *****
  • Сообщений: 5 259
  • Пол: Мужской
  • кручу-верчу
    • Мой Магазин
Re: Программа SBP на сдвигание фигур
« Ответ #2 : 12 января 2022, 23:23:24 »
Супер!!!

Оффлайн kosshams

  • Новичок
  • *
  • Сообщений: 46
  • Пол: Мужской
Re: Программа SBP на сдвигание фигур
« Ответ #3 : 17 июня 2022, 17:15:26 »
Выложил последнюю версию программы по тому же пути:
http://kosshams.ru/Programs/SBP/SBP.zip
В zip архиве лежат 32 и 64 битные версии, но я рекомендую всегда пользоваться 64-битной, так как она быстрее в 1.6 раза и позволяет использовать больше 4ГБ памяти.
1. Добавил в программу встречный перебор вариантов, позволяющий находить кратчайшее решение в задачах, где количество всех позиций не умещается в памяти, например, в пятнашках:


Встречный перебор реализован, когда конечная позиция определена однозначно - на ней стоят все фигурки, и только в случае, когда ход обратим, иначе его реализация была бы для меня слишком трудоемкой. То есть когда обратный ход является обычным ходом. Это не так, если одна фигурка может толкнуть другую не с самого начала хода, когда она может толкать более одной фигурки параллельно, а также в гравитационном случае.
В распределении позиций по слоям перебора буквой S помечены слои, относящиеся к прямому фронту, распространяющемуся от начальной позиции, а буквой E - к обратному фронту от конечной позиции.

2. Для задач типа пятнашек теперь проверяется возможность решения по критерию четности перестановки.

Также хочу отметить одну особенность программы. При нахождении разных кратчайших решений, не в случае встречного перебора, не может быть, чтобы у двух найденных решений некоторая позиция, не являющаяся конечной, была одинаковая, но предшествующие ей позиции различались. В том числе из этого следует, что найденные решения будут отличаться последним ходом. В случае встречного перебора то же самое верно для частей решения, относящихся к прямому и обратному фронту. При этом получается, что достаточно, чтобы у решений отличались позиции, предшествующие схождению прямого и обратного фронта, и это может дать гораздо больше решений, чем без встречного перебора.
« Последнее редактирование: 04 января 2024, 19:15:29 от kosshams »

Оффлайн grigr

  • Глобальный модератор
  • *****
  • Сообщений: 5 259
  • Пол: Мужской
  • кручу-верчу
    • Мой Магазин
Re: Программа SBP на сдвигание фигур
« Ответ #4 : 18 июня 2022, 10:36:02 »
Спасибо! развитие это всегда хорошо!

Оффлайн kosshams

  • Новичок
  • *
  • Сообщений: 46
  • Пол: Мужской
Re: Программа SBP на сдвигание фигур
« Ответ #5 : 04 января 2024, 19:13:18 »
Реализовал в программе мосты у фигурок, как в головоломке Оскара Plumber's Nightmare (https://twistypuzzles.com/forum/viewtopic.php?t=37795).

Вот ссылка на скачивание программы SBP (версия 2.5) с 6 примерами Оскара: http://kosshams.ru/Programs/SBP/SBP.zip.

Например, головоломка №22 редактируется и решается следующим образом:







Здесь использован "кооперативный" ход, но можно применить все 8 видов ходов данной программы.
Мосты изображаются кругами.  Вот, что написано в справке:

При нажатой кнопке с подсказкой "Рисовать клетки мостов для выделенной фигурки" для выделенной фигурки можно рисовать и стирать мосты. Высота мостов для фигурки задается в окне нумерации фигурок. Там же можно задать отображение высоты мостов вместо номеров фигурок. В одной клетке не могут одновременно находиться мосты одинаковой высоты от двух разных фигурок. Если мост фигурки находится над клеткой этой же фигурки, то он поднимается с этой клетки и блокирует нахождение над ней мостов меньших высот от других фигурок. Чтобы мосты могли выходить за пределы поля, нужно расширить поле и оградить клетки расширения стенками. Тогда фигурки не смогут туда попадать, а мосты смогут.

Пример (№9), когда расширяем поле дополнительной клеткой, огороженной стенками:


Оффлайн grigr

  • Глобальный модератор
  • *****
  • Сообщений: 5 259
  • Пол: Мужской
  • кручу-верчу
    • Мой Магазин
Re: Программа SBP на сдвигание фигур
« Ответ #6 : 05 января 2024, 00:45:23 »
вот первоначальный симулятор
http://puzzlebeast.com/conslide/index.html


Оффлайн kosshams

  • Новичок
  • *
  • Сообщений: 46
  • Пол: Мужской
Re: Программа SBP на сдвигание фигур
« Ответ #7 : 05 января 2024, 02:32:15 »
вот первоначальный симулятор
http://puzzlebeast.com/conslide/index.html
Например, для приведенного grigr 18-го уровня из этого симулятора (обладающего наибольшим числом ходов в решении - 143):



в моей программе оба варианта размещения оранжевого моста: по более левой или по более правой клетке - не дают решения. То есть, середина моста обязана быть между двумя клетками. А я реализовал более новый дизайн этой головоломки, когда мосты рисуются точно над клетками. Пока не знаю, как малыми трудозатратами реализовать и первоначальный вариант.
« Последнее редактирование: 05 января 2024, 12:16:19 от kosshams »

Оффлайн grigr

  • Глобальный модератор
  • *****
  • Сообщений: 5 259
  • Пол: Мужской
  • кручу-верчу
    • Мой Магазин
Re: Программа SBP на сдвигание фигур
« Ответ #8 : 05 января 2024, 19:17:13 »
как много тут нюансов...