Sonnenblumen-Code: Nur die höchste Blütenzahl ernten

Sonnenblumen geben Power. Der Bonus kommt nur, wenn du die Blume mit den meisten Blütenblättern erntest.

So funktionieren Sonnenblumen wirklich

  • Auf Soil pflanzen. `till()`, bis `Grounds.Soil` erreicht ist. Der Standardboden heißt jetzt Grassland, ältere Texte sagten Turf.
  • `measure()` liefert die Anzahl der Blütenblätter (meist 7 bis 15).
  • Ernte nur das aktuelle Maximum. Danach neu messen.
  • Ernte nicht einfach jede reife Blume in einer Schleife. Das ist der häufigste Fehler.

Funktionierendes Sonnenblumen-Skript

Feld pflanzen, alle Felder scannen, nur die beste Blume ernten, wiederholen.

python
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_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()
            if can_harvest():
                harvest()
            if get_entity_type() != Entities.Sunflower:
                plant(Entities.Sunflower)

def harvest_current_max():
    size = get_world_size()
    best = 0
    bx = -1
    by = -1
    found = False
    for y in range(size):
        for x in range(size):
            go_to(x, y)
            if get_entity_type() == Entities.Sunflower and can_harvest():
                petals = measure()
                if (not found) or petals > best:
                    best = petals
                    bx = x
                    by = y
                    found = True
    if not found:
        return False
    go_to(bx, by)
    harvest()
    return True

clear()
while True:
    plant_field()
    while harvest_current_max():
        pass

Wenn das Skript nichts tut

  • Sonnenblumen erst freischalten und wachsen lassen.
  • Für mehr Power das Feld voll halten, damit der Bonus weiter auslöst.