Можно ввести понятие основного цикла – это путь от любой позиции в ту же позицию. Если рассмотреть проталкивание ящика по основному циклу, то можно выделить точки на этом цикле, из которых грузчику приходится возвращаться назад и проходить путь по основному циклу без ящика. Эти точки принадлежат узлам.
Пусть
- длина цикла,
- число узлов,
- число ячеек,
- score.
Для узлов вида
#####
#...##
#.....
##.###
#.# , где
- число ячеек не принадлежащих основному циклу. Красными точками отмечен путь ящика. При возвращении грузчику приходится дополнительно проходить по пути отмеченном синими точками.
или
Например для уровней 1_128, 1_256, 1_512, 1_1024
Код:
##### ####
# ##### #
# #
##### ###### #
# # ##### ##
# # ## ##
##### ## # #
# # #### # #
# # ## #####
##### ## # #
# # #### # #
# # ## #####
## ## # #
## ##### # #
## ###### #####
## ######@#####
# ######*####
# #
# ####### #
##############
верна формула
, из которой легко находятся
с максимальным
(1090, 4226, 16642, 66050 ). Как располагать узлы значения не имеет.
Для уровней без возврата на место можно использовать стакан и приемник:
Код:
####
# @#
# $#
# #
# $#
#### #
# # $########
# $ ### #
#### ### #
# ## ###.#### #####
# ##.### # #
# # ##.### #
## ######.### ## ##
# ############## ##
## ## ###### # #
# ###### #
# # ####### ## #
##### ######## #####
# ######## ##
## ######## #
# #
# ####### #
##### ####
Но черт прячется в деталях
- нужно посмотреть результаты.