The Farmer был заменен на Pumpkin Code — Patch Dead Tiles, Then Harvest
Написано для текущей сборки 1.0+ (эра нескольких дронов). Тыквы сливаются в один гигантский урожай. Простая петля сбора сворачивает слияние. Отслеживайте мертвые плитки, пересаживайте и собирайте урожай только тогда, когда каждая плитка - живая тыква.
1.0 тыквенные правила (что изменилось по сравнению со старыми советами)
- Растение на почве: «till()» до «Grounds.Soil». Посадка тратит морковь (галочка `get_cost(Entities.Pumpkin)`).
- Примерно 1 из 5 тыкв умирает при созревании и оставляет «Entities.Dead_Pumpkin». «can_harvest()» всегда ложно на мертвой плитке. Мертвые плитки блокируют гигантское слияние.
- Полностью выращенные соседние тыквы сливаются. Выход составляет **n³** для длины стороны 1–5, затем **6·n²** от 6×6 до (32×32 → 6,144). Собирайте урожай рано, и вы получите только небольшие кластеры.
- Вода ускоряет рост (до 5раз на уровне воды 1), но не останавливает смертность. Посадка чего-либо на мертвую тыкву очищает его (вики). Дополнительно удобрите * * новое * * растение после пересадки, чтобы сократить время роста на 2 секунды.
Стратегия: растение → трек плохая плитка → патч → урожай
Не сканируйте всю ферму вечно. После первого прохода сохраните список координат, которые являются пустыми, мертвыми или еще не собираемыми. Возвращайтесь только к этим плиткам.
- Завод До + посадите каждую плитку один раз.
- Трек: Добавьте `[x, y]`, когда `not can_harvest()` или сущность Dead_Pumpkin.
- Патч: Пересадка через мертвый/пустой; опционально `use_item(Items.Fertilizer)` на новом заводе.
- Сбор урожая: Когда плохой список пуст, «собрать урожай()» один раз в любом месте гигантской тыквы.
Сценарий обучения (один дрон)
Использует только документированные API. Никаких придуманных помощников. После Megafarm разделите ферму на петли колонн/секторов — см. примечание для нескольких дронов ниже.
def go_to(x, y):
while get_pos_x() != x:
if get_pos_x() < x:
move(East)
else:
move(West)
while get_pos_y() != y:
if get_pos_y() < y:
move(North)
else:
move(South)
def plant_full_field():
size = get_world_size()
for y in range(size):
for x in range(size):
go_to(x, y)
if get_ground_type() != Grounds.Soil:
till()
# Planting over Dead_Pumpkin removes it (wiki). No harvest needed.
plant(Entities.Pumpkin)
if get_water() < 0.75:
use_item(Items.Water)
def collect_bad_tiles():
bad = []
size = get_world_size()
for y in range(size):
for x in range(size):
go_to(x, y)
ent = get_entity_type()
if ent == Entities.Dead_Pumpkin or ent != Entities.Pumpkin or not can_harvest():
bad.append([x, y])
return bad
def patch_bad(bad):
# Only revisit problem tiles until the list is empty
while len(bad) > 0:
still_bad = []
for pos in bad:
x = pos[0]
y = pos[1]
go_to(x, y)
ent = get_entity_type()
if ent != Entities.Pumpkin:
# Dead_Pumpkin or empty: planting clears dead (wiki)
if get_ground_type() != Grounds.Soil:
till()
plant(Entities.Pumpkin)
still_bad.append([x, y])
elif not can_harvest():
# Live but still growing — wait
still_bad.append([x, y])
# else: live + harvestable — drop from list
bad = still_bad
clear()
while True:
plant_full_field()
bad = collect_bad_tiles()
patch_bad(bad)
# Full grid is live pumpkins → giant merge should be ready
go_to(0, 0)
harvest() Как проверить размер тыквы с помощью меры() (тыквенная мера)
- На тыквах «measure()» возвращает стабильный идентификатор для этой объединенной тыквы (одинаковое значение на каждой плитке одной и той же гигантской тыквы).
- Чтобы проверить, слилось ли **целое квадратное поле**: измерьте один угол, измерьте противоположный угол; если значения совпадают, соберите урожай.
- Надежно работает на **квадратных** монокультурных тыквенных полях. Прямоугольные смешанные поля могут сливаться в нечетные фигуры — тогда продолжайте использовать список плохих плиток.
- Это ответы на поиск ** меры тыквы ** и **как проверить размер тыквы **, не придумывая отдельную страницу.
Пример помощника, который вы можете вызвать после `patch_bad(...)`:
def pumpkin_fully_merged():
size = get_world_size()
go_to(0, 0)
if get_entity_type() != Entities.Pumpkin or not can_harvest():
return False
a = measure()
go_to(size - 1, size - 1)
if get_entity_type() != Entities.Pumpkin or not can_harvest():
return False
return measure() == a
# After patch_bad(...):
go_to(0, 0)
if pumpkin_fully_merged():
harvest() Дальнейшее масштабирование с помощью флота дронов? Смотрите несколько дронов Гайд.
Multi-drone (Megafarm) — сентябрь-октябрь 2026 консенсус
- Дроны **не** делятся глобалами. Дайте каждому дрону свой собственный диапазон столбцов или прямоугольник; не добавляйте к одному общему списку бэд-тайлов от каждого дрона.
- `spawn_drone(fn)` then `wait_for(handle)` to sync phases (plant → patch → harvest). Pattern: `if not spawn_drone(task): task()`.
- Фермы-лидеры поливают каждую плитку и плотно затягивают петлю плохой плитки — посты в сообществе сообщают о многомиллионной тыкве/мин с параллельными секторами.
- Полные паттерны Megafarm: руководство по нескольким дронам