На смену фермеру пришел код динозавра — змеиный путь, а затем кости

Шляпа динозавра - это не скрипт. Вы надеваете его, появляются яблоки, если вы можете заплатить кактус, каждое яблоко вырастает хвостом позади вас, и вы получаете кости только тогда, когда снимаете шляпу. Сначала прочитайте идею. Скопируйте длинный скрипт последним, если он вообще есть.

Нарисованный от руки мультфильм дрона в шляпе динозавра над фермерской сеткой с одним яблоком

Шаг 1 — Наденьте шляпу

Ничего связанного с динозаврами не происходит, пока дрон не наденет шляпу. Одна функция, одно имя шляпы. После этой строки, если у вас достаточно кактусов, игра покупает яблоко и кладет его под дрон.

python
change_hat(Hats.Dinosaur_Hat)

Только один дрон может носить эту шляпу. clear() также надевает соломенную шляпу и протирает ферму.

Шаг 2. Почему кактус важен

Яблоко не засажено растением(). Игра расходует кактусы из вашего инвентаря. Если у вас их нет, яблоко не появляется и гоняться не за чем. Проверьте счетчик, прежде чем начинать длительный запуск.

python
if num_items(Items.Cactus) == 0:
    print("need cactus before the hat is useful")

Шаг 3 — Перемещайтесь один раз, чтобы есть, а не собирать урожай

Стоять на яблоке недостаточно. Следующий успешный ход съедает его и добавляет одну хвостовую плитку на поле, которое вы только что оставили. harvest() - неправильный инструмент здесь. Если вы можете себе это позволить, новое яблоко помещается на случайную пустую плитку. Посаженный урожай на этой плитке блокирует икру.

python
# hat is on, apple is under the drone
move(East)
# that move ate the apple and grew the first tail tile

Шаг 4. Хвост — это стена

move() возвращает False, если следующий фрагмент - ваш собственный хвост. Последний кусок хвоста скользит по мере движения, поэтому вы можете наступить на эту плитку. В шляпе динозавра дрон также не может обернуться вокруг края фермы. Когда хвост заполняет всю ферму, каждое движение терпит неудачу — вот как вы узнаете, что он полностью вырос.

python
if can_move(North):
    move(North)
else:
    print("blocked by tail or the farm edge")

Шаг 5 — Спросите у яблока, где следующее

measure() на яблоке возвращает пару: координаты следующего яблока. Делайте это, пока вы все еще стоите на текущем яблоке, прежде чем двигаться. После того, как вы поедите, идите к этим двум числам. По прибытии измерьте еще раз.

python
next_x, next_y = measure()
print(next_x, next_y)

Шаг 6 — Кости только после снятия шляпы

Переключитесь на любую другую шляпу, и хвост будет собран. Вы получаете n квадратных костей, где n - длина хвоста: 1, 4, 9, 16, … Хвост длиной 16 - это 256 костей. Вы не собираете хвост с помощью harvest().

python
change_hat(Hats.Straw_Hat)
# tail is gone; inventory gained n**2 Items.Bone

Опционально: одна небольшая тренировочная ферма

Полноразмерная ферма занимает много времени, и вам может не понадобиться столько костей. set_world_size() сжимает сетку (минимум 3), а также очищает ее. Эффект заканчивается, когда программа останавливается. Ниже приведен тренировочный цикл, в котором используются только идеи из приведенных выше шагов: сжать, надеть шляпу, измерить, пройтись, остановиться при блокировке, снять шляпу.

python
set_world_size(5)
clear()
change_hat(Hats.Dinosaur_Hat)

def walk_to(x, y):
    while get_pos_x() != x or get_pos_y() != y:
        if get_pos_x() < x:
            if not move(East):
                return False
        elif get_pos_x() > x:
            if not move(West):
                return False
        elif get_pos_y() < y:
            if not move(North):
                return False
        else:
            if not move(South):
                return False
    return True

while True:
    nxt = measure()
    if nxt == None:
        break
    next_x, next_y = nxt
    if not walk_to(next_x, next_y):
        break

change_hat(Hats.Straw_Hat)

Это путь обучения, а не путь в таблицу лидеров. Он специально столкнется с собственным хвостом, чтобы вы могли видеть остановку. Носите шляпу только после того, как ферма опустеет, чтобы яблоки могли нереститься.

1.0 стоимость шляпы (вики)

  • При включенной шляпе динозавра `move()` стоит **400** тиков вместо 200. Каждое съеденное яблоко уменьшает это на 3% (округлено в меньшую сторону).
  • Только один дрон может носить шляпу. Во время ношения его нельзя наматывать на край фермы.
  • `print()` стоит целую секунду — используйте `quick_print()` в циклах.

Все еще актуально (октябрь 2026 г.)

Погоня за яблоками в шляпе динозавра и n² костей при обмене шляпами остаются задокументированными правилами базовой игры. Сочетания клавиш в таблице лидеров Hamiltonian находятся в репозиториях GitHub сообщества — эта страница остается учебным путем.