Код дерева для фермера был заменен — Шахматная доска Деревянная ферма
Деревья сбрасывают 5 деревьев — лучше, чем кусты, — но они ненавидят разделять край. Каждое соседнее дерево удваивает время роста. Четыре соседа в 16раз медленнее. Внутриигровая подсказка `% 2`.
Ищете код дерева? Эта страница является полным скриптом шахматной доски. основные коды узловые связи здесь и с другими культурами.
Правила дерева (вот почему болит смежность)
- Выращенное дерево дает 5 древесины. Кусты дают меньше, поэтому деревья - это урожай древесины, как только вы их разблокируете.
- Вы можете сажать на траву или почву. `till()` не является обязательным для деревьев.
- Учитываются только север, восток, юг и запад. Каждое из этих соседних деревьев **удваивает** время роста. 1 сосед = 2×, 2 = 4×, 3 = 8×, 4 = 16×.
- Диагонали не учитываются. На шахматной доске деревья соприкасаются только по углам.
Почему шахматная доска, а не сплошное древовидное поле
Если вы заполните каждую плитку деревьями, середина фермы окружена с четырех сторон и растет в 16раз медленнее. Дерево в секунду разрушается, хотя каждая плитка - это дерево.
Посадите деревья, где `(x + y) % 2 == 0` (или нечетный цвет — оба работают). Положите кусты на другой цвет, чтобы эти плитки все еще производили. Внутриигровая подсказка использует `% 2`.
- Прочитано: `get_pos_x()` и `get_pos_y()`.
- Деление: Even sum → `plant(Entities.Tree)`. Нечетная сумма → `растение(Entities.Bush)`.
- Цикл: `can_harvest()`, затем `harvest()`, plant, `move`.
Четные плитки = деревья, нечетные плитки = кусты
Код дерева для копирования
Step 1 Тест `% 2`
Тот же цвет, что и внутриигровая подсказка. Поменяйте местами `== 0` и `== 1`, если вам нужны деревья на других квадратах.
x = get_pos_x()
y = get_pos_y()
if (x + y) % 2 == 0:
plant(Entities.Tree)
else:
plant(Entities.Bush) Step 2 Сканирование, сбор урожая, посадка, перемещение
Собирайте урожай, если он готов, затем сажайте правильный урожай для этого цвета, затем ходите по сетке. Повторяйте вечно.
Полный исходный код
Pythondef 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)
clear()
while True:
size = get_world_size()
for y in range(size):
for x in range(size):
go_to(x, y)
if can_harvest():
harvest()
if (x + y) % 2 == 0:
plant(Entities.Tree)
else:
plant(Entities.Bush) Дополнительный полив
Вода ускоряет рост. Это не отменяет штраф за смежность — дерево с четырьмя соседями еще в 16раз медленнее, всего в 16раз медленнее на влажной почве. Добавьте это после «растение(...)».
if get_water() < 0.75:
use_item(Items.Water) Далее: тыквы, затем поликультура
Когда древесина стабильна, разблокируйте тыквы. Примерно 1 из 5 погибает; собирайте гигантский урожай только тогда, когда вся сетка будет готова. Код тыквы
Поликультура приходит позже. `get_companion()` говорит вам, какую культуру текущее растение хочет в качестве соседа. Это другой макет, чем эта шахматная доска — не смешивайте эти две идеи. Гайд по коду поликультуры
1.0 заметка для нескольких дронов
После Мегафермы дайте каждому дрону полоску колонны. Дроны не делятся глобалами. Вода с `use_item(Items.Water)` — `Items.Water_Tank` и `trade()` удалена.