
Давайте сначала сделаем вывод: эта игра, по сути, является вариантом Huarong Road с взвешиванием по длине. Суть оптимального решения заключается в том, чтобы использовать кратчайшее количество шагов, чтобы открыть канал, по которому жаворонок может пройти по прямой линии, а не аккуратно расставлять все деревянные блоки. Я провел день, тестируя первые 30 уровней, разбирая числовую логику и делясь ею с друзьями, которые хотят достичь трех звезд.
Сначала проясним скрытый механизм: длина каждого деревянного бруска определяет «эффективное направление», в котором он может двигаться. Деревянный блок длиной 2 может скользить только вдоль своей длинной оси, как и блок длиной 3, но блок длиной 1 (например, сам жаворонок) может перемещаться вбок или вертикально. Это означает, что ваша комбинация препятствий на каждом уровне по сути представляет собой матрицу ограничений: чем длиннее деревянный блок, тем ниже ваша степень свободы действий, но длинные деревянные блоки также являются ключом к созданию больших зазоров.
Я вытащил набор выборок данных из записей уровня, взяв в качестве примера уровень 7: начальные координаты Жаворонка - (2,3), выход - (4,3), посередине два горизонтальных бревна длиной 3 и вертикальное бревно длиной 2. Теоретическое минимальное количество шагов при использовании BFS (поиск в ширину) составляет 12 шагов, но большинство новичков достигают более 18 шагов. Причина в том, что они сначала передвинули короткие куски дерева, пытаясь приспособиться на небольшом участке, и в итоге застряли.
Оптимальная стратегия делится на три этапа:
Первым шагом является выявление «узкого места блока». Это кусок прямо перед выходом Скайларка. Независимо от его длины, сначала посмотрите, можно ли его перемещать вертикально или горизонтально. Если этот кусок представляет собой горизонтальную полоску длиной 3, а рядом с ней есть пустое место, то вам нужно всего лишь передвинуть ее за один шаг, и жаворонок сможет продолжить движение вперед.
Второй шаг – расчет «стоимости переезда». Перемещение каждого деревянного блока на одно пространство считается за один шаг, но учтите: после перемещения длинного деревянного блока можно оставить на месте два или даже три последовательных места, что более рентабельно, чем перемещение двух коротких деревянных блоков. Например, если деревянный блок длиной 3 переместить на 1 клетку вправо, будут очищены 3 клетки открытого пространства, что эквивалентно обмену 1 шага на 3 клетки полосы отвода; при перемещении блока длиной 1 можно очистить только 1 клетку, а эффективность шага составляет 1:1. Поэтому сначала переместите длинный деревянный брусок, даже если это займет долгий путь, оно того стоит.
Третий шаг — спланировать «дерево кратчайшего пути». Фактически размер поля каждого уровня этой игры находится в пределах 6x6. С помощью ручки нарисуйте деревянные блоки и пустые места на бумаге, и вы сможете вывести их вручную. Моя привычка - сначала рассортировать все деревянные блоки по длине, а затем работать в обратном направлении от выхода - предполагая, что жаворонок достиг пространства перед выходом, единственный блокирующий деревянный блок перед ним необходимо отодвинуть на несколько шагов. Это количество шагов назад плюс количество шагов запуска вперед является теоретическим нижним пределом. Фактическая погрешность измерения не будет превышать 2 ступеней.
Наконец, давайте поговорим о распространенном заблуждении: не задвигайте деревянные бруски по углам только для того, чтобы они выглядели лучше. Во многих дизайнах уровней углы являются тупиками, и если вы поместите туда длинный деревянный брусок, вы никогда не сможете его снова вытащить. Правильный способ сделать это — держать длинные бревна на параллельных направляющих сбоку от выхода, чтобы они очищали весь путь за один ход.
Кроме того, есть детали, которые официально не заявлены, но действительны в реальных измерениях: сам жаворонок также считается блоком длиной 1. Он может сделать шаг в противоположном направлении, чтобы освободить место для длинного деревянного блока позади него. Например, на 15 уровне вы сначала просите Жаворонка передвинуться на одну клетку влево, а затем вертикальное бревно длиной 3 может скользить вверх на две клетки, моментально очищая выходной проход, а общее количество шагов уменьшается с 21 до 14.
Если вы хотите получить трехзвездочный рейтинг (количество шагов ниже определенного порога), рекомендуется вручную выполнить три шага на каждом уровне, прежде чем сделать ход. Не спешите. Эта игра кажется простой, но численный дизайн очень строгий. Размер каждого деревянного блока застрял на краю оптимального решения — еще один шаг приведет к потере одной звезды.
После того, как вы овладеете навыками, вы сможете увидеть невооруженным глазом, где находятся «лишние шаги» на каждом уровне, и ощущение удовольствия будет не меньшим, чем от ускорения в битве с боссом. Если вы не понимаете уровень, вы можете опубликовать картинку в комментариях, и я помогу вам рассчитать оптимальную последовательность решения.