The Farmer Was Replaced - Codebeispiele

Vollständige Codebeispiele aus dem Spiel mit detaillierten Erklärungen. Kopieren und fügen Sie diese Codes direkt in Ihr Spiel ein, um Ihre Fähigkeiten in der Farmautomatisierung zu verbessern.

Beispiel 1: Grundlegende automatische Ernte

Das einfachste Automatisierungsskript, das kontinuierlich reifes Gras erntet.

python
# Grundlegende automatische Ernte - Das einfachste Automationsskript
# Dies überprüft kontinuierlich und erntet reife Pflanzen
while True:
    if can_harvest():
        harvest()
    # Das Spiel pausiert automatisch zwischen den Iterationen

📊 Code Analysis

6
Lines
0
Functions
1
Loops
2
Conditions

Beispiel 2: Automatischer 3×3-Farm-Durchlauf

Automatisch alle Felder durchlaufen und ernten.

python
# 3x3-Farm automatischer Durchlauf - Systematisches Bewirtschaftungsmuster
# Dieses Skript bewegt sich in einem Gittermuster, um die gesamte Farm abzudecken
while True:
    # Immer zuerst nach erntefähigen Pflanzen suchen
    if can_harvest():
        harvest()

    # Zum nächsten Feld bewegen (Ost-Richtung)
    move(East)

    # Beim Erreichen des Zeilenendes zur nächsten Reihe bewegen (Nord)
    # get_world_size() gibt die Größe deiner Farm zurück (normalerweise 3x3 oder 5x5)
    if get_pos_x() == get_world_size() - 1:
        move(North)

Beispiel 3: Mehrfachfrucht-Automatisierung (Gras + Busch + Karotte)

Verschiedene Früchte basierend auf der Spaltenposition anbauen.

python
# Mehrfachfrucht-Automatisierung - Verschiedene Früchte pro Spalte
# Demonstriert bedingte Logik und Ressourcenmanagement
while True:
    # Immer zuerst ernten was bereit ist
    if can_harvest():
        harvest()

    # Aktuelle Position abrufen (x-Koordinate)
    x = get_pos_x()

    # Spaltenbasierte Pflanzstrategie:
    if x == 0:
        # Spalte 0: Gras natürlich wachsen lassen (kostenlose Ressource)
        pass  # Keine Aktion nötig
    elif x == 1:
        # Spalte 1: Büsche für Holz pflanzen
        plant(Entities.Bush)
    elif x == 2:
        # Spalte 2: Karotten pflanzen (erfordert Bodenbearbeitung)
        # Überprüfen ob Boden Erde ist, falls nicht, umpflügen
        if get_ground_type() != Grounds.Soil:
            till()
        # Sicherstellen, dass wir Karottensamen haben
        if num_items(Items.Carrot_Seed) < 1:
            trade(Items.Carrot_Seed)  # Samen kaufen falls nötig
        plant(Entities.Carrot)

    # Zur nächsten Spalte bewegen
    move(East)
    # Beim Erreichen des Zeilenendes zur nächsten Reihe bewegen
    if x == get_world_size() - 1:
        move(North)

Beispiel 4: Schachbrettartiges Pflanzen von Bäumen

Bäume benötigen schachbrettartiges Pflanzen, um Benachbarte zu vermeiden.

python
# Schachbrett-Pflanzmuster - Raum-effiziente Landwirtschaft
# Bäume können nicht nebeneinander gepflanzt werden, daher Schachbrettmuster verwenden
while True:
    # Alle reifen Pflanzen ernten
    if can_harvest():
        harvest()

    # Aktuelle Koordinaten abrufen
    x = get_pos_x()  # Aktuelle Spalte (0, 1, 2, etc.)
    y = get_pos_y()  # Aktuelle Reihe (0, 1, 2, etc.)

    # Schachbrett-Logik: Bäume auf "schwarzen Feldern", Büsche auf "weißen Feldern"
    # Dies stellt sicher, dass keine zwei Bäume nebeneinander stehen (Bäume brauchen Platz)
    if (x % 2 == 0 and y % 2 == 0) or (x % 2 == 1 and y % 2 == 1):
        # "Schwarze Felder" - Bäume pflanzen
        plant(Entities.Tree)
    else:
        # "Weiße Felder" - Büsche pflanzen
        plant(Entities.Bush)

    # Zum nächsten Feld bewegen
    move(East)
    # Zur nächsten Reihe wechseln wenn Ende der aktuellen Reihe erreicht
    if x == get_world_size() - 1:
        move(North)

Beispiel 5: Ressourcen-Prioritätsmanagement

Intelligentes Ressourcenmanagement, Priorisierung der Sammlung knapper Ressourcen.

python
# Ressourcen-Prioritätsmanagement - Intelligente Ressourcenverteilung
# Passt die Bewirtschaftungsstrategie automatisch an aktuelle Lagerbestände an
while True:
    # Immer zuerst ernten - dies ist unsere Hauptaktion
    if can_harvest():
        harvest()

    # Aktuelle Position für Pflanzentscheidungen abrufen
    x = get_pos_x()

    # Ressourcenbasierte Pflanzstrategie mit Prioritäten:

    # PRIORITÄT 1: Heuvorrat sicherstellen (essenziell für Handel und Fütterung)
    if num_items(Items.Hay) < 500:
        # Nichts pflanzen - Gras natürlich wachsen lassen für kostenloses Heu
        pass  # Keine Aktion nötig

    # PRIORITÄT 2: Holzvorrat aufrechterhalten (für verschiedene Upgrades benötigt)
    elif num_items(Items.Wood) < 300:
        # Büsche pflanzen um Holz zu erzeugen
        plant(Entities.Bush)

    # PRIORITÄT 3: Karottenreserven aufbauen (für Nahrung und fortgeschrittenen Handel)
    elif num_items(Items.Carrot) < 200:
        # Karotten pflanzen (erfordert Bodenbearbeitung)
        if get_ground_type() != Grounds.Soil:
            till()  # Boden vorbereiten falls nötig
        if num_items(Items.Carrot_Seed) == 0:
            trade(Items.Carrot_Seed)  # Samen kaufen wenn wir keine haben
        plant(Entities.Carrot)

    # Zum nächsten Feld in systematischem Muster bewegen
    move(East)
    if x == get_world_size() - 1:
        move(North)

Beispiel 6: Automatisches Bewässerungssystem

Automatisiertes Bewässerungssystem, beschleunigt das Pflanzenwachstum bis zu 5-fach.

python
# Automatisches Bewässerungssystem - Fortgeschrittene Pflanzenbeschleunigung
# Hält Wassertanks bereit und beschleunigt Pflanzenwachstum bis zu 5-fach
while True:
    # WASSERMANAGEMENT: Ausreichende Wasserversorgung sicherstellen
    # Wassertanks sind essenziell für die Beschleunigung des Pflanzenwachstums
    if num_items(Items.Water_Tank) < 100:
        # Für leere Tanks handeln wenn wir nicht genug haben
        trade(Items.Empty_Tank)

    # WASSERANWENDUNG: Wasser verwenden wenn Pflanzen es brauchen
    # get_water() gibt Hydrationslevel zurück (0.0 bis 1.0)
    # 0.75 bedeutet Pflanzen sind 75% hydriert - Wasser wenn darunter
    if get_water() < 0.75:
        use_item(Items.Water_Tank)  # Wasser auf aktuelles Feld anwenden

    # ERNTE: Immer zuerst nach reifen Pflanzen suchen
    if can_harvest():
        harvest()

    # PFLANZEN: Karotten-Pflanzenzyklus aufrechterhalten
    # Boden vorbereiten falls nötig (Karotten benötigen umgegrabenen Boden)
    if get_ground_type() != Grounds.Soil:
        till()  # Rasen/Gras in Erde umwandeln
    # Sicherstellen dass wir Samen haben bevor wir pflanzen
    if num_items(Items.Carrot_Seed) < 1:
        trade(Items.Carrot_Seed)  # Samen kaufen falls nötig
    plant(Entities.Carrot)  # Karottensamen pflanzen

    # BEWEGUNG: Systematische Traversierung fortsetzen
    move(East)
    if get_pos_x() == get_world_size() - 1:
        move(North)

Beispiel 7: Funktionskapselung

Funktionen verwenden, um Code klarer und lesbarer zu machen.

python
# Funktionskapselung - Code-Organisation und Wiederverwendbarkeit
# Komplexe Logik in wiederverwendbare Funktionen aufteilen

# FUNKTION: Bewegung zum nächsten Feld im Gittermuster handhaben
def move_to_next():
    """Zum nächsten Feld bewegen, zur nächsten Reihe wechseln wenn Ende erreicht"""
    x = get_pos_x()
    move(East)  # Immer zuerst versuchen ostwärts zu bewegen
    # Wenn wir das Ende der aktuellen Reihe erreicht haben, nordwärts zur nächsten Reihe
    if x == get_world_size() - 1:
        move(North)

# FUNKTION: Karottenpflanzen mit allen notwendigen Vorbereitungen handhaben
def plant_carrot():
    """Karotte mit Bodenbearbeitung und Samenmanagement pflanzen"""
    # Sicherstellen dass wir geeigneten Boden für Karotten haben
    if get_ground_type() != Grounds.Soil:
        till()  # Boden vorbereiten falls nötig
    # Sicherstellen dass wir Karottensamen haben
    if num_items(Items.Carrot_Seed) < 1:
        trade(Items.Carrot_Seed)  # Samen kaufen wenn wir keine haben
    # Karotte pflanzen
    plant(Entities.Carrot)

# HAUPTPROGRAMM: Saubere, lesbare Logik mit unseren Funktionen
while True:
    # Alle reifen Pflanzen ernten (immer zuerst tun)
    if can_harvest():
        harvest()

    # Karottenproduktion aufrechterhalten wenn Lager niedrig
    if num_items(Items.Carrot) < 100:
        plant_carrot()  # Unsere Funktion für sauberen Code verwenden

    # Mit unserer Bewegungsfunktion zur nächsten Position bewegen
    move_to_next()  # Saubere, wiederverwendbare Bewegungslogik

Beispiel 8: Sonnenblumen-Energieoptimierung

Sonnenblumen-Optimierungsstrategie, nur hochenergetische Blumen ernten.

python
# Sonnenblumen-Energieoptimierung - Fortgeschrittene Messung und Auswahl
# Dieses Skript demonstriert Schleifen, Arrays und Optimierungsalgorithmen

# PHASE 1: Alle Sonnenblumen auf der Farm pflanzen und messen
sunflowers = []  # Array zur Speicherung der Energiemessungen
world_size = get_world_size()

# Sonnenblumen auf jedem Feld pflanzen und Energie messen
for i in range(world_size * world_size):
    # Boden vorbereiten falls nötig
    if get_ground_type() == Grounds.Turf:
        till()

    # Sonnenblume pflanzen (für Samen handeln wenn wir keine haben)
    if num_items(Items.Sunflower_Seed) > 0 or trade(Items.Sunflower_Seed):
        plant(Entities.Sunflower)

    # Energie messen wenn Sonnenblume gepflanzt wurde
    if get_entity_type() == Entities.Sunflower:
        energy = measure()  # Sonnenblumen-Energie-Wert abrufen
        sunflowers.append(energy)  # In unserem Array speichern

    # Zum nächsten Feld in zeilenweiser Reihenfolge bewegen
    move(East)
    if get_pos_x() == 0:  # Ende der Reihe erreicht
        move(North)  # Zur nächsten Reihe bewegen

# PHASE 2: Die Sonnenblume mit höchster Energie finden
max_val = 0
max_index = 0
# Alle Messungen durchlaufen um Maximum zu finden
for i in range(len(sunflowers)):
    if sunflowers[i] > max_val:
        max_val = sunflowers[i]  # Max-Wert aktualisieren
        max_index = i  # Position der besten Sonnenblume merken

# PHASE 3: Zur optimalen Sonnenblume bewegen und ernten
# (In einer realen Implementierung bräuchte man Bewegungslogik zur max_index Position)
# Für jetzt nehmen wir an wir sind an der richtigen Position
if measure() == max_val:  # Doppelte Überprüfung dass wir bei der richtigen Blume sind
    if can_harvest():
        harvest()  # Höchstenergetische Sonnenblume ernten