КИРИЛЛ ТКАЧЕНКО, инженер 1-й кат., ФГАОУ ВО «Севастопольский государственный университет», tkachenkokirillstanislavovich@gmail.com
Рекурсивный поиск в глубину в 1С на примере решения головоломки «Отшельник»
Рассматривается решение головоломки класса стратегия без игры – выигрывающей стратегии типа «Отшельник». Применяется ряд базовых возможностей языка 1С, пригодных для организации рекурсивного счета и обработки основополагающих типов данных
Достаточно часто изучение любого языка программирования начинается с азов его лексики, синтаксиса и семантики. Но при этом невозможно научиться программировать, не решая практические задачи. Типовые алгоритмы и структуры данных позволяют из них, как из элементарных конструктивов, выполнять построение подавляющего большинства программ, требуемых в практической деятельности, – системного развития цифровой экономики и промышленности. Зато всегда остаются такие ситуации, которые нельзя обойти и исключить. Например, перебор вариантов для поиска решения.
Иногда такой перебор изысканно алгоритмически и программно может быть выполнен рекурсивным поиском в глубину. Начиная с некоторого начального приближения или этапа решения рассматриваются все решения, исходящие из него, затем также для полученных решений, пока не будут просмотрены все возможные. На некотором этапе может быть получен итоговый результат или все возможные результаты.
Разработаем модуль управляемого приложения на встроенном языке 1С для нахождения хотя бы одного существующего решения головоломки «Отшельник» |
Отличной иллюстрацией такого поисково-переборного подхода являются задачи-головоломки, решение которых заключено в стратегии для одного игрока, называемые «выигрывающими стратегиями» [1]. Простейшей головоломкой изтакого класса является «Отшельник» или «Йога». Для этой головоломки широко представлены программные реализации поиска в глубину, в частности, на языке программирования Go [2] в качестве характерного «хеллоу-ворлда». Адаптированные варианты из [2] приведены в [3] на ряде императивных высокоуровневых языков.
Не решенной ранее является программная реализация решения головоломки в системе 1С. Это хорошо проиллюстрирует не только богатые возможности 1С по внедрению рекурсивных алгоритмов вообще и поиска в глубину в частности, но и для раннего этапа становления специалиста укажет путь в область использования широкого охвата языковых средств этой системы и встроенных подпрограмм.
Разработаем модуля управляемого приложения на встроенном языке 1С для нахождения хотя бы одного существующего решения головоломки «Отшельник» при использовании для этого рекурсивного поиска в глубину.
Для набора и отладки программы требуется создать новую пустую конфигурацию и дальнейшие действия с листингом совершать в редакторе.
Статью целиком читайте в журнале «Системный администратор», №10 за 2017 г. на страницах 55-57.
PDF-версию данного номера можно приобрести в нашем магазине.
- Арсак Ж. Программирование игр и головоломок. – М.: Наука, 1990. – 224 с.
- This program solves the (English) peg solitaire board game. [Электронный ресурс] / Ресурс переменной длины. – Режим доступа: http://play.golang.org/p/JWwEyecar0. – Загл. с экрана. (Online).
- Ткаченко К.С. Головоломка «Отшельник». Реализации решения «выигрывающих стратегий». // «Системный администратор», № 10, 2014 г. – С. 82-85 (http://samag.ru/archive/article/2803).
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|