§ 1호박 재배 사이클
호박은 "심고 → 기다리고 → 수확"의 단순한 사이클이지만, 기다림이 핵심이다.
plant(Entities.Pumpkin)으로 심고, use_item(Items.Fertilizer)로 비료를 주어 성장을 가속한다. 그리고 while not can_harvest(): continue로 다 자랄 때까지 기다린다.
measure()가 None을 반환하면 호박이 아직 생성되지 않은 것이다. 이때도 plant()를 반복해야 한다.
while get_entity_type() != Entities.Pumpkin:
plant(Entities.Pumpkin)
use_item(Items.Fertilizer)
while not can_harvest():
if get_entity_type() == Entities.Dead_Pumpkin:
break
continue
§ 2깨진 호박 보수: pumpchk()
f0.py의 pumpchk()는 격자 전체를 순회하며 measure()==None(깨진 호박)인 타일을 찾아 기록하고, 그 후 기록된 위치를 순서대로 방문하여 재심는다.
이때 sort.py의 quick_sort_replant_coords()가 좌표를 대각선 합(x+y) 기준으로 정렬하여 최소 이동 경로를 만든다.
§ 3다중 드론 분할 작전
mainPumpkinSolver는 4개 드론을 사분면으로 분할한다. 각 드론이 맵의 1/4을 담당한다.
mainMultiSolver는 더 복잡하다: 좌표에 따라 작물을 결정한다. (x < 10, y < 10)이면 호박, 그 외는 grass 또는 companion plant.
counter % 4에 따라 드론이 담당하는 사분면이 결정된다:
counter%4==0 → 우상단 (world, world)
counter%4==1 → 좌하단 (1, 1)
counter%4==2 → 우하단 (world, 1)
counter%4==3 → 좌상단 (1, world)
§ 4Companion Planting
plantHandlers.py의 handle_companion_plant()는 get_companion()로 짝 지어진 식물을 확인하고, 해당 위치로 이동하여 심는다. 이것은 게임의 "companion planting" 메커니즘 — 특정 엔티티가 다른 위치의 엔티티와 짝을 이루어야 하는 제약 — 을 처리한다.