На смену фермеру пришел код динозавра — змеиный путь, а затем кости
Шляпа динозавра - это не скрипт. Вы надеваете его, появляются яблоки, если вы можете заплатить кактус, каждое яблоко вырастает хвостом позади вас, и вы получаете кости только тогда, когда снимаете шляпу. Сначала прочитайте идею. Скопируйте длинный скрипт последним, если он вообще есть.
Шаг 1 — Наденьте шляпу
Ничего связанного с динозаврами не происходит, пока дрон не наденет шляпу. Одна функция, одно имя шляпы. После этой строки, если у вас достаточно кактусов, игра покупает яблоко и кладет его под дрон.
change_hat(Hats.Dinosaur_Hat) Только один дрон может носить эту шляпу. clear() также надевает соломенную шляпу и протирает ферму.
Шаг 2. Почему кактус важен
Яблоко не засажено растением(). Игра расходует кактусы из вашего инвентаря. Если у вас их нет, яблоко не появляется и гоняться не за чем. Проверьте счетчик, прежде чем начинать длительный запуск.
if num_items(Items.Cactus) == 0:
print("need cactus before the hat is useful") Шаг 3 — Перемещайтесь один раз, чтобы есть, а не собирать урожай
Стоять на яблоке недостаточно. Следующий успешный ход съедает его и добавляет одну хвостовую плитку на поле, которое вы только что оставили. harvest() - неправильный инструмент здесь. Если вы можете себе это позволить, новое яблоко помещается на случайную пустую плитку. Посаженный урожай на этой плитке блокирует икру.
# hat is on, apple is under the drone
move(East)
# that move ate the apple and grew the first tail tile Шаг 4. Хвост — это стена
move() возвращает False, если следующий фрагмент - ваш собственный хвост. Последний кусок хвоста скользит по мере движения, поэтому вы можете наступить на эту плитку. В шляпе динозавра дрон также не может обернуться вокруг края фермы. Когда хвост заполняет всю ферму, каждое движение терпит неудачу — вот как вы узнаете, что он полностью вырос.
if can_move(North):
move(North)
else:
print("blocked by tail or the farm edge") Шаг 5 — Спросите у яблока, где следующее
measure() на яблоке возвращает пару: координаты следующего яблока. Делайте это, пока вы все еще стоите на текущем яблоке, прежде чем двигаться. После того, как вы поедите, идите к этим двум числам. По прибытии измерьте еще раз.
next_x, next_y = measure()
print(next_x, next_y) Шаг 6 — Кости только после снятия шляпы
Переключитесь на любую другую шляпу, и хвост будет собран. Вы получаете n квадратных костей, где n - длина хвоста: 1, 4, 9, 16, … Хвост длиной 16 - это 256 костей. Вы не собираете хвост с помощью harvest().
change_hat(Hats.Straw_Hat)
# tail is gone; inventory gained n**2 Items.Bone Опционально: одна небольшая тренировочная ферма
Полноразмерная ферма занимает много времени, и вам может не понадобиться столько костей. set_world_size() сжимает сетку (минимум 3), а также очищает ее. Эффект заканчивается, когда программа останавливается. Ниже приведен тренировочный цикл, в котором используются только идеи из приведенных выше шагов: сжать, надеть шляпу, измерить, пройтись, остановиться при блокировке, снять шляпу.
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 сообщества — эта страница остается учебным путем.