Gemini 4 Argon, seed 3
Cursor · medium reasoning effort
Hay 1.27b produced, 9.10 points
Wood 10.9b produced, 10.04 points
Carrot 1.31b produced, 9.12 points
Pumpkin 338m produced, 8.53 points
Cactus 1.16b produced, 9.06 points
Power 193k produced, 5.29 points
Bone 36.3m produced, 7.56 points
Weird substance 482m produced, 8.68 points
Gold 56.4m produced, 7.75 points
Water 354k produced, 5.55 points
Fertilizer 14.4k produced, 4.16 points
Produced by the end of the run. Pips: points each resource adds to the score, one per tenfold.
- Score · economy-v1
- 84.84orders of magnitude · model mean 84.01
- On seed 3
- #1of 15 models
- Cost
- $2.88API-equivalent estimate
- Real time
- 40m 44swall clock, not scored
timeline
Score and what the agent did, over game time
Ticks under the axis: upgrade purchases.
Data table
| Game time | Score |
|---|---|
| 0s | 0.00 |
| 1h 00m | 31.0 |
| 2h 00m | 52.4 |
| 3h 00m | 64.5 |
| 4h 00m | 76.3 |
| 5h 00m | 83.1 |
| 6h 00m | 84.8 |
Said: the agent's own progress messages. Thought: its thinking as the agent reported it. Read: docs and research. Wrote: program saves. Running: which program the farm ran. Text sits at the game time it was written; the game is paused while the agent thinks. Dots open the step in the log below.
how-it-played
How it played
| Measure | This run | Model mean | Seed 3 mean |
|---|---|---|---|
| Resources opened | 11 of 11 | 11 of 11 | 9.3 of 11 |
| Study | 53 | 60 | 47 |
| Action overhead | 16% | 14% | 11% |
| Tool calls | 356 | 310 | 228 |
| Program writes | 38 | 36 | 35 |
| Program stints | 42 | 37 | 41 |
| Median stint | 3m 01s | 3m 30s | 7m 13s |
| Cost per point | $0.034 | $0.044 | $0.050 |
Farm idle 4% of samples; longest stint 1h 25m; 1 rejected write.
production
Production and holdings
Each resource on its own scale. Ticks: purchases of the upgrade that feeds it. On the log scale each tenfold rise is one point.
upgrades
Upgrade timeline
Every purchase, with what the agent was told
| Game time | Call | Unlocked | Result the agent saw |
|---|---|---|---|
| 55s | {"upgrades":["loops"]} | loops 1 | Bought loops, now level 1. Paid hay 5. Its tutorial is docs page docs/scripting/while.md. |
| 3m 05s | {"upgrades":["speed","expand","plant"]} | speed 1, expand 1, plant 1 | Bought speed, now level 1. Paid hay 20. Its tutorial is docs page docs/unlocks/speed.md. |
| 8m 38s | {"upgrades":["speed","expand","carrots","operators","senses"]} | speed 2, expand 2, operators 1, senses 1 | Bought speed, now level 2. Paid wood 20. Its tutorial is docs page docs/unlocks/speed.md. |
| 10m 48s | {"upgrades":["carrots"]} | carrots 1 | Bought carrots, now level 1. Paid wood 50. Its tutorial is docs page docs/unlocks/carrots.md. |
| 14m 53s | {"upgrades":["expand","speed","grass","watering","variables"]} | expand 3, speed 3, grass 2, watering 1 | Bought expand, now level 3. Paid wood 30, carrot 20. Its tutorial is docs page docs/unlocks/expand_1.md. |
| 16m 53s | {"upgrades":["trees","variables","functions"]} | trees 1, variables 1, functions 1, functions 1 | Bought trees, now level 1. Paid wood 50, carrot 70. Its tutorial is docs page docs/unlocks/trees.md. |
| 17m 33s | {"upgrades":["trees","expand"]} | trees 2, expand 4 | Bought trees, now level 2. Paid hay 300. Its tutorial is docs page docs/unlocks/trees.md. |
| 20m 23s | {"upgrades":["carrots","grass","watering","watering","fertilizer","pumpkins"]} | carrots 2, grass 3, watering 2, watering 3, fertilizer 1 | Bought carrots, now level 2. Paid wood 250. Its tutorial is docs page docs/unlocks/carrots.md. |
| 21m 13s | {"upgrades":["pumpkins","debug"]} | pumpkins 1, debug 1 | Bought pumpkins, now level 1. Paid wood 500, carrot 200. Its tutorial is docs page docs/unlocks/pumpkins.md. |
| 23m 14s | {"upgrades":["speed","carrots","fertilizer"]} | speed 4, carrots 3, fertilizer 2 | Bought speed, now level 4. Paid carrot 500. Its tutorial is docs page docs/unlocks/speed.md. |
| 25m 12s | {"upgrades":["trees","lists","sunflowers"]} | lists 1, sunflowers 1 | Could not buy trees: Not enough resources. |
| 25m 42s | {"upgrades":["grass"]} | grass 4 | Bought grass, now level 4. Paid wood 2500. |
| 27m 44s | {"upgrades":["trees","watering"]} | watering 4 | Could not buy trees: Not enough resources. |
| 28m 04s | {"upgrades":["trees","import"]} | trees 3, import 1 | Bought trees, now level 3. Paid hay 1200. Its tutorial is docs page docs/unlocks/trees.md. |
| 30m 54s | {"upgrades":["expand"]} | expand 5 | Bought expand, now level 5. Paid pumpkin 1000. Its tutorial is docs page docs/unlocks/expand_1.md. |
| 31m 24s | {"upgrades":["speed"]} | speed 5 | Bought speed, now level 5. Paid carrot 1000. Its tutorial is docs page docs/unlocks/speed.md. |
| 39m 24s | {"upgrades":["pumpkins"]} | — | Could not buy pumpkins: Not enough resources. |
| 39m 34s | {"upgrades":["carrots","polyculture"]} | carrots 4, polyculture 1 | Bought carrots, now level 4. Paid wood 6250. Its tutorial is docs page docs/unlocks/carrots.md. |
| 40m 59s | {"upgrades":["dictionaries"]} | dictionaries 1 | Bought dictionaries, now level 1. Paid pumpkin 2500. Its tutorial is docs page docs/scripting/dicts.md. |
| 43m 59s | {"upgrades":["pumpkins"]} | pumpkins 2 | Bought pumpkins, now level 2. Paid carrot 1000. Its tutorial is docs page docs/unlocks/pumpkins.md. |
| 49m 59s | {"upgrades":["expand","fertilizer","grass","trees"]} | fertilizer 3, grass 5, trees 4 | Could not buy expand: Not enough resources. |
| 51m 39s | {"upgrades":["expand","pumpkins"]} | — | Could not buy expand: Not enough resources. |
| 53m 19s | {"upgrades":["expand","pumpkins"]} | expand 6 | Bought expand, now level 6. Paid pumpkin 8000. Its tutorial is docs page docs/unlocks/expand_1.md. |
| 55m 59s | {"upgrades":["cactus","costs","utilities","timing","hats"]} | cactus 1, costs 1, utilities 1, timing 1, hats 1 | Bought cactus, now level 1. Paid pumpkin 5000. Its tutorial is docs page docs/unlocks/cactus.md. |
| 56m 59s | {"upgrades":["carrots","pumpkins","watering","trees"]} | carrots 5, pumpkins 3 | Bought carrots, now level 5. Paid wood 31200. Its tutorial is docs page docs/unlocks/carrots.md. |
| 57m 19s | {"upgrades":["mazes","auto_unlock"]} | mazes 1, auto_unlock 1 | Bought mazes, now level 1. Paid weird_substance 1000. Its tutorial is docs page docs/unlocks/mazes.md. |
| 57m 49s | {"upgrades":["watering"]} | watering 5 | Bought watering, now level 5. Paid wood 12800. Its tutorial is docs page docs/unlocks/watering.md. |
| 1h 02m | {"upgrades":["dinosaurs","mazes"]} | dinosaurs 1, hats 1, mazes 2 | Bought dinosaurs, now level 1. Paid cactus 2000. Its tutorial is docs page docs/unlocks/dinosaurs.md. |
| 1h 06m | {"upgrades":["megafarm","trees"]} | megafarm 1, trees 5 | Bought megafarm, now level 1. Paid gold 2000. Its tutorial is docs page docs/unlocks/megafarm.md. |
| 1h 09m | {"upgrades":["polyculture"]} | — | Could not buy polyculture: Not enough resources. |
| 1h 10m | {"upgrades":["polyculture"]} | — | Could not buy polyculture: Not enough resources. |
| 1h 12m | {"upgrades":["polyculture"]} | polyculture 2 | Bought polyculture, now level 2. Paid bone 10000. Its tutorial is docs page docs/unlocks/polyculture.md. |
| 1h 17m | {"upgrades":["polyculture"]} | polyculture 3 | Bought polyculture, now level 3. Paid bone 50000. Its tutorial is docs page docs/unlocks/polyculture.md. |
| 1h 20m | {"upgrades":["dinosaurs","cactus"]} | dinosaurs 2, hats 1, cactus 2 | Bought dinosaurs, now level 2. Paid cactus 12000. Its tutorial is docs page docs/unlocks/dinosaurs.md. |
| 1h 25m | {"upgrades":["expand"]} | — | Could not buy expand: Not enough resources. |
| 1h 25m | {"upgrades":["carrots","fertilizer","watering","pumpkins"]} | carrots 6, fertilizer 4, pumpkins 4 | Bought carrots, now level 6. Paid wood 156000. Its tutorial is docs page docs/unlocks/carrots.md. |
| 1h 29m | {"upgrades":["expand","megafarm"]} | megafarm 2 | Could not buy expand: Not enough resources. |
| 1h 29m | {"upgrades":["trees","grass","watering"]} | trees 6, grass 6, watering 6 | Bought trees, now level 6. Paid hay 76800. Its tutorial is docs page docs/unlocks/trees.md. |
| 1h 30m | {"upgrades":["expand"]} | — | Could not buy expand: Not enough resources. |
| 1h 32m | {"upgrades":["expand","pumpkins"]} | expand 7, pumpkins 5 | Bought expand, now level 7. Paid pumpkin 64000. Its tutorial is docs page docs/unlocks/expand_1.md. |
| 1h 33m | {"upgrades":["watering","debug_2","simulation"]} | watering 7, debug_2 1, simulation 1 | Bought watering, now level 7. Paid wood 205000. Its tutorial is docs page docs/unlocks/watering.md. |
| 1h 43m | {"upgrades":["dinosaurs","mazes"]} | dinosaurs 3, hats 1, mazes 3 | Bought dinosaurs, now level 3. Paid cactus 72000. Its tutorial is docs page docs/unlocks/dinosaurs.md. |
| 1h 45m | {"upgrades":["megafarm"]} | — | Could not buy megafarm: Not enough resources. |
| 1h 48m | {"upgrades":["megafarm"]} | megafarm 3 | Bought megafarm, now level 3. Paid gold 32000. Its tutorial is docs page docs/unlocks/megafarm.md. |
| 1h 53m | {"upgrades":["polyculture"]} | — | Could not buy polyculture: Not enough resources. |
| 1h 58m | {"upgrades":["polyculture"]} | — | Could not buy polyculture: Not enough resources. |
| 2h 02m | {"upgrades":["polyculture"]} | polyculture 4 | Bought polyculture, now level 4. Paid bone 250000. Its tutorial is docs page docs/unlocks/polyculture.md. |
| 2h 07m | {"upgrades":["carrots","grass","grass","watering","trees"]} | carrots 7, grass 7, grass 8, trees 7 | Bought carrots, now level 7. Paid wood 781000. Its tutorial is docs page docs/unlocks/carrots.md. |
| 2h 08m | {"upgrades":["expand"]} | expand 8 | Bought expand, now level 8. Paid pumpkin 512000. Its tutorial is docs page docs/unlocks/expand_1.md. |
| 2h 14m | {"upgrades":["dinosaurs","mazes"]} | dinosaurs 4, hats 1, mazes 4 | Bought dinosaurs, now level 4. Paid cactus 432000. Its tutorial is docs page docs/unlocks/dinosaurs.md. |
| 2h 19m | {"upgrades":["cactus"]} | cactus 3 | Bought cactus, now level 3. Paid pumpkin 120000. Its tutorial is docs page docs/unlocks/cactus.md. |
| 2h 21m | {"upgrades":["pumpkins"]} | pumpkins 6 | Bought pumpkins, now level 6. Paid carrot 256000. Its tutorial is docs page docs/unlocks/pumpkins.md. |
| 2h 21m | {"upgrades":["trees","carrots","watering"]} | trees 8, carrots 8, watering 8 | Bought trees, now level 8. Paid hay 1230000. Its tutorial is docs page docs/unlocks/trees.md. |
| 2h 27m | {"upgrades":["watering"]} | watering 9 | Bought watering, now level 9. Paid wood 3280000. Its tutorial is docs page docs/unlocks/watering.md. |
| 2h 32m | {"upgrades":["expand","pumpkins","trees","grass"]} | pumpkins 7, grass 9 | Could not buy expand: Not enough resources. |
| 2h 33m | {"upgrades":["expand","cactus"]} | expand 9 | Bought expand, now level 9. Paid pumpkin 4100000. Its tutorial is docs page docs/unlocks/expand_1.md. |
| 2h 38m | {"upgrades":["cactus"]} | cactus 4 | Bought cactus, now level 4. Paid pumpkin 720000. Its tutorial is docs page docs/unlocks/cactus.md. |
| 2h 38m | {"upgrades":["trees"]} | trees 9 | Bought trees, now level 9. Paid hay 4920000. Its tutorial is docs page docs/unlocks/trees.md. |
| 2h 43m | {"upgrades":["carrots","pumpkins"]} | — | Could not buy carrots: Not enough resources. |
| 2h 47m | {"upgrades":["cactus"]} | cactus 5 | Bought cactus, now level 5. Paid pumpkin 4320000. Its tutorial is docs page docs/unlocks/cactus.md. |
| 2h 51m | {"upgrades":["dinosaurs","mazes","dinosaurs","mazes"]} | — | Could not buy dinosaurs: Not enough resources. |
| 2h 52m | {"upgrades":["dinosaurs","mazes","dinosaurs","mazes"]} | — | Could not buy dinosaurs: Not enough resources. |
| 2h 53m | {"upgrades":["dinosaurs","mazes","dinosaurs","mazes"]} | dinosaurs 5, hats 1, mazes 5 | Bought dinosaurs, now level 5. Paid cactus 2590000. Its tutorial is docs page docs/unlocks/dinosaurs.md. |
| 2h 54m | {"upgrades":["megafarm"]} | — | Could not buy megafarm: Not enough resources. |
| 2h 58m | {"upgrades":["megafarm"]} | megafarm 4 | Bought megafarm, now level 4. Paid gold 128000. Its tutorial is docs page docs/unlocks/megafarm.md. |
| 3h 06m | {"upgrades":["polyculture"]} | — | Could not buy polyculture: Not enough resources. |
| 3h 09m | {"upgrades":["polyculture"]} | polyculture 5 | Bought polyculture, now level 5. Paid bone 1250000. Its tutorial is docs page docs/unlocks/polyculture.md. |
| 3h 12m | {"upgrades":["carrots","pumpkins","trees","grass"]} | — | Could not buy carrots: Not enough resources. |
| 3h 16m | {"upgrades":["grass","trees","carrots","pumpkins"]} | grass 10, trees 10, carrots 9, pumpkins 8 | Bought grass, now level 10. Paid wood 39100000. |
| 3h 16m | {"upgrades":["megafarm"]} | megafarm 5 | Bought megafarm, now level 5. Paid gold 512000. Its tutorial is docs page docs/unlocks/megafarm.md. |
| 3h 19m | {"upgrades":["carrots","pumpkins","pumpkins"]} | carrots 10, pumpkins 9, pumpkins 10 | Bought carrots, now level 10. Paid wood 97700000. Its tutorial is docs page docs/unlocks/carrots.md. |
| 3h 20m | {"upgrades":["cactus"]} | — | Could not buy cactus: Not enough resources. |
| 3h 21m | {"upgrades":["cactus"]} | cactus 6 | Bought cactus, now level 6. Paid pumpkin 25900000. Its tutorial is docs page docs/unlocks/cactus.md. |
| 3h 22m | {"upgrades":["dinosaurs","mazes"]} | dinosaurs 6, hats 1, mazes 6 | Bought dinosaurs, now level 6. Paid cactus 15600000. Its tutorial is docs page docs/unlocks/dinosaurs.md. |
| 3h 58m | {"upgrades":["leaderboard"]} | — | Could not buy leaderboard: Not enough resources. |
| 4h 04m | {"upgrades":["leaderboard"]} | — | Could not buy leaderboard: Not enough resources. |
| 4h 07m | {"upgrades":["leaderboard"]} | leaderboard 1 | Bought leaderboard, now level 1. Paid bone 2000000, gold 1000000. Its tutorial is docs page docs/unlocks/leaderboard.md. |
Programs 39 writes, code as the agent wrote it
main.py
r130sRan
harvest() harvest() harvest() harvest() harvest() harvest() harvest() harvest() harvest() harvest()- Write result the agent saw
Saved main (10 lines). Game time: 40s elapsed, 5h 59m 20s of budget remaining.
- run_program at 40s for 20s (agent saw)
Ran main for 5s of game time; it finished. Inventory change: hay +10. Game time: 55s elapsed, 5h 59m 5s of budget remaining. Output: (none)
r21m 05sRan
while True: harvest()Changes from the previous revision
- harvest() - harvest() - harvest() - harvest() - harvest() - harvest() - harvest() - harvest() - harvest() - harvest() + while True: + harvest()
- Write result the agent saw
Saved main (2 lines). Game time: 1m 15s elapsed, 5h 58m 45s of budget remaining.
- run_program at 1m 15s for 100s (agent saw)
Ran main for 1m 40s of game time; it is still running. Inventory change: hay +200. Game time: 3m 5s elapsed, 5h 56m 55s of budget remaining. Output: (none)
- run_program at 4m 05s for 100s (agent saw)
Ran main for 1m 40s of game time; it is still running. Inventory change: no change. Game time: 5m 55s elapsed, 5h 54m 5s of budget remaining. Output: (none)
—3m 55sRejected
while True: if can_harvest(): harvest() plant(Entities.Bush) move(North) if can_harvest(): harvest() plant(Entities.Bush) move(North) if can_harvest(): harvest() move(North)- Write result the agent saw
Stop the program before editing it.
r36m 05sRan
while True: if can_harvest(): harvest() plant(Entities.Bush) move(North) if can_harvest(): harvest() plant(Entities.Bush) move(North) if can_harvest(): harvest() move(North)Changes from the previous revision
while True: - harvest() + if can_harvest(): + harvest() + plant(Entities.Bush) + move(North) + if can_harvest(): + harvest() + plant(Entities.Bush) + move(North) + if can_harvest(): + harvest() + move(North)
- Write result the agent saw
Saved main (12 lines). Game time: 6m 15s elapsed, 5h 53m 45s of budget remaining.
- run_program at 6m 15s for 100s (agent saw)
Ran main for 1m 40s of game time; it is still running. Inventory change: hay +129, wood +49. Game time: 8m 5s elapsed, 5h 51m 55s of budget remaining. Output: (none)
r49m 28sRan
while True: if can_harvest(): harvest() if get_pos_x() < 2: plant(Entities.Bush) move(North) if get_pos_y() == 0: move(East)Changes from the previous revision
if can_harvest(): harvest() - plant(Entities.Bush) - move(North) - if can_harvest(): - harvest() - plant(Entities.Bush) - move(North) - if can_harvest(): - harvest() + if get_pos_x() < 2: + plant(Entities.Bush) move(North) + if get_pos_y() == 0: + move(East)
- Write result the agent saw
Saved main (8 lines). Game time: 9m 38s elapsed, 5h 50m 22s of budget remaining.
- run_program at 9m 38s for 60s (agent saw)
Ran main for 1m of game time; it is still running. Inventory change: hay +81, wood +92. Game time: 10m 48s elapsed, 5h 49m 12s of budget remaining. Output: (none)
r511m 38sRan
while True: if can_harvest(): harvest() if get_pos_x() == 0: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_pos_x() == 1: plant(Entities.Bush) move(North) if get_pos_y() == 0: move(East)Changes from the previous revision
if can_harvest(): harvest() - if get_pos_x() < 2: + if get_pos_x() == 0: + if get_ground_type() != Grounds.Soil: + till() + plant(Entities.Carrot) + if get_pos_x() == 1: plant(Entities.Bush) move(North)
- Write result the agent saw
Saved main (12 lines). Game time: 11m 48s elapsed, 5h 48m 12s of budget remaining.
- run_program at 11m 48s for 100s (agent saw)
Ran main for 1m 40s of game time; it is still running. Inventory change: carrot +48, hay +71, wood +90. Game time: 13m 38s elapsed, 5h 46m 22s of budget remaining. Output: (none)
r615m 33sRan
while True: if can_harvest(): harvest() if get_pos_x() < 2: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75: use_item(Items.Water) if get_pos_x() == 2: plant(Entities.Bush) move(North) if get_pos_y() == 0: move(East)Changes from the previous revision
if can_harvest(): harvest() - if get_pos_x() == 0: + if get_pos_x() < 2: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) - if get_pos_x() == 1: + if get_water() < 0.75: + use_item(Items.Water) + if get_pos_x() == 2: plant(Entities.Bush) move(North)
- Write result the agent saw
Saved main (14 lines). Game time: 15m 43s elapsed, 5h 44m 17s of budget remaining.
- run_program at 15m 43s for 60s (agent saw)
Ran main for 1m of game time; it is still running. Inventory change: carrot +108, hay +81, water -4, wood +9. Game time: 16m 53s elapsed, 5h 43m 7s of budget remaining. Output: Warning: Tried to use Items.Water but didn't have enough of it. In: use_item(Items.Water) ^^ --------------------------------------------------------------------
r717m 53sRan
while True: if can_harvest(): harvest() x = get_pos_x() y = get_pos_y() if (x + y) % 2 == 0: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) else: if x < 4 and num_items(Items.Hay) > 10 and num_items(Items.Wood) > 10: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) else: if get_ground_type() == Grounds.Soil: till() move(North) if get_pos_y() == 0: move(East)Changes from the previous revision
if can_harvest(): harvest() - if get_pos_x() < 2: - if get_ground_type() != Grounds.Soil: - till() - plant(Entities.Carrot) - if get_water() < 0.75: + x = get_pos_x() + y = get_pos_y() + if (x + y) % 2 == 0: + plant(Entities.Tree) + if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) - if get_pos_x() == 2: - plant(Entities.Bush) + else: + if x < 4 and num_items(Items.Hay) > 10 and num_items(Items.Wood) > 10: + if get_ground_type() != Grounds.Soil: + till() + plant(Entities.Carrot) + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + else: + if get_ground_type() == Grounds.Soil: + till() move(North) if get_pos_y() == 0:
- Write result the agent saw
Saved main (22 lines). Game time: 18m 3s elapsed, 5h 41m 57s of budget remaining.
- run_program at 18m 03s for 120s (agent saw)
Ran main for 2m of game time; it is still running. Inventory change: carrot +177, hay +171, water -2, wood +2005. Game time: 20m 13s elapsed, 5h 39m 47s of budget remaining. Output: (none)
r828m 24sRan
while True: if num_items(Items.Pumpkin) < 5000 and num_items(Items.Carrot) > 500: for i in range(36): if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) move(North) if get_pos_y() == 0: move(East) while True: ready = True for i in range(36): if get_entity_type() != Entities.Pumpkin: plant(Entities.Pumpkin) ready = False elif not can_harvest(): ready = False if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) move(North) if get_pos_y() == 0: move(East) if ready: harvest() break else: for i in range(36): if can_harvest(): harvest() x = get_pos_x() y = get_pos_y() if (x + y) % 2 == 0: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) else: if x < 4 and num_items(Items.Hay) > 100 and num_items(Items.Wood) > 100: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) else: if get_ground_type() == Grounds.Soil: till() move(North) if get_pos_y() == 0: move(East)Changes from the previous revision
while True: - if can_harvest(): - harvest() - x = get_pos_x() - y = get_pos_y() - if (x + y) % 2 == 0: - plant(Entities.Tree) - if get_water() < 0.75 and num_items(Items.Water) > 0: - use_item(Items.Water) - else: - if x < 4 and num_items(Items.Hay) > 10 and num_items(Items.Wood) > 10: - if get_ground_type() != Grounds.Soil: - till() - plant(Entities.Carrot) + if num_items(Items.Pumpkin) < 5000 and num_items(Items.Carrot) > 500: + for i in range(36): + if get_entity_type() != Entities.Pumpkin: + if can_harvest(): + harvest() + if get_ground_type() != Grounds.Soil: + till() + plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) - else: - if get_ground_type() == Grounds.Soil: - till() - move(North) - if get_pos_y() == 0: - move(East) + move(North) + if get_pos_y() == 0: + move(East) + while True: + ready = True + for i in range(36): + if get_entity_type() != Entities.Pumpkin: + plant(Entities.Pumpkin) + ready = False + elif not can_harvest(): + ready = False + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + move(North) + if get_pos_y() == 0: + move(East) + if ready: + harvest() + break + else: + for i in range(36): + if can_harvest(): + harvest() + x = get_pos_x() + y = get_pos_y() + if (x + y) % 2 == 0: + plant(Entities.Tree) + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + else: + if x < 4 and num_items(Items.Hay) > 100 and num_items(Items.Wood) > 100: + if get_ground_type() != Grounds.Soil: + till() + plant(Entities.Carrot) + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + else: + if get_ground_type() == Grounds.Soil: + till() + move(North) + if get_pos_y() == 0: + move(East)
- Write result the agent saw
Saved main (53 lines). Game time: 28m 34s elapsed, 5h 31m 26s of budget remaining.
- run_program at 28m 34s for 120s (agent saw)
Ran main for 2m of game time; it is still running. Inventory change: carrot -130, fertilizer +24, hay +112, pumpkin +864, water -16, wood +580. Game time: 30m 44s elapsed, 5h 29m 16s of budget remaining. Output: (none)
r931m 44sRan
while True: w = get_world_size() n = w * w if num_items(Items.Carrot) > 500 and num_items(Items.Pumpkin) < 10000: for i in range(n): if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) move(North) if get_pos_y() == 0: move(East) while True: ready = True for i in range(n): if get_entity_type() != Entities.Pumpkin: if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) ready = False elif not can_harvest(): ready = False if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) move(North) if get_pos_y() == 0: move(East) if ready: harvest() break else: for i in range(n): if can_harvest(): harvest() x = get_pos_x() y = get_pos_y() if (x + y) % 2 == 0: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) else: if x < w - 2 and num_items(Items.Hay) > 200 and num_items(Items.Wood) > 200: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) else: if get_ground_type() == Grounds.Soil: till() move(North) if get_pos_y() == 0: move(East)Changes from the previous revision
while True: - if num_items(Items.Pumpkin) < 5000 and num_items(Items.Carrot) > 500: - for i in range(36): + w = get_world_size() + n = w * w + if num_items(Items.Carrot) > 500 and num_items(Items.Pumpkin) < 10000: + for i in range(n): if get_entity_type() != Entities.Pumpkin: if can_harvest(): while True: ready = True - for i in range(36): + for i in range(n): if get_entity_type() != Entities.Pumpkin: + if get_ground_type() != Grounds.Soil: + till() plant(Entities.Pumpkin) ready = False break else: - for i in range(36): + for i in range(n): if can_harvest(): harvest() use_item(Items.Water) else: - if x < 4 and num_items(Items.Hay) > 100 and num_items(Items.Wood) > 100: + if x < w - 2 and num_items(Items.Hay) > 200 and num_items(Items.Wood) > 200: if get_ground_type() != Grounds.Soil: till()
- Write result the agent saw
Saved main (57 lines). Game time: 31m 54s elapsed, 5h 28m 6s of budget remaining.
- run_program at 31m 54s for 120s (agent saw)
Ran main for 2m of game time; it is still running. Inventory change: carrot +64, fertilizer +24, hay +928, pumpkin +768, water -15, wood +2208. Game time: 34m 4s elapsed, 5h 25m 56s of budget remaining. Output: (none)
r1041m 29sRan
def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) while True: w = get_world_size() n = w * w if num_items(Items.Carrot) > 1000 and num_items(Items.Pumpkin) < 15000: for i in range(n): if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) move(North) if get_pos_y() == 0: move(East) while True: ready = True for i in range(n): if get_entity_type() != Entities.Pumpkin: if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) ready = False elif not can_harvest(): ready = False if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) move(North) if get_pos_y() == 0: move(East) if ready: harvest() break else: comp = {} for pass_num in range(4): for i in range(n): if can_harvest(): harvest() pos = (get_pos_x(), get_pos_y()) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (pos[0] + pos[1]) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 2000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 200 and num_items(Items.Wood) > 200: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct move(North) if get_pos_y() == 0: move(East)Changes from the previous revision
+ def plant_type(t): + if t == Entities.Grass: + if get_ground_type() == Grounds.Soil: + till() + elif t == Entities.Bush: + plant(Entities.Bush) + elif t == Entities.Tree: + plant(Entities.Tree) + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + elif t == Entities.Carrot: + if get_ground_type() != Grounds.Soil: + till() + plant(Entities.Carrot) + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + while True: w = get_world_size() n = w * w - if num_items(Items.Carrot) > 500 and num_items(Items.Pumpkin) < 10000: + if num_items(Items.Carrot) > 1000 and num_items(Items.Pumpkin) < 15000: for i in range(n): if get_entity_type() != Entities.Pumpkin: break else: - for i in range(n): - if can_harvest(): - harvest() - x = get_pos_x() - y = get_pos_y() - if (x + y) % 2 == 0: - plant(Entities.Tree) - if get_water() < 0.75 and num_items(Items.Water) > 0: - use_item(Items.Water) - else: - if x < w - 2 and num_items(Items.Hay) > 200 and num_items(Items.Wood) > 200: - if get_ground_type() != Grounds.Soil: - till() - plant(Entities.Carrot) - if get_water() < 0.75 and num_items(Items.Water) > 0: - use_item(Items.Water) + comp = {} + for pass_num in range(4): + for i in range(n): + if can_harvest(): + harvest() + pos = (get_pos_x(), get_pos_y()) + if pos in comp: + t = comp.pop(pos) + plant_type(t) else: - if get_ground_type() == Grounds.Soil: - till() - move(North) - if get_pos_y() == 0: - move(East) + if (pos[0] + pos[1]) % 2 == 0: + plant_type(Entities.Tree) + elif num_items(Items.Hay) < 2000: + plant_type(Entities.Grass) + elif num_items(Items.Hay) > 200 and num_items(Items.Wood) > 200: + plant_type(Entities.Carrot) + else: + plant_type(Entities.Grass) + c = get_companion() + if c != None: + ct, cpos = c + if not (cpos in comp): + comp[cpos] = ct + move(North) + if get_pos_y() == 0: + move(East)
- Write result the agent saw
Saved main (78 lines). Game time: 41m 39s elapsed, 5h 18m 21s of budget remaining.
- run_program at 41m 39s for 120s (agent saw)
Ran main for 2m of game time; it is still running. Inventory change: carrot -51, fertilizer +24, pumpkin +1536, water -16, wood +900. Game time: 43m 49s elapsed, 5h 16m 11s of budget remaining. Output: (none)
r1144m 19sRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) while True: w = get_world_size() n = w * w if num_items(Items.Power) < 100 and num_items(Items.Carrot) > 200: petals = {} for i in range(n): if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if not (p in petals): petals[p] = [] petals[p].append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: for pos in petals[p]: move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 10: use_item(Items.Fertilizer) harvest() elif num_items(Items.Carrot) > 1000 and num_items(Items.Pumpkin) < 15000: move_to(0, 0) bad = [] for i in range(n): if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) while len(bad) > 0: next_bad = [] for pos in bad: move_to(pos[0], pos[1]) if get_entity_type() != Entities.Pumpkin: if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(pos) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(pos) bad = next_bad harvest() else: move_to(0, 0) comp = {} for pass_num in range(3): for i in range(n): if can_harvest(): harvest() pos = (get_pos_x(), get_pos_y()) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (pos[0] + pos[1]) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 3000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 300 and num_items(Items.Wood) > 300: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct move(North) if get_pos_y() == 0: move(East)Changes from the previous revision
+ def move_to(tx, ty): + w = get_world_size() + cx = get_pos_x() + cy = get_pos_y() + dx = (tx - cx) % w + if dx <= w // 2: + for i in range(dx): + move(East) + else: + for i in range(w - dx): + move(West) + dy = (ty - cy) % w + if dy <= w // 2: + for i in range(dy): + move(North) + else: + for i in range(w - dy): + move(South) + def plant_type(t): if t == Entities.Grass: w = get_world_size() n = w * w - if num_items(Items.Carrot) > 1000 and num_items(Items.Pumpkin) < 15000: + if num_items(Items.Power) < 100 and num_items(Items.Carrot) > 200: + petals = {} for i in range(n): + if can_harvest(): + harvest() + if get_ground_type() != Grounds.Soil: + till() + plant(Entities.Sunflower) + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + p = measure() + if not (p in petals): + petals[p] = [] + petals[p].append((get_pos_x(), get_pos_y())) + move(North) + if get_pos_y() == 0: + move(East) + for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: + if p in petals: + for pos in petals[p]: + move_to(pos[0], pos[1]) + while not can_harvest(): + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + elif num_items(Items.Fertilizer) > 10: + use_item(Items.Fertilizer) + harvest() + elif num_items(Items.Carrot) > 1000 and num_items(Items.Pumpkin) < 15000: + move_to(0, 0) + bad = [] + for i in range(n): if get_entity_type() != Entities.Pumpkin: if can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) + bad.append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) - while True: - ready = True - for i in range(n): + while len(bad) > 0: + next_bad = [] + for pos in bad: + move_to(pos[0], pos[1]) if get_entity_type() != Entities.Pumpkin: if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) - ready = False + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + next_bad.append(pos) elif not can_harvest(): - ready = False - if get_water() < 0.75 and num_items(Items.Water) > 0: - use_item(Items.Water) - move(North) - if get_pos_y() == 0: - move(East) - if ready: - harvest() - break + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + next_bad.append(pos) + bad = next_bad + harvest() else: + move_to(0, 0) comp = {} - for pass_num in range(4): + for pass_num in range(3): for i in range(n): if can_harvest(): if (pos[0] + pos[1]) % 2 == 0: plant_type(Entities.Tree) - elif num_items(Items.Hay) < 2000: + elif num_items(Items.Hay) < 3000: plant_type(Entities.Grass) - elif num_items(Items.Hay) > 200 and num_items(Items.Wood) > 200: + elif num_items(Items.Hay) > 300 and num_items(Items.Wood) > 300: plant_type(Entities.Carrot) else:
- Write result the agent saw
Saved main (127 lines). Game time: 44m 29s elapsed, 5h 15m 31s of budget remaining.
- run_program at 44m 29s for 120s (agent saw)
Ran main for 2m of game time; it is still running. Inventory change: carrot +1171, fertilizer +20, hay +2800, power +361.30, pumpkin +3954, water -16, weird_substance +16, wood +7576. Game time: 46m 39s elapsed, 5h 13m 21s of budget remaining. Output: (none)
r1251m 59sRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) while True: w = get_world_size() n = w * w if num_items(Items.Power) < 100 and num_items(Items.Carrot) > 200: move_to(0, 0) petals = {} for i in range(n): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: if not (p in petals): petals[p] = [] petals[p].append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: for pos in petals[p]: move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() elif num_items(Items.Carrot) > 1000 and num_items(Items.Pumpkin) < 20000: move_to(0, 0) bad = [] for i in range(n): if get_entity_type() != Entities.Pumpkin: while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) while len(bad) > 0: next_bad = [] for pos in bad: move_to(pos[0], pos[1]) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(pos) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(pos) bad = next_bad harvest() else: move_to(0, 0) comp = {} for pass_num in range(3): for i in range(n): if can_harvest(): harvest() pos = (get_pos_x(), get_pos_y()) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (pos[0] + pos[1]) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 5000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 500 and num_items(Items.Wood) > 500: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct move(North) if get_pos_y() == 0: move(East)Changes from the previous revision
n = w * w if num_items(Items.Power) < 100 and num_items(Items.Carrot) > 200: + move_to(0, 0) petals = {} for i in range(n): + while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: + if can_harvest(): + harvest() + elif num_items(Items.Fertilizer) > 5: + use_item(Items.Fertilizer) + else: + break if can_harvest(): harvest() use_item(Items.Water) p = measure() - if not (p in petals): - petals[p] = [] - petals[p].append((get_pos_x(), get_pos_y())) + if p != None: + if not (p in petals): + petals[p] = [] + petals[p].append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) - elif num_items(Items.Fertilizer) > 10: + elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() - elif num_items(Items.Carrot) > 1000 and num_items(Items.Pumpkin) < 15000: + elif num_items(Items.Carrot) > 1000 and num_items(Items.Pumpkin) < 20000: move_to(0, 0) bad = [] for i in range(n): if get_entity_type() != Entities.Pumpkin: + while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: + if can_harvest(): + harvest() + elif num_items(Items.Fertilizer) > 5: + use_item(Items.Fertilizer) + else: + break if can_harvest(): harvest() move_to(pos[0], pos[1]) if get_entity_type() != Entities.Pumpkin: + if can_harvest(): + harvest() if get_ground_type() != Grounds.Soil: till() if (pos[0] + pos[1]) % 2 == 0: plant_type(Entities.Tree) - elif num_items(Items.Hay) < 3000: + elif num_items(Items.Hay) < 5000: plant_type(Entities.Grass) - elif num_items(Items.Hay) > 300 and num_items(Items.Wood) > 300: + elif num_items(Items.Hay) > 500 and num_items(Items.Wood) > 500: plant_type(Entities.Carrot) else:
- Write result the agent saw
Saved main (145 lines). Game time: 52m 9s elapsed, 5h 7m 51s of budget remaining.
- run_program at 52m 09s for 60s (agent saw)
Ran main for 1m of game time; it is still running. Inventory change: carrot -706, fertilizer +21, power +376.40, pumpkin +2514, water -129, weird_substance +12, wood +360. Game time: 53m 19s elapsed, 5h 6m 41s of budget remaining. Output: (none)
r1358m 19sRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) while True: w = get_world_size() n = w * w if num_items(Items.Power) < 150 and num_items(Items.Carrot) > 300: move_to(0, 0) petals = {} for i in range(n): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: if not (p in petals): petals[p] = [] petals[p].append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: for pos in petals[p]: move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() elif num_items(Items.Cactus) < 15000 and num_items(Items.Pumpkin) > 500: move_to(0, 0) for i in range(n): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) move(North) if get_pos_y() == 0: move(East) for x in range(w): move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 2: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 2: move(South) if not swapped: break for y in range(w): move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 2: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 2: move(West) if not swapped: break harvest() elif num_items(Items.Carrot) > 2000 and num_items(Items.Pumpkin) < 70000: move_to(0, 0) bad = [] for i in range(n): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) while len(bad) > 0: next_bad = [] for pos in bad: move_to(pos[0], pos[1]) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(pos) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(pos) bad = next_bad harvest() else: move_to(0, 0) comp = {} for pass_num in range(3): for i in range(n): if can_harvest(): harvest() pos = (get_pos_x(), get_pos_y()) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (pos[0] + pos[1]) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 20000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 1000 and num_items(Items.Wood) > 1000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct move(North) if get_pos_y() == 0: move(East)Changes from the previous revision
move(South) + def clear_tile(): + while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: + if can_harvest(): + harvest() + elif num_items(Items.Fertilizer) > 5: + use_item(Items.Fertilizer) + else: + break + if can_harvest(): + harvest() + def plant_type(t): if t == Entities.Grass: w = get_world_size() n = w * w - if num_items(Items.Power) < 100 and num_items(Items.Carrot) > 200: + if num_items(Items.Power) < 150 and num_items(Items.Carrot) > 300: move_to(0, 0) petals = {} for i in range(n): - while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: - if can_harvest(): - harvest() - elif num_items(Items.Fertilizer) > 5: - use_item(Items.Fertilizer) - else: - break - if can_harvest(): - harvest() + clear_tile() if get_ground_type() != Grounds.Soil: till() use_item(Items.Fertilizer) harvest() - elif num_items(Items.Carrot) > 1000 and num_items(Items.Pumpkin) < 20000: + elif num_items(Items.Cactus) < 15000 and num_items(Items.Pumpkin) > 500: move_to(0, 0) + for i in range(n): + clear_tile() + if get_ground_type() != Grounds.Soil: + till() + plant(Entities.Cactus) + move(North) + if get_pos_y() == 0: + move(East) + for x in range(w): + move_to(x, 0) + for pass_y in range(w): + swapped = False + if pass_y % 2 == 0: + for step in range(w - 1): + if measure() > measure(North): + swap(North) + swapped = True + if step < w - 2: + move(North) + else: + for step in range(w - 1): + if measure() < measure(South): + swap(South) + swapped = True + if step < w - 2: + move(South) + if not swapped: + break + for y in range(w): + move_to(0, y) + for pass_x in range(w): + swapped = False + if pass_x % 2 == 0: + for step in range(w - 1): + if measure() > measure(East): + swap(East) + swapped = True + if step < w - 2: + move(East) + else: + for step in range(w - 1): + if measure() < measure(West): + swap(West) + swapped = True + if step < w - 2: + move(West) + if not swapped: + break + harvest() + elif num_items(Items.Carrot) > 2000 and num_items(Items.Pumpkin) < 70000: + move_to(0, 0) bad = [] for i in range(n): if get_entity_type() != Entities.Pumpkin: - while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: - if can_harvest(): - harvest() - elif num_items(Items.Fertilizer) > 5: - use_item(Items.Fertilizer) - else: - break - if can_harvest(): - harvest() + clear_tile() if get_ground_type() != Grounds.Soil: till() if (pos[0] + pos[1]) % 2 == 0: plant_type(Entities.Tree) - elif num_items(Items.Hay) < 5000: + elif num_items(Items.Hay) < 20000: plant_type(Entities.Grass) - elif num_items(Items.Hay) > 500 and num_items(Items.Wood) > 500: + elif num_items(Items.Hay) > 1000 and num_items(Items.Wood) > 1000: plant_type(Entities.Carrot) else:
- Write result the agent saw
Saved main (191 lines). Game time: 58m 29s elapsed, 5h 1m 31s of budget remaining.
- run_program at 58m 29s for 90s (agent saw)
Ran main for 1m 30s of game time; it is still running. Inventory change: carrot -144, fertilizer +35, hay +16, power +994.03, pumpkin +304, water +85, weird_substance +4, wood +88. Game time: 1h 9s elapsed, 4h 59m 51s of budget remaining. Output: Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: swap(South) ^^ --------------------------------------------------------------------
r141h 00mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) while True: w = get_world_size() n = w * w if num_items(Items.Power) < 150 and num_items(Items.Carrot) > 300: move_to(0, 0) petals = {} for i in range(n): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: if not (p in petals): petals[p] = [] petals[p].append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: for pos in petals[p]: move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() elif num_items(Items.Cactus) < 15000 and num_items(Items.Pumpkin) > 500: move_to(0, 0) for i in range(n): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) move(North) if get_pos_y() == 0: move(East) for x in range(w): move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 2: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 2: move(South) if not swapped: break for y in range(w): move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 2: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 2: move(West) if not swapped: break harvest() elif num_items(Items.Carrot) > 2000 and num_items(Items.Pumpkin) < 70000: move_to(0, 0) bad = [] for i in range(n): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) while len(bad) > 0: next_bad = [] for pos in bad: move_to(pos[0], pos[1]) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(pos) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(pos) bad = next_bad harvest() else: move_to(0, 0) comp = {} for pass_num in range(3): for i in range(n): if can_harvest(): harvest() pos = (get_pos_x(), get_pos_y()) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (pos[0] + pos[1]) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 20000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 1000 and num_items(Items.Wood) > 1000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct move(North) if get_pos_y() == 0: move(East)Changes from the previous revision
move_to(0, 0) for i in range(n): - clear_tile() - if get_ground_type() != Grounds.Soil: - till() - plant(Entities.Cactus) + if get_entity_type() != Entities.Cactus: + clear_tile() + if get_ground_type() != Grounds.Soil: + till() + plant(Entities.Cactus) move(North) if get_pos_y() == 0:
- Write result the agent saw
Saved main (192 lines). Game time: 1h 39s elapsed, 4h 59m 21s of budget remaining.
- run_program at 1h 00m for 120s (agent saw)
Ran main for 2m of game time; it is still running. Inventory change: cactus +20736, carrot -2792, fertilizer +48, power -121.35, pumpkin +10368, water -181. Game time: 1h 2m 49s elapsed, 4h 57m 11s of budget remaining. Output: Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: swap(West) ^^ --------------------------------------------------------------------
r151h 03mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def solve_maze(): dirs = [North, East, South, West] d = 0 while get_entity_type() != Entities.Treasure: if get_entity_type() != Entities.Hedge: break left_d = (d - 1) % 4 if move(dirs[left_d]): d = left_d elif move(dirs[d]): pass else: right_d = (d + 1) % 4 if move(dirs[right_d]): d = right_d else: back_d = (d + 2) % 4 move(dirs[back_d]) d = back_d if get_entity_type() == Entities.Treasure: harvest() def farm_dinosaur(): w = get_world_size() n = w * w move_to(0, 0) for i in range(n): clear_tile() move(North) if get_pos_y() == 0: move(East) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y < w - 1: moved = move(North) else: moved = move(East) else: if y > 1: moved = move(South) else: if x < w - 1: moved = move(East) else: moved = move(South) if not moved: break change_hat(Hats.Green_Hat) def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) while True: w = get_world_size() n = w * w if num_items(Items.Power) < 150 and num_items(Items.Carrot) > 300: move_to(0, 0) petals = {} for i in range(n): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: if not (p in petals): petals[p] = [] petals[p].append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: for pos in petals[p]: move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() elif num_items(Items.Gold) < 3000 and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): clear_tile() plant(Entities.Bush) sub = w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) use_item(Items.Weird_Substance, sub) solve_maze() elif num_items(Items.Bone) < 15000 and num_items(Items.Cactus) > 2000: farm_dinosaur() elif num_items(Items.Cactus) < 20000 and num_items(Items.Pumpkin) > 1000: move_to(0, 0) for i in range(n): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) move(North) if get_pos_y() == 0: move(East) for x in range(w): move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 2: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 2: move(South) if not swapped: break for y in range(w): move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 2: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 2: move(West) if not swapped: break harvest() elif num_items(Items.Carrot) > 2000 and num_items(Items.Pumpkin) < 70000: move_to(0, 0) bad = [] for i in range(n): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) while len(bad) > 0: next_bad = [] for pos in bad: move_to(pos[0], pos[1]) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(pos) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(pos) bad = next_bad harvest() else: move_to(0, 0) comp = {} for pass_num in range(3): for i in range(n): if can_harvest(): harvest() pos = (get_pos_x(), get_pos_y()) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (pos[0] + pos[1]) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 25000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 1000 and num_items(Items.Wood) > 1000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Weird_Substance) < 500 and num_items(Items.Fertilizer) > 50: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct move(North) if get_pos_y() == 0: move(East)Changes from the previous revision
harvest() + def solve_maze(): + dirs = [North, East, South, West] + d = 0 + while get_entity_type() != Entities.Treasure: + if get_entity_type() != Entities.Hedge: + break + left_d = (d - 1) % 4 + if move(dirs[left_d]): + d = left_d + elif move(dirs[d]): + pass + else: + right_d = (d + 1) % 4 + if move(dirs[right_d]): + d = right_d + else: + back_d = (d + 2) % 4 + move(dirs[back_d]) + d = back_d + if get_entity_type() == Entities.Treasure: + harvest() + + def farm_dinosaur(): + w = get_world_size() + n = w * w + move_to(0, 0) + for i in range(n): + clear_tile() + move(North) + if get_pos_y() == 0: + move(East) + move_to(0, 0) + change_hat(Hats.Dinosaur_Hat) + while True: + moved = False + x = get_pos_x() + y = get_pos_y() + if x == 0: + if y < w - 1: + moved = move(North) + else: + moved = move(East) + elif y == 0: + moved = move(West) + elif x % 2 == 1: + if y < w - 1: + moved = move(North) + else: + moved = move(East) + else: + if y > 1: + moved = move(South) + else: + if x < w - 1: + moved = move(East) + else: + moved = move(South) + if not moved: + break + change_hat(Hats.Green_Hat) + def plant_type(t): if t == Entities.Grass: use_item(Items.Fertilizer) harvest() - elif num_items(Items.Cactus) < 15000 and num_items(Items.Pumpkin) > 500: + elif num_items(Items.Gold) < 3000 and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): + clear_tile() + plant(Entities.Bush) + sub = w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) + use_item(Items.Weird_Substance, sub) + solve_maze() + elif num_items(Items.Bone) < 15000 and num_items(Items.Cactus) > 2000: + farm_dinosaur() + elif num_items(Items.Cactus) < 20000 and num_items(Items.Pumpkin) > 1000: move_to(0, 0) for i in range(n): if (pos[0] + pos[1]) % 2 == 0: plant_type(Entities.Tree) - elif num_items(Items.Hay) < 20000: + elif num_items(Items.Hay) < 25000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 1000 and num_items(Items.Wood) > 1000: else: plant_type(Entities.Grass) + if num_items(Items.Weird_Substance) < 500 and num_items(Items.Fertilizer) > 50: + use_item(Items.Fertilizer) c = get_companion() if c != None:
- Write result the agent saw
Saved main (263 lines). Game time: 1h 3m 39s elapsed, 4h 56m 21s of budget remaining.
- run_program at 1h 03m for 180s (agent saw)
Ran main for 3m of game time; it is still running. Inventory change: bone +58, cactus -56, fertilizer +72, gold +3168, hay +5056, power -182.07, water +288, weird_substance -264. Game time: 1h 6m 49s elapsed, 4h 53m 11s of budget remaining. Output: (none)
r161h 17mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def solve_maze(): dirs = [North, East, South, West] d = 0 while get_entity_type() != Entities.Treasure: if get_entity_type() != Entities.Hedge: break left_d = (d - 1) % 4 if move(dirs[left_d]): d = left_d elif move(dirs[d]): pass else: right_d = (d + 1) % 4 if move(dirs[right_d]): d = right_d else: back_d = (d + 2) % 4 move(dirs[back_d]) d = back_d if get_entity_type() == Entities.Treasure: harvest() def farm_dinosaur(): w = get_world_size() n = w * w move_to(0, 0) for i in range(n): clear_tile() move(North) if get_pos_y() == 0: move(East) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 2: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 2: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 2: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 2: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) while True: w = get_world_size() n = w * w if num_items(Items.Power) < 300 and num_items(Items.Carrot) > 500: move_to(0, 0) petals = {} for i in range(n): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: if not (p in petals): petals[p] = [] petals[p].append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: for pos in petals[p]: move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() elif num_items(Items.Gold) < 9000 and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): clear_tile() plant(Entities.Bush) sub = w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) use_item(Items.Weird_Substance, sub) solve_maze() elif num_items(Items.Cactus) < 30000 and num_items(Items.Pumpkin) > 2000: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Carrot) > 5000 and num_items(Items.Pumpkin) < 80000: move_to(0, 0) bad = [] for i in range(n): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) while len(bad) > 0: next_bad = [] for pos in bad: move_to(pos[0], pos[1]) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(pos) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(pos) bad = next_bad harvest() else: move_to(0, 0) comp = {} for pass_num in range(3): for i in range(n): if can_harvest(): harvest() pos = (get_pos_x(), get_pos_y()) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (pos[0] + pos[1]) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 80000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 2000 and num_items(Items.Wood) > 2000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Weird_Substance) < 500 and num_items(Items.Fertilizer) > 50: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct move(North) if get_pos_y() == 0: move(East)Changes from the previous revision
moved = move(West) elif x % 2 == 1: - if y < w - 1: - moved = move(North) + if y > 1: + moved = move(South) + elif x == w - 1: + moved = move(South) else: moved = move(East) else: - if y > 1: - moved = move(South) + if y < w - 1: + moved = move(North) else: - if x < w - 1: - moved = move(East) - else: - moved = move(South) + moved = move(East) if not moved: break use_item(Items.Water) + def sort_col(x): + w = get_world_size() + move_to(x, 0) + for pass_y in range(w): + swapped = False + if pass_y % 2 == 0: + for step in range(w - 1): + if measure() > measure(North): + swap(North) + swapped = True + if step < w - 2: + move(North) + else: + for step in range(w - 1): + if measure() < measure(South): + swap(South) + swapped = True + if step < w - 2: + move(South) + if not swapped: + break + + def sort_row(y): + w = get_world_size() + move_to(0, y) + for pass_x in range(w): + swapped = False + if pass_x % 2 == 0: + for step in range(w - 1): + if measure() > measure(East): + swap(East) + swapped = True + if step < w - 2: + move(East) + else: + for step in range(w - 1): + if measure() < measure(West): + swap(West) + swapped = True + if step < w - 2: + move(West) + if not swapped: + break + + def plant_cactus_col(x): + w = get_world_size() + move_to(x, 0) + for y in range(w): + if get_entity_type() != Entities.Cactus: + clear_tile() + if get_ground_type() != Grounds.Soil: + till() + plant(Entities.Cactus) + if y < w - 1: + move(North) + while True: w = get_world_size() n = w * w - if num_items(Items.Power) < 150 and num_items(Items.Carrot) > 300: + if num_items(Items.Power) < 300 and num_items(Items.Carrot) > 500: move_to(0, 0) petals = {} use_item(Items.Fertilizer) harvest() - elif num_items(Items.Gold) < 3000 and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): + elif num_items(Items.Gold) < 9000 and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): clear_tile() plant(Entities.Bush) use_item(Items.Weird_Substance, sub) solve_maze() - elif num_items(Items.Bone) < 15000 and num_items(Items.Cactus) > 2000: - farm_dinosaur() - elif num_items(Items.Cactus) < 20000 and num_items(Items.Pumpkin) > 1000: - move_to(0, 0) - for i in range(n): - if get_entity_type() != Entities.Cactus: - clear_tile() - if get_ground_type() != Grounds.Soil: - till() - plant(Entities.Cactus) - move(North) - if get_pos_y() == 0: - move(East) + elif num_items(Items.Cactus) < 30000 and num_items(Items.Pumpkin) > 2000: + drones = [] for x in range(w): - move_to(x, 0) - for pass_y in range(w): - swapped = False - if pass_y % 2 == 0: - for step in range(w - 1): - if measure() > measure(North): - swap(North) - swapped = True - if step < w - 2: - move(North) - else: - for step in range(w - 1): - if measure() < measure(South): - swap(South) - swapped = True - if step < w - 2: - move(South) - if not swapped: - break + d = spawn_drone(plant_cactus_col, x) + if d != None: + drones.append(d) + else: + plant_cactus_col(x) + for d in drones: + wait_for(d) + drones = [] + for x in range(w): + d = spawn_drone(sort_col, x) + if d != None: + drones.append(d) + else: + sort_col(x) + for d in drones: + wait_for(d) + drones = [] for y in range(w): - move_to(0, y) - for pass_x in range(w): - swapped = False - if pass_x % 2 == 0: - for step in range(w - 1): - if measure() > measure(East): - swap(East) - swapped = True - if step < w - 2: - move(East) - else: - for step in range(w - 1): - if measure() < measure(West): - swap(West) - swapped = True - if step < w - 2: - move(West) - if not swapped: - break + d = spawn_drone(sort_row, y) + if d != None: + drones.append(d) + else: + sort_row(y) + for d in drones: + wait_for(d) harvest() - elif num_items(Items.Carrot) > 2000 and num_items(Items.Pumpkin) < 70000: + elif num_items(Items.Carrot) > 5000 and num_items(Items.Pumpkin) < 80000: move_to(0, 0) bad = [] if (pos[0] + pos[1]) % 2 == 0: plant_type(Entities.Tree) - elif num_items(Items.Hay) < 25000: + elif num_items(Items.Hay) < 80000: plant_type(Entities.Grass) - elif num_items(Items.Hay) > 1000 and num_items(Items.Wood) > 1000: + elif num_items(Items.Hay) > 2000 and num_items(Items.Wood) > 2000: plant_type(Entities.Carrot) else:
- Write result the agent saw
Saved main (293 lines). Game time: 1h 17m 38s elapsed, 4h 42m 22s of budget remaining.
- run_program at 1h 17m for 180s (agent saw)
Ran main for 3m of game time; it is still running. Inventory change: cactus +41472, carrot -892, fertilizer +72, power +821.12, pumpkin -576, water -43. Game time: 1h 20m 48s elapsed, 4h 39m 12s of budget remaining. Output: …--------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_col swap(South) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_col swap(South) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_col swap(South) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_col swap(South) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_col swap(South) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ --------------------------------------------------------------------
r171h 33mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def solve_maze(): dirs = [North, East, South, West] d = 0 while get_entity_type() != Entities.Treasure: if get_entity_type() != Entities.Hedge: break left_d = (d - 1) % 4 if move(dirs[left_d]): d = left_d elif move(dirs[d]): pass else: right_d = (d + 1) % 4 if move(dirs[right_d]): d = right_d else: back_d = (d + 2) % 4 move(dirs[back_d]) d = back_d if get_entity_type() == Entities.Treasure: harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur(): w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 2: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 2: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 2: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 2: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_strip(start_x, width): w = get_world_size() comp = {} for pass_num in range(3): for x in range(start_x, start_x + width): move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 350000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 5000 and num_items(Items.Wood) > 5000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Weird_Substance) < 2000 and num_items(Items.Fertilizer) > 50: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct if y < w - 1: move(North) while True: w = get_world_size() n = w * w if num_items(Items.Power) < 400 and num_items(Items.Carrot) > 2000: move_to(0, 0) petals = {} for i in range(n): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: if not (p in petals): petals[p] = [] petals[p].append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: for pos in petals[p]: move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() elif num_items(Items.Gold) < 35000 and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): clear_tile() plant(Entities.Bush) sub = w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) use_item(Items.Weird_Substance, sub) solve_maze() elif num_items(Items.Cactus) < 80000 and num_items(Items.Pumpkin) > 5000: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Bone) < 260000 and num_items(Items.Cactus) > 3000: farm_dinosaur() elif num_items(Items.Carrot) > 15000 and num_items(Items.Pumpkin) < 550000: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() else: md = max_drones() strip_w = w // md drones = [] for i in range(md - 1): d = spawn_drone(poly_strip, i * strip_w, strip_w) if d != None: drones.append(d) poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) for d in drones: wait_for(d)Changes from the previous revision
harvest() - def farm_dinosaur(): + def clear_col(x): w = get_world_size() - n = w * w - move_to(0, 0) - for i in range(n): + move_to(x, 0) + for y in range(w): clear_tile() - move(North) - if get_pos_y() == 0: - move(East) + if y < w - 1: + move(North) + + def farm_dinosaur(): + w = get_world_size() + drones = [] + for x in range(w): + d = spawn_drone(clear_col, x) + if d != None: + drones.append(d) + else: + clear_col(x) + for d in drones: + wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) change_hat(Hats.Green_Hat) - def plant_type(t): - if t == Entities.Grass: - if get_ground_type() == Grounds.Soil: - till() - elif t == Entities.Bush: - plant(Entities.Bush) - elif t == Entities.Tree: - plant(Entities.Tree) - if get_water() < 0.75 and num_items(Items.Water) > 0: - use_item(Items.Water) - elif t == Entities.Carrot: - if get_ground_type() != Grounds.Soil: - till() - plant(Entities.Carrot) - if get_water() < 0.75 and num_items(Items.Water) > 0: - use_item(Items.Water) - def sort_col(x): w = get_world_size() move(North) + def pumpkin_col(x): + w = get_world_size() + move_to(x, 0) + bad = [] + for y in range(w): + if get_entity_type() != Entities.Pumpkin: + clear_tile() + if get_ground_type() != Grounds.Soil: + till() + plant(Entities.Pumpkin) + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + bad.append(y) + if y < w - 1: + move(North) + while len(bad) > 0: + next_bad = [] + for y in bad: + move_to(x, y) + if get_entity_type() != Entities.Pumpkin: + if can_harvest(): + harvest() + if get_ground_type() != Grounds.Soil: + till() + plant(Entities.Pumpkin) + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + next_bad.append(y) + elif not can_harvest(): + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + next_bad.append(y) + bad = next_bad + + def plant_type(t): + if t == Entities.Grass: + if get_ground_type() == Grounds.Soil: + till() + elif t == Entities.Bush: + plant(Entities.Bush) + elif t == Entities.Tree: + plant(Entities.Tree) + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + elif t == Entities.Carrot: + if get_ground_type() != Grounds.Soil: + till() + plant(Entities.Carrot) + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + + def poly_strip(start_x, width): + w = get_world_size() + comp = {} + for pass_num in range(3): + for x in range(start_x, start_x + width): + move_to(x, 0) + for y in range(w): + if can_harvest(): + harvest() + pos = (x, y) + if pos in comp: + t = comp.pop(pos) + plant_type(t) + else: + if (x + y) % 2 == 0: + plant_type(Entities.Tree) + elif num_items(Items.Hay) < 350000: + plant_type(Entities.Grass) + elif num_items(Items.Hay) > 5000 and num_items(Items.Wood) > 5000: + plant_type(Entities.Carrot) + else: + plant_type(Entities.Grass) + if num_items(Items.Weird_Substance) < 2000 and num_items(Items.Fertilizer) > 50: + use_item(Items.Fertilizer) + c = get_companion() + if c != None: + ct, cpos = c + if not (cpos in comp): + comp[cpos] = ct + if y < w - 1: + move(North) + while True: w = get_world_size() n = w * w - if num_items(Items.Power) < 300 and num_items(Items.Carrot) > 500: + if num_items(Items.Power) < 400 and num_items(Items.Carrot) > 2000: move_to(0, 0) petals = {} use_item(Items.Fertilizer) harvest() - elif num_items(Items.Gold) < 9000 and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): + elif num_items(Items.Gold) < 35000 and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): clear_tile() plant(Entities.Bush) use_item(Items.Weird_Substance, sub) solve_maze() - elif num_items(Items.Cactus) < 30000 and num_items(Items.Pumpkin) > 2000: + elif num_items(Items.Cactus) < 80000 and num_items(Items.Pumpkin) > 5000: drones = [] for x in range(w): wait_for(d) harvest() - elif num_items(Items.Carrot) > 5000 and num_items(Items.Pumpkin) < 80000: - move_to(0, 0) - bad = [] - for i in range(n): - if get_entity_type() != Entities.Pumpkin: - clear_tile() - if get_ground_type() != Grounds.Soil: - till() - plant(Entities.Pumpkin) - if get_water() < 0.75 and num_items(Items.Water) > 0: - use_item(Items.Water) - bad.append((get_pos_x(), get_pos_y())) - move(North) - if get_pos_y() == 0: - move(East) - while len(bad) > 0: - next_bad = [] - for pos in bad: - move_to(pos[0], pos[1]) - if get_entity_type() != Entities.Pumpkin: - if can_harvest(): - harvest() - if get_ground_type() != Grounds.Soil: - till() - plant(Entities.Pumpkin) - if get_water() < 0.75 and num_items(Items.Water) > 0: - use_item(Items.Water) - next_bad.append(pos) - elif not can_harvest(): - if get_water() < 0.75 and num_items(Items.Water) > 0: - use_item(Items.Water) - next_bad.append(pos) - bad = next_bad + elif num_items(Items.Bone) < 260000 and num_items(Items.Cactus) > 3000: + farm_dinosaur() + elif num_items(Items.Carrot) > 15000 and num_items(Items.Pumpkin) < 550000: + drones = [] + for x in range(w): + d = spawn_drone(pumpkin_col, x) + if d != None: + drones.append(d) + else: + pumpkin_col(x) + for d in drones: + wait_for(d) harvest() else: - move_to(0, 0) - comp = {} - for pass_num in range(3): - for i in range(n): - if can_harvest(): - harvest() - pos = (get_pos_x(), get_pos_y()) - if pos in comp: - t = comp.pop(pos) - plant_type(t) - else: - if (pos[0] + pos[1]) % 2 == 0: - plant_type(Entities.Tree) - elif num_items(Items.Hay) < 80000: - plant_type(Entities.Grass) - elif num_items(Items.Hay) > 2000 and num_items(Items.Wood) > 2000: - plant_type(Entities.Carrot) - else: - plant_type(Entities.Grass) - if num_items(Items.Weird_Substance) < 500 and num_items(Items.Fertilizer) > 50: - use_item(Items.Fertilizer) - c = get_companion() - if c != None: - ct, cpos = c - if not (cpos in comp): - comp[cpos] = ct - move(North) - if get_pos_y() == 0: - move(East) + md = max_drones() + strip_w = w // md + drones = [] + for i in range(md - 1): + d = spawn_drone(poly_strip, i * strip_w, strip_w) + if d != None: + drones.append(d) + poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) + for d in drones: + wait_for(d)
- Write result the agent saw
Saved main (329 lines). Game time: 1h 33m 47s elapsed, 4h 26m 13s of budget remaining.
- run_program at 1h 33m for 240s (agent saw)
Ran main for 4m of game time; it is still running. Inventory change: fertilizer +192, gold +12288, power -242.87, pumpkin +432, water +1536, weird_substance -800. Game time: 1h 37m 57s elapsed, 4h 22m 3s of budget remaining. Output: (none)
r181h 38mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def solve_maze(): dirs = [North, East, South, West] d = 0 while get_entity_type() != Entities.Treasure: if get_entity_type() != Entities.Hedge: break left_d = (d - 1) % 4 if move(dirs[left_d]): d = left_d elif move(dirs[d]): pass else: right_d = (d + 1) % 4 if move(dirs[right_d]): d = right_d else: back_d = (d + 2) % 4 move(dirs[back_d]) d = back_d if get_entity_type() == Entities.Treasure: harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur(): w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 2: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 2: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 2: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 2: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_strip(start_x, width): w = get_world_size() comp = {} for pass_num in range(3): for x in range(start_x, start_x + width): move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 350000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 5000 and num_items(Items.Wood) > 5000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Weird_Substance) < 2000 and num_items(Items.Fertilizer) > 50: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct if y < w - 1: move(North) while True: w = get_world_size() n = w * w if num_items(Items.Power) < 400 and num_items(Items.Carrot) > 2000: move_to(0, 0) petals = {} for i in range(n): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: if not (p in petals): petals[p] = [] petals[p].append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: for pos in petals[p]: move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() elif num_items(Items.Cactus) < 80000 and num_items(Items.Pumpkin) > 5000: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Gold) < 35000 and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): clear_tile() plant(Entities.Bush) sub = w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) use_item(Items.Weird_Substance, sub) solve_maze() elif num_items(Items.Bone) < 260000 and num_items(Items.Cactus) > 3000: farm_dinosaur() elif num_items(Items.Carrot) > 15000 and num_items(Items.Pumpkin) < 550000: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() else: md = max_drones() strip_w = w // md drones = [] for i in range(md - 1): d = spawn_drone(poly_strip, i * strip_w, strip_w) if d != None: drones.append(d) poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) for d in drones: wait_for(d)Changes from the previous revision
use_item(Items.Fertilizer) harvest() - elif num_items(Items.Gold) < 35000 and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): - clear_tile() - plant(Entities.Bush) - sub = w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) - use_item(Items.Weird_Substance, sub) - solve_maze() elif num_items(Items.Cactus) < 80000 and num_items(Items.Pumpkin) > 5000: drones = [] wait_for(d) harvest() + elif num_items(Items.Gold) < 35000 and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): + clear_tile() + plant(Entities.Bush) + sub = w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) + use_item(Items.Weird_Substance, sub) + solve_maze() elif num_items(Items.Bone) < 260000 and num_items(Items.Cactus) > 3000: farm_dinosaur()
- Write result the agent saw
Saved main (329 lines). Game time: 1h 38m 27s elapsed, 4h 21m 33s of budget remaining.
- run_program at 1h 38m for 90s (agent saw)
Ran main for 1m 30s of game time; it is still running. Inventory change: fertilizer +72, gold +5632, power -73.80, water +576, weird_substance -384. Game time: 1h 40m 7s elapsed, 4h 19m 53s of budget remaining. Output: (none)
r191h 40mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def solve_maze(): dirs = [North, East, South, West] d = 0 while get_entity_type() != Entities.Treasure: if get_entity_type() != Entities.Hedge: break left_d = (d - 1) % 4 if move(dirs[left_d]): d = left_d elif move(dirs[d]): pass else: right_d = (d + 1) % 4 if move(dirs[right_d]): d = right_d else: back_d = (d + 2) % 4 move(dirs[back_d]) d = back_d if get_entity_type() == Entities.Treasure: harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur(): w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 2: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 2: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 2: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 2: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_strip(start_x, width): w = get_world_size() comp = {} for pass_num in range(3): for x in range(start_x, start_x + width): move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 100000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 5000 and num_items(Items.Wood) > 5000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Weird_Substance) < 2000 and num_items(Items.Fertilizer) > 50: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct if y < w - 1: move(North) while True: w = get_world_size() n = w * w if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 400 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: move_to(0, 0) petals = {} for i in range(n): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: if not (p in petals): petals[p] = [] petals[p].append((get_pos_x(), get_pos_y())) move(North) if get_pos_y() == 0: move(East) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: for pos in petals[p]: move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() elif num_items(Items.Cactus) < 80000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Gold) < 35000 and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): clear_tile() plant(Entities.Bush) sub = w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) use_item(Items.Weird_Substance, sub) solve_maze() elif num_items(Items.Bone) < 260000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus]: farm_dinosaur() elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 550000: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() else: md = max_drones() strip_w = w // md drones = [] for i in range(md - 1): d = spawn_drone(poly_strip, i * strip_w, strip_w) if d != None: drones.append(d) poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) for d in drones: wait_for(d)Changes from the previous revision
if (x + y) % 2 == 0: plant_type(Entities.Tree) - elif num_items(Items.Hay) < 350000: + elif num_items(Items.Hay) < 100000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 5000 and num_items(Items.Wood) > 5000: w = get_world_size() n = w * w - if num_items(Items.Power) < 400 and num_items(Items.Carrot) > 2000: + if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: + harvest() + if num_items(Items.Power) < 400 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: move_to(0, 0) petals = {} use_item(Items.Fertilizer) harvest() - elif num_items(Items.Cactus) < 80000 and num_items(Items.Pumpkin) > 5000: + elif num_items(Items.Cactus) < 80000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): use_item(Items.Weird_Substance, sub) solve_maze() - elif num_items(Items.Bone) < 260000 and num_items(Items.Cactus) > 3000: + elif num_items(Items.Bone) < 260000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus]: farm_dinosaur() - elif num_items(Items.Carrot) > 15000 and num_items(Items.Pumpkin) < 550000: + elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 550000: drones = [] for x in range(w):
- Write result the agent saw
Saved main (331 lines). Game time: 1h 40m 27s elapsed, 4h 19m 33s of budget remaining.
- run_program at 1h 40m for 180s (agent saw)
Ran main for 3m of game time; it is still running. Inventory change: cactus +131072, fertilizer +144, gold +1024, hay +8192, pumpkin -1024, water +1152, weird_substance -96. Game time: 1h 43m 37s elapsed, 4h 16m 23s of budget remaining. Output: …------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ --------------------------------------------------------------------
r201h 54mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def solve_maze(): dirs = [North, East, South, West] d = 0 while get_entity_type() != Entities.Treasure: if get_entity_type() != Entities.Hedge: break left_d = (d - 1) % 4 if move(dirs[left_d]): d = left_d elif move(dirs[d]): pass else: right_d = (d + 1) % 4 if move(dirs[right_d]): d = right_d else: back_d = (d + 2) % 4 move(dirs[back_d]) d = back_d if get_entity_type() == Entities.Treasure: harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur(): w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 2: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 2: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 2: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 2: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def sunflower_col(x): w = get_world_size() move_to(x, 0) res = [] for y in range(w): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: res.append((p, x, y)) if y < w - 1: move(North) return res def harvest_sunflower_tile(pos): move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_strip(start_x, width): w = get_world_size() comp = {} for pass_num in range(3): for x in range(start_x, start_x + width): move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 150000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 5000 and num_items(Items.Wood) > 5000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Weird_Substance) < 2000 and num_items(Items.Fertilizer) > 50: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct if y < w - 1: move(North) while True: w = get_world_size() n = w * w if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 1000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for x in range(w): d = spawn_drone(sunflower_col, x) if d != None: drones.append(d) else: res = sunflower_col(x) for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for d in drones: res = wait_for(d) if res != None: for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: hdrones = [] for pos in petals[p]: d = spawn_drone(harvest_sunflower_tile, pos) if d != None: hdrones.append(d) else: harvest_sunflower_tile(pos) for d in hdrones: wait_for(d) elif num_items(Items.Bone) < 300000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus]: farm_dinosaur() elif num_items(Items.Cactus) < 100000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 600000: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() else: md = max_drones() strip_w = w // md drones = [] for i in range(md - 1): d = spawn_drone(poly_strip, i * strip_w, strip_w) if d != None: drones.append(d) poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) for d in drones: wait_for(d)Changes from the previous revision
bad = next_bad + def sunflower_col(x): + w = get_world_size() + move_to(x, 0) + res = [] + for y in range(w): + clear_tile() + if get_ground_type() != Grounds.Soil: + till() + plant(Entities.Sunflower) + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + p = measure() + if p != None: + res.append((p, x, y)) + if y < w - 1: + move(North) + return res + + def harvest_sunflower_tile(pos): + move_to(pos[0], pos[1]) + while not can_harvest(): + if get_water() < 0.75 and num_items(Items.Water) > 0: + use_item(Items.Water) + elif num_items(Items.Fertilizer) > 5: + use_item(Items.Fertilizer) + harvest() + def plant_type(t): if t == Entities.Grass: if (x + y) % 2 == 0: plant_type(Entities.Tree) - elif num_items(Items.Hay) < 100000: + elif num_items(Items.Hay) < 150000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 5000 and num_items(Items.Wood) > 5000: if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() - if num_items(Items.Power) < 400 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: - move_to(0, 0) + if num_items(Items.Power) < 1000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} - for i in range(n): - clear_tile() - if get_ground_type() != Grounds.Soil: - till() - plant(Entities.Sunflower) - if get_water() < 0.75 and num_items(Items.Water) > 0: - use_item(Items.Water) - p = measure() - if p != None: - if not (p in petals): - petals[p] = [] - petals[p].append((get_pos_x(), get_pos_y())) - move(North) - if get_pos_y() == 0: - move(East) + drones = [] + for x in range(w): + d = spawn_drone(sunflower_col, x) + if d != None: + drones.append(d) + else: + res = sunflower_col(x) + for item in res: + p, sx, sy = item + if not (p in petals): + petals[p] = [] + petals[p].append((sx, sy)) + for d in drones: + res = wait_for(d) + if res != None: + for item in res: + p, sx, sy = item + if not (p in petals): + petals[p] = [] + petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: + hdrones = [] for pos in petals[p]: - move_to(pos[0], pos[1]) - while not can_harvest(): - if get_water() < 0.75 and num_items(Items.Water) > 0: - use_item(Items.Water) - elif num_items(Items.Fertilizer) > 5: - use_item(Items.Fertilizer) - harvest() - elif num_items(Items.Cactus) < 80000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: + d = spawn_drone(harvest_sunflower_tile, pos) + if d != None: + hdrones.append(d) + else: + harvest_sunflower_tile(pos) + for d in hdrones: + wait_for(d) + elif num_items(Items.Bone) < 300000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus]: + farm_dinosaur() + elif num_items(Items.Cactus) < 100000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): wait_for(d) harvest() - elif num_items(Items.Gold) < 35000 and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): - clear_tile() - plant(Entities.Bush) - sub = w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) - use_item(Items.Weird_Substance, sub) - solve_maze() - elif num_items(Items.Bone) < 260000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus]: - farm_dinosaur() - elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 550000: + elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 600000: drones = [] for x in range(w):
- Write result the agent saw
Saved main (357 lines). Game time: 1h 54m 25s elapsed, 4h 5m 35s of budget remaining.
- run_program at 1h 54m for 240s (agent saw)
Ran main for 4m of game time; it is still running. Inventory change: cactus -232, fertilizer +192, hay +8192, water +1536. Game time: 1h 58m 35s elapsed, 4h 1m 25s of budget remaining. Output: (none)
r212h 03mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def solve_maze(): dirs = [North, East, South, West] d = 0 while get_entity_type() != Entities.Treasure: if get_entity_type() != Entities.Hedge: break left_d = (d - 1) % 4 if move(dirs[left_d]): d = left_d elif move(dirs[d]): pass else: right_d = (d + 1) % 4 if move(dirs[right_d]): d = right_d else: back_d = (d + 2) % 4 move(dirs[back_d]) d = back_d if get_entity_type() == Entities.Treasure: harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur(): w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 2: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 2: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 2: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 2: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def sunflower_col(x): w = get_world_size() move_to(x, 0) res = [] for y in range(w): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: res.append((p, x, y)) if y < w - 1: move(North) return res def harvest_sunflower_tile(pos): move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_strip(start_x, width): w = get_world_size() comp = {} for pass_num in range(3): for x in range(start_x, start_x + width): move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 400000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 5000 and num_items(Items.Wood) > 5000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Weird_Substance) < 2000 and num_items(Items.Fertilizer) > 50: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct if y < w - 1: move(North) while True: w = get_world_size() n = w * w change_hat(Hats.Green_Hat) if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 1500 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for x in range(w): d = spawn_drone(sunflower_col, x) if d != None: drones.append(d) else: res = sunflower_col(x) for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for d in drones: res = wait_for(d) if res != None: for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: hdrones = [] for pos in petals[p]: d = spawn_drone(harvest_sunflower_tile, pos) if d != None: hdrones.append(d) else: harvest_sunflower_tile(pos) for d in hdrones: wait_for(d) elif num_items(Items.Cactus) < 100000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 600000: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() else: md = max_drones() strip_w = w // md drones = [] for i in range(md - 1): d = spawn_drone(poly_strip, i * strip_w, strip_w) if d != None: drones.append(d) poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) for d in drones: wait_for(d)Changes from the previous revision
if (x + y) % 2 == 0: plant_type(Entities.Tree) - elif num_items(Items.Hay) < 150000: + elif num_items(Items.Hay) < 400000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 5000 and num_items(Items.Wood) > 5000: w = get_world_size() n = w * w + change_hat(Hats.Green_Hat) if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() - if num_items(Items.Power) < 1000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: + if num_items(Items.Power) < 1500 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for d in hdrones: wait_for(d) - elif num_items(Items.Bone) < 300000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus]: - farm_dinosaur() elif num_items(Items.Cactus) < 100000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = []
- Write result the agent saw
Saved main (356 lines). Game time: 2h 3m 20s elapsed, 3h 56m 40s of budget remaining.
- run_program at 2h 03m for 240s (agent saw)
Ran main for 4m of game time; it is still running. Inventory change: bone +16, carrot +217680, fertilizer +160, hay +553824, power +2817.32, pumpkin +368640, water -1059, weird_substance +7856, wood +3433312. Game time: 2h 7m 30s elapsed, 3h 52m 30s of budget remaining. Output: (none)
r222h 08mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def solve_maze(): dirs = [North, East, South, West] d = 0 while get_entity_type() != Entities.Treasure: if get_entity_type() != Entities.Hedge: break left_d = (d - 1) % 4 if move(dirs[left_d]): d = left_d elif move(dirs[d]): pass else: right_d = (d + 1) % 4 if move(dirs[right_d]): d = right_d else: back_d = (d + 2) % 4 move(dirs[back_d]) d = back_d if get_entity_type() == Entities.Treasure: harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur(): w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 2: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 2: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 2: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 2: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def sunflower_col(x): w = get_world_size() move_to(x, 0) res = [] for y in range(w): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: res.append((p, x, y)) if y < w - 1: move(North) return res def harvest_sunflower_tile(pos): move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_strip(start_x, width): w = get_world_size() comp = {} for pass_num in range(3): for x in range(start_x, start_x + width): move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 1500000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 50000 and num_items(Items.Wood) > 50000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Weird_Substance) < 5000 and num_items(Items.Fertilizer) > 50: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct if y < w - 1: move(North) while True: w = get_world_size() n = w * w change_hat(Hats.Green_Hat) if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 1500 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for x in range(w): d = spawn_drone(sunflower_col, x) if d != None: drones.append(d) else: res = sunflower_col(x) for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for d in drones: res = wait_for(d) if res != None: for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: hdrones = [] for pos in petals[p]: d = spawn_drone(harvest_sunflower_tile, pos) if d != None: hdrones.append(d) else: harvest_sunflower_tile(pos) for d in hdrones: wait_for(d) elif num_items(Items.Cactus) < 900000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 4200000: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() else: md = max_drones() strip_w = w // md drones = [] for i in range(md - 1): d = spawn_drone(poly_strip, i * strip_w, strip_w) if d != None: drones.append(d) poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) for d in drones: wait_for(d)Changes from the previous revision
if (x + y) % 2 == 0: plant_type(Entities.Tree) - elif num_items(Items.Hay) < 400000: + elif num_items(Items.Hay) < 1500000: plant_type(Entities.Grass) - elif num_items(Items.Hay) > 5000 and num_items(Items.Wood) > 5000: + elif num_items(Items.Hay) > 50000 and num_items(Items.Wood) > 50000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) - if num_items(Items.Weird_Substance) < 2000 and num_items(Items.Fertilizer) > 50: + if num_items(Items.Weird_Substance) < 5000 and num_items(Items.Fertilizer) > 50: use_item(Items.Fertilizer) c = get_companion() for d in hdrones: wait_for(d) - elif num_items(Items.Cactus) < 100000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: + elif num_items(Items.Cactus) < 900000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): wait_for(d) harvest() - elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 600000: + elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 4200000: drones = [] for x in range(w):
- Write result the agent saw
Saved main (356 lines). Game time: 2h 9m 7s elapsed, 3h 50m 53s of budget remaining.
- run_program at 2h 09m for 300s (agent saw)
Ran main for 5m of game time; it is still running. Inventory change: cactus +937024, carrot -36340, fertilizer +240, power +2107.87, pumpkin +141808, water -436. Game time: 2h 14m 17s elapsed, 3h 45m 43s of budget remaining. Output: …------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ -------------------------------------------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ --------------------------------------------------------------------
r232h 45mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def solve_maze(): dirs = [North, East, South, West] d = 0 while get_entity_type() != Entities.Treasure: if get_entity_type() != Entities.Hedge: break left_d = (d - 1) % 4 if move(dirs[left_d]): d = left_d elif move(dirs[d]): pass else: right_d = (d + 1) % 4 if move(dirs[right_d]): d = right_d else: back_d = (d + 2) % 4 move(dirs[back_d]) d = back_d if get_entity_type() == Entities.Treasure: harvest() def farm_dinosaur_small(): set_world_size(12) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) set_world_size(0) def farm_mazes_small(target_gold): set_world_size(6) w = get_world_size() while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): clear_tile() plant(Entities.Bush) sub = w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) use_item(Items.Weird_Substance, sub) solve_maze() set_world_size(0) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 2: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 2: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 2: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 2: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def sunflower_col(x): w = get_world_size() move_to(x, 0) res = [] for y in range(w): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: res.append((p, x, y)) if y < w - 1: move(North) return res def harvest_sunflower_tile(pos): move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_strip(start_x, width): w = get_world_size() comp = {} for pass_num in range(3): for x in range(start_x, start_x + width): move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 20000000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 100000 and num_items(Items.Wood) > 100000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Weird_Substance) < 50000 and num_items(Items.Fertilizer) > 50: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct if y < w - 1: move(North) while True: set_world_size(0) w = get_world_size() n = w * w change_hat(Hats.Green_Hat) if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 2000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for x in range(w): d = spawn_drone(sunflower_col, x) if d != None: drones.append(d) else: res = sunflower_col(x) for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for d in drones: res = wait_for(d) if res != None: for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: hdrones = [] for pos in petals[p]: d = spawn_drone(harvest_sunflower_tile, pos) if d != None: hdrones.append(d) else: harvest_sunflower_tile(pos) for d in hdrones: wait_for(d) elif num_items(Items.Gold) < 600000 and num_items(Items.Weird_Substance) >= 6 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): farm_mazes_small(600000) elif num_items(Items.Bone) < 1300000 and num_items(Items.Cactus) > 144 * get_cost(Entities.Apple)[Items.Cactus]: farm_dinosaur_small() elif num_items(Items.Cactus) < 6000000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 5000000: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() else: md = max_drones() strip_w = w // md drones = [] for i in range(md - 1): d = spawn_drone(poly_strip, i * strip_w, strip_w) if d != None: drones.append(d) poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) for d in drones: wait_for(d)Changes from the previous revision
harvest() + def clear_col(x): + w = get_world_size() + move_to(x, 0) + for y in range(w): + clear_tile() + if y < w - 1: + move(North) + def solve_maze(): dirs = [North, East, South, West] harvest() - def clear_col(x): - w = get_world_size() - move_to(x, 0) - for y in range(w): - clear_tile() - if y < w - 1: - move(North) - - def farm_dinosaur(): + def farm_dinosaur_small(): + set_world_size(12) w = get_world_size() drones = [] break change_hat(Hats.Green_Hat) + set_world_size(0) + def farm_mazes_small(target_gold): + set_world_size(6) + w = get_world_size() + while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): + clear_tile() + plant(Entities.Bush) + sub = w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) + use_item(Items.Weird_Substance, sub) + solve_maze() + set_world_size(0) + def sort_col(x): w = get_world_size() if (x + y) % 2 == 0: plant_type(Entities.Tree) - elif num_items(Items.Hay) < 1500000: + elif num_items(Items.Hay) < 20000000: plant_type(Entities.Grass) - elif num_items(Items.Hay) > 50000 and num_items(Items.Wood) > 50000: + elif num_items(Items.Hay) > 100000 and num_items(Items.Wood) > 100000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) - if num_items(Items.Weird_Substance) < 5000 and num_items(Items.Fertilizer) > 50: + if num_items(Items.Weird_Substance) < 50000 and num_items(Items.Fertilizer) > 50: use_item(Items.Fertilizer) c = get_companion() while True: + set_world_size(0) w = get_world_size() n = w * w if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() - if num_items(Items.Power) < 1500 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: + if num_items(Items.Power) < 2000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for d in hdrones: wait_for(d) - elif num_items(Items.Cactus) < 900000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: + elif num_items(Items.Gold) < 600000 and num_items(Items.Weird_Substance) >= 6 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): + farm_mazes_small(600000) + elif num_items(Items.Bone) < 1300000 and num_items(Items.Cactus) > 144 * get_cost(Entities.Apple)[Items.Cactus]: + farm_dinosaur_small() + elif num_items(Items.Cactus) < 6000000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): wait_for(d) harvest() - elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 4200000: + elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 5000000: drones = [] for x in range(w):
- Write result the agent saw
Saved main (374 lines). Game time: 2h 45m 23s elapsed, 3h 14m 37s of budget remaining.
- run_program at 2h 45m for 120s (agent saw)
Ran main for 2m of game time; it is still running. Inventory change: fertilizer +96, gold +26784, power -121.31, water +3072, weird_substance -4512. Game time: 2h 47m 33s elapsed, 3h 12m 27s of budget remaining. Output: (none)
r242h 48mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur_small(): set_world_size(14) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) set_world_size(0) def maze_drone(pos): move_to(pos[0], pos[1]) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) while num_items(Items.Gold) < 660000 and num_items(Items.Weird_Substance) >= sub * 32: if get_entity_type() == Entities.Treasure: if num_items(Items.Weird_Substance) >= sub * 64: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() else: harvest() elif get_entity_type() != Entities.Hedge: if can_harvest(): harvest() plant(Entities.Bush) use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() def farm_mazes_fast(target_gold): set_world_size(5) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): for y in range(w): if x == 0 and y == 0: continue d = spawn_drone(maze_drone, (x, y)) if d != None: drones.append(d) move_to(0, 0) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) dirs = [North, East, South, West] d_idx = 0 while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= sub * 32: if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: if can_harvest(): harvest() plant(Entities.Bush) use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: if num_items(Items.Weird_Substance) >= sub * 64: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() else: harvest() elif get_entity_type() == Entities.Hedge: m = measure() if m != None: tx, ty = m cx = get_pos_x() cy = get_pos_y() moved = False if tx > cx and can_move(East): moved = move(East) elif tx < cx and can_move(West): moved = move(West) elif ty > cy and can_move(North): moved = move(North) elif ty < cy and can_move(South): moved = move(South) if not moved: left_d = (d_idx - 1) % 4 if move(dirs[left_d]): d_idx = left_d elif move(dirs[d_idx]): pass else: right_d = (d_idx + 1) % 4 if move(dirs[right_d]): d_idx = right_d else: back_d = (d_idx + 2) % 4 move(dirs[back_d]) d_idx = back_d if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() for d in drones: wait_for(d) set_world_size(0) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 1: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 1: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 1: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 1: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def sunflower_col(x): w = get_world_size() move_to(x, 0) res = [] for y in range(w): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: res.append((p, x, y)) if y < w - 1: move(North) return res def harvest_sunflower_tile(pos): move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_strip(start_x, width): w = get_world_size() comp = {} for pass_num in range(3): for x in range(start_x, start_x + width): move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 20000000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 100000 and num_items(Items.Wood) > 100000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Weird_Substance) < 100000 and num_items(Items.Fertilizer) > 10: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct if y < w - 1: move(North) while True: set_world_size(0) w = get_world_size() n = w * w change_hat(Hats.Green_Hat) if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 2000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for x in range(w): d = spawn_drone(sunflower_col, x) if d != None: drones.append(d) else: res = sunflower_col(x) for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for d in drones: res = wait_for(d) if res != None: for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: hdrones = [] for pos in petals[p]: d = spawn_drone(harvest_sunflower_tile, pos) if d != None: hdrones.append(d) else: harvest_sunflower_tile(pos) for d in hdrones: wait_for(d) elif num_items(Items.Cactus) < 6000000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Gold) < 650000 and num_items(Items.Weird_Substance) >= 2000: farm_mazes_fast(650000) elif num_items(Items.Bone) < 1300000 and num_items(Items.Cactus) > 196 * get_cost(Entities.Apple)[Items.Cactus]: farm_dinosaur_small() elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 5000000: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() else: md = max_drones() strip_w = w // md drones = [] for i in range(md - 1): d = spawn_drone(poly_strip, i * strip_w, strip_w) if d != None: drones.append(d) poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) for d in drones: wait_for(d)Changes from the previous revision
move(North) - def solve_maze(): - dirs = [North, East, South, West] - d = 0 - while get_entity_type() != Entities.Treasure: - if get_entity_type() != Entities.Hedge: - break - left_d = (d - 1) % 4 - if move(dirs[left_d]): - d = left_d - elif move(dirs[d]): - pass - else: - right_d = (d + 1) % 4 - if move(dirs[right_d]): - d = right_d - else: - back_d = (d + 2) % 4 - move(dirs[back_d]) - d = back_d - if get_entity_type() == Entities.Treasure: - harvest() - def farm_dinosaur_small(): - set_world_size(12) + set_world_size(14) w = get_world_size() drones = [] set_world_size(0) - def farm_mazes_small(target_gold): - set_world_size(6) + def maze_drone(pos): + move_to(pos[0], pos[1]) + sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) + while num_items(Items.Gold) < 660000 and num_items(Items.Weird_Substance) >= sub * 32: + if get_entity_type() == Entities.Treasure: + if num_items(Items.Weird_Substance) >= sub * 64: + use_item(Items.Weird_Substance, sub) + if get_entity_type() == Entities.Treasure: + harvest() + else: + harvest() + elif get_entity_type() != Entities.Hedge: + if can_harvest(): + harvest() + plant(Entities.Bush) + use_item(Items.Weird_Substance, sub) + if get_entity_type() == Entities.Treasure: + harvest() + + def farm_mazes_fast(target_gold): + set_world_size(5) w = get_world_size() - while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): - clear_tile() - plant(Entities.Bush) - sub = w * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) - use_item(Items.Weird_Substance, sub) - solve_maze() + drones = [] + for x in range(w): + d = spawn_drone(clear_col, x) + if d != None: + drones.append(d) + else: + clear_col(x) + for d in drones: + wait_for(d) + drones = [] + for x in range(w): + for y in range(w): + if x == 0 and y == 0: + continue + d = spawn_drone(maze_drone, (x, y)) + if d != None: + drones.append(d) + move_to(0, 0) + sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) + dirs = [North, East, South, West] + d_idx = 0 + while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= sub * 32: + if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: + if can_harvest(): + harvest() + plant(Entities.Bush) + use_item(Items.Weird_Substance, sub) + if get_entity_type() == Entities.Treasure: + if num_items(Items.Weird_Substance) >= sub * 64: + use_item(Items.Weird_Substance, sub) + if get_entity_type() == Entities.Treasure: + harvest() + else: + harvest() + elif get_entity_type() == Entities.Hedge: + m = measure() + if m != None: + tx, ty = m + cx = get_pos_x() + cy = get_pos_y() + moved = False + if tx > cx and can_move(East): + moved = move(East) + elif tx < cx and can_move(West): + moved = move(West) + elif ty > cy and can_move(North): + moved = move(North) + elif ty < cy and can_move(South): + moved = move(South) + if not moved: + left_d = (d_idx - 1) % 4 + if move(dirs[left_d]): + d_idx = left_d + elif move(dirs[d_idx]): + pass + else: + right_d = (d_idx + 1) % 4 + if move(dirs[right_d]): + d_idx = right_d + else: + back_d = (d_idx + 2) % 4 + move(dirs[back_d]) + d_idx = back_d + if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: + harvest() + for d in drones: + wait_for(d) set_world_size(0) swap(North) swapped = True - if step < w - 2: + if step < w - 1: move(North) else: swap(South) swapped = True - if step < w - 2: + if step < w - 1: move(South) if not swapped: swap(East) swapped = True - if step < w - 2: + if step < w - 1: move(East) else: swap(West) swapped = True - if step < w - 2: + if step < w - 1: move(West) if not swapped: else: plant_type(Entities.Grass) - if num_items(Items.Weird_Substance) < 50000 and num_items(Items.Fertilizer) > 50: + if num_items(Items.Weird_Substance) < 100000 and num_items(Items.Fertilizer) > 10: use_item(Items.Fertilizer) c = get_companion() for d in hdrones: wait_for(d) - elif num_items(Items.Gold) < 600000 and num_items(Items.Weird_Substance) >= 6 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)): - farm_mazes_small(600000) - elif num_items(Items.Bone) < 1300000 and num_items(Items.Cactus) > 144 * get_cost(Entities.Apple)[Items.Cactus]: - farm_dinosaur_small() elif num_items(Items.Cactus) < 6000000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] wait_for(d) harvest() + elif num_items(Items.Gold) < 650000 and num_items(Items.Weird_Substance) >= 2000: + farm_mazes_fast(650000) + elif num_items(Items.Bone) < 1300000 and num_items(Items.Cactus) > 196 * get_cost(Entities.Apple)[Items.Cactus]: + farm_dinosaur_small() elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 5000000: drones = []
- Write result the agent saw
Saved main (432 lines). Game time: 2h 48m 23s elapsed, 3h 11m 37s of budget remaining.
- run_program at 2h 48m for 90s (agent saw)
Ran main for 1m 30s of game time; it is still running. Inventory change: fertilizer +72, hay +262144, power -582.16, pumpkin -32768, water +2304. Game time: 2h 50m 3s elapsed, 3h 9m 57s of budget remaining. Output: (none)
r252h 55mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur_small(): set_world_size(14) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) set_world_size(0) def maze_drone(pos): move_to(pos[0], pos[1]) while num_items(Items.Gold) < 700000 and num_items(Items.Weird_Substance) >= 400: sub = 4 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) if get_entity_type() == Entities.Treasure: if num_items(Items.Weird_Substance) >= sub * 10: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() else: harvest() elif get_entity_type() != Entities.Hedge: if can_harvest(): harvest() plant(Entities.Bush) use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() def farm_mazes_fast(target_gold): set_world_size(4) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): for y in range(w): if x == 0 and y == 0: continue d = spawn_drone(maze_drone, (x, y)) if d != None: drones.append(d) move_to(0, 0) dirs = [North, East, South, West] d_idx = 0 while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= 400: sub = 4 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: if can_harvest(): harvest() plant(Entities.Bush) use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: if num_items(Items.Weird_Substance) >= sub * 10: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() else: harvest() elif get_entity_type() == Entities.Hedge: left_d = (d_idx - 1) % 4 if move(dirs[left_d]): d_idx = left_d elif move(dirs[d_idx]): pass else: right_d = (d_idx + 1) % 4 if move(dirs[right_d]): d_idx = right_d else: back_d = (d_idx + 2) % 4 move(dirs[back_d]) d_idx = back_d if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() for d in drones: wait_for(d) set_world_size(0) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 1: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 1: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 1: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 1: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def sunflower_col(x): w = get_world_size() move_to(x, 0) res = [] for y in range(w): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: res.append((p, x, y)) if y < w - 1: move(North) return res def harvest_sunflower_tile(pos): move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_strip(start_x, width): w = get_world_size() comp = {} for pass_num in range(3): for x in range(start_x, start_x + width): move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 20000000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 100000 and num_items(Items.Wood) > 100000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Weird_Substance) < 100000 and num_items(Items.Fertilizer) > 10: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct if y < w - 1: move(North) while True: set_world_size(0) w = get_world_size() n = w * w change_hat(Hats.Green_Hat) if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 2000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for x in range(w): d = spawn_drone(sunflower_col, x) if d != None: drones.append(d) else: res = sunflower_col(x) for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for d in drones: res = wait_for(d) if res != None: for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: hdrones = [] for pos in petals[p]: d = spawn_drone(harvest_sunflower_tile, pos) if d != None: hdrones.append(d) else: harvest_sunflower_tile(pos) for d in hdrones: wait_for(d) elif num_items(Items.Cactus) < 6000000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Gold) < 650000 and num_items(Items.Weird_Substance) >= 2000: farm_mazes_fast(650000) elif num_items(Items.Bone) < 1300000 and num_items(Items.Cactus) > 196 * get_cost(Entities.Apple)[Items.Cactus]: farm_dinosaur_small() elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 5000000: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() else: md = max_drones() strip_w = w // md drones = [] for i in range(md - 1): d = spawn_drone(poly_strip, i * strip_w, strip_w) if d != None: drones.append(d) poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) for d in drones: wait_for(d)Changes from the previous revision
def maze_drone(pos): move_to(pos[0], pos[1]) - sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) - while num_items(Items.Gold) < 660000 and num_items(Items.Weird_Substance) >= sub * 32: + while num_items(Items.Gold) < 700000 and num_items(Items.Weird_Substance) >= 400: + sub = 4 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) if get_entity_type() == Entities.Treasure: - if num_items(Items.Weird_Substance) >= sub * 64: + if num_items(Items.Weird_Substance) >= sub * 10: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: def farm_mazes_fast(target_gold): - set_world_size(5) + set_world_size(4) w = get_world_size() drones = [] drones.append(d) move_to(0, 0) - sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) dirs = [North, East, South, West] d_idx = 0 - while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= sub * 32: + while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= 400: + sub = 4 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: if can_harvest(): use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: - if num_items(Items.Weird_Substance) >= sub * 64: + if num_items(Items.Weird_Substance) >= sub * 10: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() elif get_entity_type() == Entities.Hedge: - m = measure() - if m != None: - tx, ty = m - cx = get_pos_x() - cy = get_pos_y() - moved = False - if tx > cx and can_move(East): - moved = move(East) - elif tx < cx and can_move(West): - moved = move(West) - elif ty > cy and can_move(North): - moved = move(North) - elif ty < cy and can_move(South): - moved = move(South) - if not moved: - left_d = (d_idx - 1) % 4 - if move(dirs[left_d]): - d_idx = left_d - elif move(dirs[d_idx]): - pass - else: - right_d = (d_idx + 1) % 4 - if move(dirs[right_d]): - d_idx = right_d - else: - back_d = (d_idx + 2) % 4 - move(dirs[back_d]) - d_idx = back_d + left_d = (d_idx - 1) % 4 + if move(dirs[left_d]): + d_idx = left_d + elif move(dirs[d_idx]): + pass + else: + right_d = (d_idx + 1) % 4 + if move(dirs[right_d]): + d_idx = right_d + else: + back_d = (d_idx + 2) % 4 + move(dirs[back_d]) + d_idx = back_d if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest()
- Write result the agent saw
Saved main (417 lines). Game time: 2h 55m 24s elapsed, 3h 4m 36s of budget remaining.
- run_program at 2h 55m for 60s (agent saw)
Ran main for 1m of game time; it is still running. Inventory change: fertilizer +48, gold +1792, power -482.49, water +1536, weird_substance -576. Game time: 2h 56m 34s elapsed, 3h 3m 26s of budget remaining. Output: (none)
r262h 56mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur_small(): set_world_size(14) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) set_world_size(0) def maze_drone(pos): move_to(pos[0], pos[1]) while num_items(Items.Gold) < 700000 and num_items(Items.Weird_Substance) >= 400: if get_entity_type() == Entities.Treasure: sub = 4 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) if num_items(Items.Weird_Substance) >= sub * 5: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() else: harvest() else: get_pos_x() def farm_mazes_fast(target_gold): set_world_size(4) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) drones = [] pts = [(0, 1), (0, 3), (1, 0), (1, 2), (2, 1), (2, 3), (3, 0), (3, 2), (0, 2), (1, 1), (1, 3), (2, 0), (2, 2), (3, 1), (3, 3)] for pos in pts: d = spawn_drone(maze_drone, pos) if d != None: drones.append(d) move_to(0, 0) dirs = [North, East, South, West] d_idx = 0 steps = 0 while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= 400: sub = 4 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: if can_harvest(): harvest() plant(Entities.Bush) use_item(Items.Weird_Substance, sub) steps = 0 if get_entity_type() == Entities.Treasure: if num_items(Items.Weird_Substance) >= sub * 5: use_item(Items.Weird_Substance, sub) steps = 0 if get_entity_type() == Entities.Treasure: harvest() else: harvest() elif get_entity_type() == Entities.Hedge: steps += 1 if steps > 40: harvest() steps = 0 else: left_d = (d_idx - 1) % 4 if move(dirs[left_d]): d_idx = left_d elif move(dirs[d_idx]): pass else: right_d = (d_idx + 1) % 4 if move(dirs[right_d]): d_idx = right_d else: back_d = (d_idx + 2) % 4 move(dirs[back_d]) d_idx = back_d if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() for d in drones: wait_for(d) set_world_size(0) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 1: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 1: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 1: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 1: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def sunflower_col(x): w = get_world_size() move_to(x, 0) res = [] for y in range(w): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: res.append((p, x, y)) if y < w - 1: move(North) return res def harvest_sunflower_tile(pos): move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_strip(start_x, width): w = get_world_size() comp = {} for pass_num in range(3): for x in range(start_x, start_x + width): move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 20000000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 100000 and num_items(Items.Wood) > 100000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Weird_Substance) < 100000 and num_items(Items.Fertilizer) > 10: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct if y < w - 1: move(North) while True: set_world_size(0) w = get_world_size() n = w * w change_hat(Hats.Green_Hat) if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 2000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for x in range(w): d = spawn_drone(sunflower_col, x) if d != None: drones.append(d) else: res = sunflower_col(x) for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for d in drones: res = wait_for(d) if res != None: for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: hdrones = [] for pos in petals[p]: d = spawn_drone(harvest_sunflower_tile, pos) if d != None: hdrones.append(d) else: harvest_sunflower_tile(pos) for d in hdrones: wait_for(d) elif num_items(Items.Cactus) < 6000000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Gold) < 650000 and num_items(Items.Weird_Substance) >= 2000: farm_mazes_fast(650000) elif num_items(Items.Bone) < 1300000 and num_items(Items.Cactus) > 196 * get_cost(Entities.Apple)[Items.Cactus]: farm_dinosaur_small() elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 5000000: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() else: md = max_drones() strip_w = w // md drones = [] for i in range(md - 1): d = spawn_drone(poly_strip, i * strip_w, strip_w) if d != None: drones.append(d) poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) for d in drones: wait_for(d)Changes from the previous revision
move_to(pos[0], pos[1]) while num_items(Items.Gold) < 700000 and num_items(Items.Weird_Substance) >= 400: - sub = 4 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) if get_entity_type() == Entities.Treasure: - if num_items(Items.Weird_Substance) >= sub * 10: + sub = 4 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) + if num_items(Items.Weird_Substance) >= sub * 5: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: else: harvest() - elif get_entity_type() != Entities.Hedge: - if can_harvest(): - harvest() - plant(Entities.Bush) - use_item(Items.Weird_Substance, sub) - if get_entity_type() == Entities.Treasure: - harvest() + else: + get_pos_x() def farm_mazes_fast(target_gold): wait_for(d) drones = [] - for x in range(w): - for y in range(w): - if x == 0 and y == 0: - continue - d = spawn_drone(maze_drone, (x, y)) - if d != None: - drones.append(d) + pts = [(0, 1), (0, 3), (1, 0), (1, 2), (2, 1), (2, 3), (3, 0), (3, 2), (0, 2), (1, 1), (1, 3), (2, 0), (2, 2), (3, 1), (3, 3)] + for pos in pts: + d = spawn_drone(maze_drone, pos) + if d != None: + drones.append(d) move_to(0, 0) dirs = [North, East, South, West] d_idx = 0 + steps = 0 while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= 400: sub = 4 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) plant(Entities.Bush) use_item(Items.Weird_Substance, sub) + steps = 0 if get_entity_type() == Entities.Treasure: - if num_items(Items.Weird_Substance) >= sub * 10: + if num_items(Items.Weird_Substance) >= sub * 5: use_item(Items.Weird_Substance, sub) + steps = 0 if get_entity_type() == Entities.Treasure: harvest() harvest() elif get_entity_type() == Entities.Hedge: - left_d = (d_idx - 1) % 4 - if move(dirs[left_d]): - d_idx = left_d - elif move(dirs[d_idx]): - pass + steps += 1 + if steps > 40: + harvest() + steps = 0 else: - right_d = (d_idx + 1) % 4 - if move(dirs[right_d]): - d_idx = right_d + left_d = (d_idx - 1) % 4 + if move(dirs[left_d]): + d_idx = left_d + elif move(dirs[d_idx]): + pass else: - back_d = (d_idx + 2) % 4 - move(dirs[back_d]) - d_idx = back_d + right_d = (d_idx + 1) % 4 + if move(dirs[right_d]): + d_idx = right_d + else: + back_d = (d_idx + 2) % 4 + move(dirs[back_d]) + d_idx = back_d if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest()
- Write result the agent saw
Saved main (418 lines). Game time: 2h 57m 4s elapsed, 3h 2m 56s of budget remaining.
- run_program at 2h 57m for 45s (agent saw)
Ran main for 45s of game time; it is still running. Inventory change: fertilizer +36, gold +47104, hay +256, power -360.97, water +1152, weird_substance -11968. Game time: 2h 57m 59s elapsed, 3h 2m 1s of budget remaining. Output: (none)
- run_program at 2h 58m for 150s (agent saw)
Ran main for 2m 30s of game time; it is still running. Inventory change: cactus -96, carrot -1024, fertilizer +118, gold +215040, hay +303616, power +6328.32, water +2810, weird_substance -53944. Game time: 3h 1m 21s elapsed, 2h 58m 39s of budget remaining. Output: (none)
r273h 14mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur_small(): set_world_size(14) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) set_world_size(0) def maze_drone(pos): move_to(pos[0], pos[1]) while num_items(Items.Gold) < 520000 and num_items(Items.Weird_Substance) >= 400: if get_entity_type() == Entities.Treasure: sub = 4 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) if num_items(Items.Weird_Substance) >= sub * 5: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() else: harvest() else: get_pos_x() def farm_mazes_fast(target_gold): set_world_size(4) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) drones = [] pts = [(0, 1), (0, 3), (1, 0), (1, 2), (2, 1), (2, 3), (3, 0), (3, 2), (0, 2), (1, 1), (1, 3), (2, 0), (2, 2), (3, 1), (3, 3)] for pos in pts: d = spawn_drone(maze_drone, pos) if d != None: drones.append(d) move_to(0, 0) dirs = [North, East, South, West] d_idx = 0 steps = 0 while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= 400: sub = 4 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: if can_harvest(): harvest() plant(Entities.Bush) use_item(Items.Weird_Substance, sub) steps = 0 if get_entity_type() == Entities.Treasure: if num_items(Items.Weird_Substance) >= sub * 5: use_item(Items.Weird_Substance, sub) steps = 0 if get_entity_type() == Entities.Treasure: harvest() else: harvest() elif get_entity_type() == Entities.Hedge: steps += 1 if steps > 40: harvest() steps = 0 else: left_d = (d_idx - 1) % 4 if move(dirs[left_d]): d_idx = left_d elif move(dirs[d_idx]): pass else: right_d = (d_idx + 1) % 4 if move(dirs[right_d]): d_idx = right_d else: back_d = (d_idx + 2) % 4 move(dirs[back_d]) d_idx = back_d if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() for d in drones: wait_for(d) set_world_size(0) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 1: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 1: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 1: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 1: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def sunflower_col(x): w = get_world_size() move_to(x, 0) res = [] for y in range(w): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: res.append((p, x, y)) if y < w - 1: move(North) return res def harvest_sunflower_tile(pos): move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_strip(start_x, width): w = get_world_size() comp = {} for pass_num in range(4): for x in range(start_x, start_x + width): move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < 20000000: plant_type(Entities.Grass) elif num_items(Items.Hay) > 100000 and num_items(Items.Wood) > 100000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Weird_Substance) < 300000 and num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct if y < w - 1: move(North) while True: set_world_size(0) w = get_world_size() n = w * w change_hat(Hats.Green_Hat) if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 2000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for x in range(w): d = spawn_drone(sunflower_col, x) if d != None: drones.append(d) else: res = sunflower_col(x) for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for d in drones: res = wait_for(d) if res != None: for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: hdrones = [] for pos in petals[p]: d = spawn_drone(harvest_sunflower_tile, pos) if d != None: hdrones.append(d) else: harvest_sunflower_tile(pos) for d in hdrones: wait_for(d) elif num_items(Items.Gold) < 515000 and num_items(Items.Weird_Substance) >= 80000: farm_mazes_fast(515000) elif num_items(Items.Wood) < 40000000 or num_items(Items.Hay) < 20000000 or num_items(Items.Carrot) < 5000000: md = max_drones() strip_w = w // md drones = [] for i in range(md - 1): d = spawn_drone(poly_strip, i * strip_w, strip_w) if d != None: drones.append(d) poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) for d in drones: wait_for(d) elif num_items(Items.Cactus) < 35000000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 30000000: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() else: md = max_drones() strip_w = w // md drones = [] for i in range(md - 1): d = spawn_drone(poly_strip, i * strip_w, strip_w) if d != None: drones.append(d) poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) for d in drones: wait_for(d)Changes from the previous revision
def maze_drone(pos): move_to(pos[0], pos[1]) - while num_items(Items.Gold) < 700000 and num_items(Items.Weird_Substance) >= 400: + while num_items(Items.Gold) < 520000 and num_items(Items.Weird_Substance) >= 400: if get_entity_type() == Entities.Treasure: sub = 4 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) w = get_world_size() comp = {} - for pass_num in range(3): + for pass_num in range(4): for x in range(start_x, start_x + width): move_to(x, 0) else: plant_type(Entities.Grass) - if num_items(Items.Weird_Substance) < 100000 and num_items(Items.Fertilizer) > 10: + if num_items(Items.Weird_Substance) < 300000 and num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) c = get_companion() for d in hdrones: wait_for(d) - elif num_items(Items.Cactus) < 6000000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: + elif num_items(Items.Gold) < 515000 and num_items(Items.Weird_Substance) >= 80000: + farm_mazes_fast(515000) + elif num_items(Items.Wood) < 40000000 or num_items(Items.Hay) < 20000000 or num_items(Items.Carrot) < 5000000: + md = max_drones() + strip_w = w // md drones = [] + for i in range(md - 1): + d = spawn_drone(poly_strip, i * strip_w, strip_w) + if d != None: + drones.append(d) + poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) + for d in drones: + wait_for(d) + elif num_items(Items.Cactus) < 35000000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: + drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) wait_for(d) harvest() - elif num_items(Items.Gold) < 650000 and num_items(Items.Weird_Substance) >= 2000: - farm_mazes_fast(650000) - elif num_items(Items.Bone) < 1300000 and num_items(Items.Cactus) > 196 * get_cost(Entities.Apple)[Items.Cactus]: - farm_dinosaur_small() - elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 5000000: + elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 30000000: drones = [] for x in range(w):
- Write result the agent saw
Saved main (427 lines). Game time: 3h 14m 58s elapsed, 2h 45m 2s of budget remaining.
- run_program at 3h 14m for 60s (agent saw)
Ran main for 1m of game time; it is still running. Inventory change: carrot +2986368, fertilizer -753, gold +129792, hay +26554496, power -937.38, water -755, weird_substance +27443712, wood +108041600. Game time: 3h 16m 8s elapsed, 2h 43m 52s of budget remaining. Output: (none)
r283h 17mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur_small(): set_world_size(14) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) set_world_size(0) def maze_drone(pos): move_to(pos[0], pos[1]) while num_items(Items.Gold) < 2000000 and num_items(Items.Weird_Substance) >= 1000: if get_entity_type() == Entities.Treasure: sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) if num_items(Items.Weird_Substance) >= sub * 5: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() else: harvest() else: get_pos_x() def farm_mazes_fast(target_gold): set_world_size(5) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): for y in range(w): if x == 0 and y == 0: continue d = spawn_drone(maze_drone, (x, y)) if d != None: drones.append(d) move_to(0, 0) dirs = [North, East, South, West] d_idx = 0 steps = 0 while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= 1000: sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: if can_harvest(): harvest() plant(Entities.Bush) use_item(Items.Weird_Substance, sub) steps = 0 if get_entity_type() == Entities.Treasure: if num_items(Items.Weird_Substance) >= sub * 5: use_item(Items.Weird_Substance, sub) steps = 0 if get_entity_type() == Entities.Treasure: harvest() else: harvest() elif get_entity_type() == Entities.Hedge: steps += 1 if steps > 40: harvest() steps = 0 else: left_d = (d_idx - 1) % 4 if move(dirs[left_d]): d_idx = left_d elif move(dirs[d_idx]): pass else: right_d = (d_idx + 1) % 4 if move(dirs[right_d]): d_idx = right_d else: back_d = (d_idx + 2) % 4 move(dirs[back_d]) d_idx = back_d if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() for d in drones: wait_for(d) set_world_size(0) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 1: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 1: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 1: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 1: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def sunflower_col(x): w = get_world_size() move_to(x, 0) res = [] for y in range(w): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: res.append((p, x, y)) if y < w - 1: move(North) return res def harvest_sunflower_tile(pos): move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_strip(start_x, width): w = get_world_size() comp = {} for pass_num in range(4): for x in range(start_x, start_x + width): move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Carrot) < 120000000 and num_items(Items.Hay) > 5000000 and num_items(Items.Wood) > 5000000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Weird_Substance) < 50000000 and num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if not (cpos in comp): comp[cpos] = ct if y < w - 1: move(North) while True: set_world_size(0) w = get_world_size() n = w * w change_hat(Hats.Green_Hat) if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 3000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for x in range(w): d = spawn_drone(sunflower_col, x) if d != None: drones.append(d) else: res = sunflower_col(x) for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for d in drones: res = wait_for(d) if res != None: for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: hdrones = [] for pos in petals[p]: d = spawn_drone(harvest_sunflower_tile, pos) if d != None: hdrones.append(d) else: harvest_sunflower_tile(pos) for d in hdrones: wait_for(d) elif num_items(Items.Wood) < 100000000 or num_items(Items.Carrot) < 100000000: md = max_drones() strip_w = w // md drones = [] for i in range(md - 1): d = spawn_drone(poly_strip, i * strip_w, strip_w) if d != None: drones.append(d) poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) for d in drones: wait_for(d) elif num_items(Items.Pumpkin) < 30000000 and num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot]: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() elif num_items(Items.Cactus) < 35000000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Gold) < 2000000 and num_items(Items.Weird_Substance) >= 100000: farm_mazes_fast(2000000) elif num_items(Items.Bone) < 3000000 and num_items(Items.Cactus) > 196 * get_cost(Entities.Apple)[Items.Cactus]: farm_dinosaur_small() else: md = max_drones() strip_w = w // md drones = [] for i in range(md - 1): d = spawn_drone(poly_strip, i * strip_w, strip_w) if d != None: drones.append(d) poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) for d in drones: wait_for(d)Changes from the previous revision
def maze_drone(pos): move_to(pos[0], pos[1]) - while num_items(Items.Gold) < 520000 and num_items(Items.Weird_Substance) >= 400: + while num_items(Items.Gold) < 2000000 and num_items(Items.Weird_Substance) >= 1000: if get_entity_type() == Entities.Treasure: - sub = 4 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) + sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) if num_items(Items.Weird_Substance) >= sub * 5: use_item(Items.Weird_Substance, sub) def farm_mazes_fast(target_gold): - set_world_size(4) + set_world_size(5) w = get_world_size() drones = [] wait_for(d) drones = [] - pts = [(0, 1), (0, 3), (1, 0), (1, 2), (2, 1), (2, 3), (3, 0), (3, 2), (0, 2), (1, 1), (1, 3), (2, 0), (2, 2), (3, 1), (3, 3)] - for pos in pts: - d = spawn_drone(maze_drone, pos) - if d != None: - drones.append(d) + for x in range(w): + for y in range(w): + if x == 0 and y == 0: + continue + d = spawn_drone(maze_drone, (x, y)) + if d != None: + drones.append(d) move_to(0, 0) dirs = [North, East, South, West] d_idx = 0 steps = 0 - while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= 400: - sub = 4 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) + while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= 1000: + sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: if can_harvest(): if (x + y) % 2 == 0: plant_type(Entities.Tree) - elif num_items(Items.Hay) < 20000000: - plant_type(Entities.Grass) - elif num_items(Items.Hay) > 100000 and num_items(Items.Wood) > 100000: + elif num_items(Items.Carrot) < 120000000 and num_items(Items.Hay) > 5000000 and num_items(Items.Wood) > 5000000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) - if num_items(Items.Weird_Substance) < 300000 and num_items(Items.Fertilizer) > 5: + if num_items(Items.Weird_Substance) < 50000000 and num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) c = get_companion() if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() - if num_items(Items.Power) < 2000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: + if num_items(Items.Power) < 3000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for d in hdrones: wait_for(d) - elif num_items(Items.Gold) < 515000 and num_items(Items.Weird_Substance) >= 80000: - farm_mazes_fast(515000) - elif num_items(Items.Wood) < 40000000 or num_items(Items.Hay) < 20000000 or num_items(Items.Carrot) < 5000000: + elif num_items(Items.Wood) < 100000000 or num_items(Items.Carrot) < 100000000: md = max_drones() strip_w = w // md for d in drones: wait_for(d) + elif num_items(Items.Pumpkin) < 30000000 and num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot]: + drones = [] + for x in range(w): + d = spawn_drone(pumpkin_col, x) + if d != None: + drones.append(d) + else: + pumpkin_col(x) + for d in drones: + wait_for(d) + harvest() elif num_items(Items.Cactus) < 35000000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] wait_for(d) harvest() - elif num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot] and num_items(Items.Pumpkin) < 30000000: - drones = [] - for x in range(w): - d = spawn_drone(pumpkin_col, x) - if d != None: - drones.append(d) - else: - pumpkin_col(x) - for d in drones: - wait_for(d) - harvest() + elif num_items(Items.Gold) < 2000000 and num_items(Items.Weird_Substance) >= 100000: + farm_mazes_fast(2000000) + elif num_items(Items.Bone) < 3000000 and num_items(Items.Cactus) > 196 * get_cost(Entities.Apple)[Items.Cactus]: + farm_dinosaur_small() else: md = max_drones()
- Write result the agent saw
Saved main (429 lines). Game time: 3h 17m 26s elapsed, 2h 42m 34s of budget remaining.
- run_program at 3h 17m for 120s (agent saw)
Ran main for 2m of game time; it is still running. Inventory change: carrot +126586752, fertilizer -1249, hay +56206080, power +3798.06, water -3047, weird_substance +59422336, wood +1246488576. Game time: 3h 19m 36s elapsed, 2h 40m 24s of budget remaining. Output: (none)
r293h 23mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur_full(): set_world_size(0) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) def maze_drone(pos): move_to(pos[0], pos[1]) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) for step in range(2500): if num_items(Items.Weird_Substance) < sub * 5: break if get_entity_type() == Entities.Treasure: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() else: get_pos_x() def farm_mazes_batch(): set_world_size(5) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): for y in range(w): if x == 0 and y == 0: continue d = spawn_drone(maze_drone, (x, y)) if d != None: drones.append(d) move_to(0, 0) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) dirs = [North, East, South, West] d_idx = 0 steps = 0 for step in range(2500): if num_items(Items.Weird_Substance) < sub * 5: break if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: if can_harvest(): harvest() plant(Entities.Bush) use_item(Items.Weird_Substance, sub) steps = 0 if get_entity_type() == Entities.Treasure: use_item(Items.Weird_Substance, sub) steps = 0 if get_entity_type() == Entities.Treasure: harvest() elif get_entity_type() == Entities.Hedge: steps += 1 if steps > 40: harvest() steps = 0 else: left_d = (d_idx - 1) % 4 if move(dirs[left_d]): d_idx = left_d elif move(dirs[d_idx]): pass else: right_d = (d_idx + 1) % 4 if move(dirs[right_d]): d_idx = right_d else: back_d = (d_idx + 2) % 4 move(dirs[back_d]) d_idx = back_d if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() for d in drones: wait_for(d) set_world_size(0) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 1: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 1: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 1: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 1: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def sunflower_col(x): w = get_world_size() move_to(x, 0) res = [] for y in range(w): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: res.append((p, x, y)) if y < w - 1: move(North) return res def harvest_sunflower_tile(pos): move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_col(x): w = get_world_size() comp = {} for pass_num in range(6): move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < num_items(Items.Carrot): plant_type(Entities.Grass) elif num_items(Items.Hay) > 5000000 and num_items(Items.Wood) > 5000000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Fertilizer) > 10: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if cpos[0] == x: comp[cpos] = ct if y < w - 1: move(North) while True: set_world_size(0) w = get_world_size() n = w * w change_hat(Hats.Green_Hat) if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 4000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for x in range(w): d = spawn_drone(sunflower_col, x) if d != None: drones.append(d) else: res = sunflower_col(x) for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for d in drones: res = wait_for(d) if res != None: for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: hdrones = [] for pos in petals[p]: d = spawn_drone(harvest_sunflower_tile, pos) if d != None: hdrones.append(d) else: harvest_sunflower_tile(pos) for d in hdrones: wait_for(d) elif num_items(Items.Bone) < 30000000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus]: farm_dinosaur_full() elif num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= 1000000: farm_mazes_batch() elif num_items(Items.Bone) < 105000000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus]: farm_dinosaur_full() elif num_items(Items.Cactus) < 1100000000 and num_items(Items.Pumpkin) > n * 2 * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Pumpkin) < 200000000 and num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot]: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() else: drones = [] for x in range(w - 1): d = spawn_drone(poly_col, x) if d != None: drones.append(d) poly_col(w - 1) for d in drones: wait_for(d)Changes from the previous revision
move(North) - def farm_dinosaur_small(): - set_world_size(14) + def farm_dinosaur_full(): + set_world_size(0) w = get_world_size() drones = [] break change_hat(Hats.Green_Hat) - set_world_size(0) def maze_drone(pos): move_to(pos[0], pos[1]) - while num_items(Items.Gold) < 2000000 and num_items(Items.Weird_Substance) >= 1000: + sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) + for step in range(2500): + if num_items(Items.Weird_Substance) < sub * 5: + break if get_entity_type() == Entities.Treasure: - sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) - if num_items(Items.Weird_Substance) >= sub * 5: - use_item(Items.Weird_Substance, sub) - if get_entity_type() == Entities.Treasure: - harvest() - else: + use_item(Items.Weird_Substance, sub) + if get_entity_type() == Entities.Treasure: harvest() else: get_pos_x() - def farm_mazes_fast(target_gold): + def farm_mazes_batch(): set_world_size(5) w = get_world_size() drones.append(d) move_to(0, 0) + sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) dirs = [North, East, South, West] d_idx = 0 steps = 0 - while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= 1000: - sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) + for step in range(2500): + if num_items(Items.Weird_Substance) < sub * 5: + break if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: if can_harvest(): steps = 0 if get_entity_type() == Entities.Treasure: - if num_items(Items.Weird_Substance) >= sub * 5: - use_item(Items.Weird_Substance, sub) - steps = 0 - if get_entity_type() == Entities.Treasure: - harvest() - else: + use_item(Items.Weird_Substance, sub) + steps = 0 + if get_entity_type() == Entities.Treasure: harvest() elif get_entity_type() == Entities.Hedge: use_item(Items.Water) - def poly_strip(start_x, width): + def poly_col(x): w = get_world_size() comp = {} - for pass_num in range(4): - for x in range(start_x, start_x + width): - move_to(x, 0) - for y in range(w): - if can_harvest(): - harvest() - pos = (x, y) - if pos in comp: - t = comp.pop(pos) - plant_type(t) + for pass_num in range(6): + move_to(x, 0) + for y in range(w): + if can_harvest(): + harvest() + pos = (x, y) + if pos in comp: + t = comp.pop(pos) + plant_type(t) + else: + if (x + y) % 2 == 0: + plant_type(Entities.Tree) + elif num_items(Items.Hay) < num_items(Items.Carrot): + plant_type(Entities.Grass) + elif num_items(Items.Hay) > 5000000 and num_items(Items.Wood) > 5000000: + plant_type(Entities.Carrot) else: - if (x + y) % 2 == 0: - plant_type(Entities.Tree) - elif num_items(Items.Carrot) < 120000000 and num_items(Items.Hay) > 5000000 and num_items(Items.Wood) > 5000000: - plant_type(Entities.Carrot) - else: - plant_type(Entities.Grass) - if num_items(Items.Weird_Substance) < 50000000 and num_items(Items.Fertilizer) > 5: - use_item(Items.Fertilizer) - c = get_companion() - if c != None: - ct, cpos = c - if not (cpos in comp): - comp[cpos] = ct - if y < w - 1: - move(North) + plant_type(Entities.Grass) + if num_items(Items.Fertilizer) > 10: + use_item(Items.Fertilizer) + c = get_companion() + if c != None: + ct, cpos = c + if cpos[0] == x: + comp[cpos] = ct + if y < w - 1: + move(North) while True: if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() - if num_items(Items.Power) < 3000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: + if num_items(Items.Power) < 4000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for d in hdrones: wait_for(d) - elif num_items(Items.Wood) < 100000000 or num_items(Items.Carrot) < 100000000: - md = max_drones() - strip_w = w // md - drones = [] - for i in range(md - 1): - d = spawn_drone(poly_strip, i * strip_w, strip_w) - if d != None: - drones.append(d) - poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) - for d in drones: - wait_for(d) - elif num_items(Items.Pumpkin) < 30000000 and num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot]: - drones = [] - for x in range(w): - d = spawn_drone(pumpkin_col, x) - if d != None: - drones.append(d) - else: - pumpkin_col(x) - for d in drones: - wait_for(d) - harvest() - elif num_items(Items.Cactus) < 35000000 and num_items(Items.Pumpkin) > n * get_cost(Entities.Cactus)[Items.Pumpkin]: + elif num_items(Items.Bone) < 30000000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus]: + farm_dinosaur_full() + elif num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= 1000000: + farm_mazes_batch() + elif num_items(Items.Bone) < 105000000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus]: + farm_dinosaur_full() + elif num_items(Items.Cactus) < 1100000000 and num_items(Items.Pumpkin) > n * 2 * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): wait_for(d) harvest() - elif num_items(Items.Gold) < 2000000 and num_items(Items.Weird_Substance) >= 100000: - farm_mazes_fast(2000000) - elif num_items(Items.Bone) < 3000000 and num_items(Items.Cactus) > 196 * get_cost(Entities.Apple)[Items.Cactus]: - farm_dinosaur_small() + elif num_items(Items.Pumpkin) < 200000000 and num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot]: + drones = [] + for x in range(w): + d = spawn_drone(pumpkin_col, x) + if d != None: + drones.append(d) + else: + pumpkin_col(x) + for d in drones: + wait_for(d) + harvest() else: - md = max_drones() - strip_w = w // md drones = [] - for i in range(md - 1): - d = spawn_drone(poly_strip, i * strip_w, strip_w) + for x in range(w - 1): + d = spawn_drone(poly_col, x) if d != None: drones.append(d) - poly_strip((md - 1) * strip_w, w - (md - 1) * strip_w) + poly_col(w - 1) for d in drones: wait_for(d)
- Write result the agent saw
Saved main (416 lines). Game time: 3h 23m 16s elapsed, 2h 36m 44s of budget remaining.
- run_program at 3h 23m for 1200s (agent saw)
Ran main for 20m of game time; it is still running. Inventory change: cactus -12864, fertilizer +960, power -1265.27, pumpkin +425984, water +30720. Game time: 3h 43m 26s elapsed, 2h 16m 34s of budget remaining. Output: (none)
r304h 04mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur_full(): set_world_size(0) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) def maze_drone(pos): move_to(pos[0], pos[1]) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) while get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: if get_entity_type() == Entities.Treasure: if num_items(Items.Weird_Substance) >= sub * 5: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() else: harvest() def farm_mazes_batch(target_gold): set_world_size(5) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= sub * 50: if can_harvest(): harvest() plant(Entities.Bush) use_item(Items.Weird_Substance, sub) drones = [] for x in range(w): for y in range(w): if x == 0 and y == 0: continue d = spawn_drone(maze_drone, (x, y)) if d != None: drones.append(d) while get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: if get_entity_type() == Entities.Treasure: if num_items(Items.Weird_Substance) >= sub * 5: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() else: harvest() for d in drones: wait_for(d) set_world_size(0) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 1: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 1: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 1: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 1: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def sunflower_col(x): w = get_world_size() move_to(x, 0) res = [] for y in range(w): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: res.append((p, x, y)) if y < w - 1: move(North) return res def harvest_sunflower_tile(pos): move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_col(x): w = get_world_size() comp = {} for pass_num in range(6): move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < num_items(Items.Carrot): plant_type(Entities.Grass) elif num_items(Items.Hay) > 5000000 and num_items(Items.Wood) > 5000000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Fertilizer) > 10: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if cpos[0] == x: comp[cpos] = ct if y < w - 1: move(North) while True: set_world_size(0) w = get_world_size() n = w * w change_hat(Hats.Green_Hat) if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 4000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for x in range(w): d = spawn_drone(sunflower_col, x) if d != None: drones.append(d) else: res = sunflower_col(x) for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for d in drones: res = wait_for(d) if res != None: for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: hdrones = [] for pos in petals[p]: d = spawn_drone(harvest_sunflower_tile, pos) if d != None: hdrones.append(d) else: harvest_sunflower_tile(pos) for d in hdrones: wait_for(d) elif num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= 500000: farm_mazes_batch(105000000) elif num_items(Items.Cactus) < 1100000000 and num_items(Items.Pumpkin) > n * 2 * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Pumpkin) < 300000000 and num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot]: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() elif num_items(Items.Bone) < 105000000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus] and num_items(Items.Hay) > 1100000000 and num_items(Items.Wood) > 10500000000 and num_items(Items.Carrot) > 1100000000: farm_dinosaur_full() else: drones = [] for x in range(w - 1): d = spawn_drone(poly_col, x) if d != None: drones.append(d) poly_col(w - 1) for d in drones: wait_for(d)Changes from the previous revision
move_to(pos[0], pos[1]) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) - for step in range(2500): - if num_items(Items.Weird_Substance) < sub * 5: - break + while get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: if get_entity_type() == Entities.Treasure: - use_item(Items.Weird_Substance, sub) - if get_entity_type() == Entities.Treasure: + if num_items(Items.Weird_Substance) >= sub * 5: + use_item(Items.Weird_Substance, sub) + if get_entity_type() == Entities.Treasure: + harvest() + else: harvest() - else: - get_pos_x() - def farm_mazes_batch(): + def farm_mazes_batch(target_gold): set_world_size(5) w = get_world_size() for d in drones: wait_for(d) - drones = [] - for x in range(w): - for y in range(w): - if x == 0 and y == 0: - continue - d = spawn_drone(maze_drone, (x, y)) - if d != None: - drones.append(d) move_to(0, 0) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) - dirs = [North, East, South, West] - d_idx = 0 - steps = 0 - for step in range(2500): - if num_items(Items.Weird_Substance) < sub * 5: - break - if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: - if can_harvest(): - harvest() - plant(Entities.Bush) - use_item(Items.Weird_Substance, sub) - steps = 0 - if get_entity_type() == Entities.Treasure: - use_item(Items.Weird_Substance, sub) - steps = 0 + while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= sub * 50: + if can_harvest(): + harvest() + plant(Entities.Bush) + use_item(Items.Weird_Substance, sub) + drones = [] + for x in range(w): + for y in range(w): + if x == 0 and y == 0: + continue + d = spawn_drone(maze_drone, (x, y)) + if d != None: + drones.append(d) + while get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: if get_entity_type() == Entities.Treasure: - harvest() - elif get_entity_type() == Entities.Hedge: - steps += 1 - if steps > 40: - harvest() - steps = 0 - else: - left_d = (d_idx - 1) % 4 - if move(dirs[left_d]): - d_idx = left_d - elif move(dirs[d_idx]): - pass + if num_items(Items.Weird_Substance) >= sub * 5: + use_item(Items.Weird_Substance, sub) + if get_entity_type() == Entities.Treasure: + harvest() else: - right_d = (d_idx + 1) % 4 - if move(dirs[right_d]): - d_idx = right_d - else: - back_d = (d_idx + 2) % 4 - move(dirs[back_d]) - d_idx = back_d - if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: - harvest() - for d in drones: - wait_for(d) + harvest() + for d in drones: + wait_for(d) set_world_size(0) for d in hdrones: wait_for(d) - elif num_items(Items.Bone) < 30000000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus]: - farm_dinosaur_full() - elif num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= 1000000: - farm_mazes_batch() - elif num_items(Items.Bone) < 105000000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus]: - farm_dinosaur_full() + elif num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= 500000: + farm_mazes_batch(105000000) elif num_items(Items.Cactus) < 1100000000 and num_items(Items.Pumpkin) > n * 2 * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] wait_for(d) harvest() - elif num_items(Items.Pumpkin) < 200000000 and num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot]: + elif num_items(Items.Pumpkin) < 300000000 and num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot]: drones = [] for x in range(w): wait_for(d) harvest() + elif num_items(Items.Bone) < 105000000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus] and num_items(Items.Hay) > 1100000000 and num_items(Items.Wood) > 10500000000 and num_items(Items.Carrot) > 1100000000: + farm_dinosaur_full() else: drones = []
- Write result the agent saw
Saved main (388 lines). Game time: 4h 4m 54s elapsed, 1h 55m 6s of budget remaining.
- run_program at 4h 04m for 60s (agent saw)
Ran main for 1m of game time; it is still running. Inventory change: fertilizer +48, gold +800, power -1493.19, water +1536, weird_substance -320. Game time: 4h 6m 4s elapsed, 1h 53m 56s of budget remaining. Output: (none)
r314h 06mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur_full(): set_world_size(0) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) def maze_drone(pos): move_to(pos[0], pos[1]) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) while num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= sub * 50: if get_entity_type() == Entities.Treasure: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() else: get_pos_x() def farm_mazes_batch(target_gold): set_world_size(5) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): for y in range(w): if x == 0 and y == 0: continue d = spawn_drone(maze_drone, (x, y)) if d != None: drones.append(d) move_to(0, 0) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= sub * 50: if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: if can_harvest(): harvest() plant(Entities.Bush) use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() else: get_pos_x() if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() for d in drones: wait_for(d) set_world_size(0) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 1: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 1: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 1: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 1: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def sunflower_col(x): w = get_world_size() move_to(x, 0) res = [] for y in range(w): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: res.append((p, x, y)) if y < w - 1: move(North) return res def harvest_sunflower_tile(pos): move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_col(x): w = get_world_size() comp = {} for pass_num in range(6): move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < num_items(Items.Carrot): plant_type(Entities.Grass) elif num_items(Items.Hay) > 5000000 and num_items(Items.Wood) > 5000000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Fertilizer) > 10: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if cpos[0] == x: comp[cpos] = ct if y < w - 1: move(North) while True: set_world_size(0) w = get_world_size() n = w * w change_hat(Hats.Green_Hat) if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 4000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for x in range(w): d = spawn_drone(sunflower_col, x) if d != None: drones.append(d) else: res = sunflower_col(x) for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for d in drones: res = wait_for(d) if res != None: for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: hdrones = [] for pos in petals[p]: d = spawn_drone(harvest_sunflower_tile, pos) if d != None: hdrones.append(d) else: harvest_sunflower_tile(pos) for d in hdrones: wait_for(d) elif num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= 500000: farm_mazes_batch(105000000) elif num_items(Items.Cactus) < 1100000000 and num_items(Items.Pumpkin) > n * 2 * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Pumpkin) < 300000000 and num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot]: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() elif num_items(Items.Bone) < 105000000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus] and num_items(Items.Hay) > 1100000000 and num_items(Items.Wood) > 10500000000 and num_items(Items.Carrot) > 1100000000: farm_dinosaur_full() else: drones = [] for x in range(w - 1): d = spawn_drone(poly_col, x) if d != None: drones.append(d) poly_col(w - 1) for d in drones: wait_for(d)Changes from the previous revision
move_to(pos[0], pos[1]) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) - while get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: + while num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= sub * 50: if get_entity_type() == Entities.Treasure: - if num_items(Items.Weird_Substance) >= sub * 5: - use_item(Items.Weird_Substance, sub) - if get_entity_type() == Entities.Treasure: - harvest() - else: + use_item(Items.Weird_Substance, sub) + if get_entity_type() == Entities.Treasure: harvest() + else: + get_pos_x() def farm_mazes_batch(target_gold): for d in drones: wait_for(d) + drones = [] + for x in range(w): + for y in range(w): + if x == 0 and y == 0: + continue + d = spawn_drone(maze_drone, (x, y)) + if d != None: + drones.append(d) move_to(0, 0) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= sub * 50: - if can_harvest(): - harvest() - plant(Entities.Bush) - use_item(Items.Weird_Substance, sub) - drones = [] - for x in range(w): - for y in range(w): - if x == 0 and y == 0: - continue - d = spawn_drone(maze_drone, (x, y)) - if d != None: - drones.append(d) - while get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: + if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: + if can_harvest(): + harvest() + plant(Entities.Bush) + use_item(Items.Weird_Substance, sub) + if get_entity_type() == Entities.Treasure: + use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: - if num_items(Items.Weird_Substance) >= sub * 5: - use_item(Items.Weird_Substance, sub) - if get_entity_type() == Entities.Treasure: - harvest() - else: - harvest() - for d in drones: - wait_for(d) + harvest() + else: + get_pos_x() + if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: + harvest() + for d in drones: + wait_for(d) set_world_size(0)
- Write result the agent saw
Saved main (388 lines). Game time: 4h 6m 34s elapsed, 1h 53m 26s of budget remaining.
- run_program at 4h 06m for 30s (agent saw)
Ran main for 30s of game time; it is still running. Inventory change: fertilizer +24, gold +670400, hay +512, power -735.55, water +768, weird_substance -134240. Game time: 4h 7m 14s elapsed, 1h 52m 46s of budget remaining. Output: (none)
r324h 24mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur_full(): set_world_size(0) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) def maze_drone(pos): move_to(pos[0], pos[1]) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) while num_items(Items.Power) > 1000 and num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= sub * 50: if get_entity_type() == Entities.Treasure: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() else: get_pos_x() def farm_mazes_batch(target_gold): set_world_size(5) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): for y in range(w): if x == 0 and y == 0: continue d = spawn_drone(maze_drone, (x, y)) if d != None: drones.append(d) move_to(0, 0) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) while num_items(Items.Power) > 1000 and num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= sub * 50: if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: if can_harvest(): harvest() plant(Entities.Bush) use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() else: get_pos_x() if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() for d in drones: wait_for(d) set_world_size(0) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 1: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 1: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 1: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 1: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def sunflower_col(x): w = get_world_size() move_to(x, 0) res = [] for y in range(w): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: res.append((p, x, y)) if y < w - 1: move(North) return res def harvest_sunflower_tile(pos): move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_col(x): w = get_world_size() comp = {} for pass_num in range(6): if num_items(Items.Power) < 1000: break move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < num_items(Items.Carrot): plant_type(Entities.Grass) elif num_items(Items.Hay) > 5000000 and num_items(Items.Wood) > 5000000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Fertilizer) > 10: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if cpos[0] == x: comp[cpos] = ct if y < w - 1: move(North) while True: set_world_size(0) w = get_world_size() n = w * w change_hat(Hats.Green_Hat) if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 10000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = [] for x in range(w): d = spawn_drone(sunflower_col, x) if d != None: drones.append(d) else: res = sunflower_col(x) for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for d in drones: res = wait_for(d) if res != None: for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: hdrones = [] for pos in petals[p]: d = spawn_drone(harvest_sunflower_tile, pos) if d != None: hdrones.append(d) else: harvest_sunflower_tile(pos) for d in hdrones: wait_for(d) elif num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= 500000: farm_mazes_batch(105000000) elif num_items(Items.Cactus) < 1100000000 and num_items(Items.Pumpkin) > n * 2 * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) else: plant_cactus_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): d = spawn_drone(sort_col, x) if d != None: drones.append(d) else: sort_col(x) for d in drones: wait_for(d) drones = [] for y in range(w): d = spawn_drone(sort_row, y) if d != None: drones.append(d) else: sort_row(y) for d in drones: wait_for(d) harvest() elif num_items(Items.Pumpkin) < 300000000 and num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot]: drones = [] for x in range(w): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) else: pumpkin_col(x) for d in drones: wait_for(d) harvest() elif num_items(Items.Bone) < 105000000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus] and num_items(Items.Hay) > 1100000000 and num_items(Items.Wood) > 10500000000 and num_items(Items.Carrot) > 1100000000: farm_dinosaur_full() else: drones = [] for x in range(w - 1): d = spawn_drone(poly_col, x) if d != None: drones.append(d) poly_col(w - 1) for d in drones: wait_for(d)Changes from the previous revision
move_to(pos[0], pos[1]) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) - while num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= sub * 50: + while num_items(Items.Power) > 1000 and num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= sub * 50: if get_entity_type() == Entities.Treasure: use_item(Items.Weird_Substance, sub) move_to(0, 0) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) - while num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= sub * 50: + while num_items(Items.Power) > 1000 and num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= sub * 50: if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: if can_harvest(): comp = {} for pass_num in range(6): + if num_items(Items.Power) < 1000: + break move_to(x, 0) for y in range(w): if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() - if num_items(Items.Power) < 4000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: + if num_items(Items.Power) < 10000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: petals = {} drones = []
- Write result the agent saw
Saved main (390 lines). Game time: 4h 24m 30s elapsed, 1h 35m 30s of budget remaining.
- run_program at 4h 24m for 300s (agent saw)
Ran main for 5m of game time; it is still running. Inventory change: carrot -2048, fertilizer +234, gold +4681600, hay +531456, power +9761.00, water +5618, weird_substance -936456. Game time: 4h 29m 40s elapsed, 1h 30m 20s of budget remaining. Output: (none)
r334h 29mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur_full(): set_world_size(0) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) def maze_drone(pos): move_to(pos[0], pos[1]) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) while num_items(Items.Power) > 1000 and num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= sub * 50: if get_entity_type() == Entities.Treasure: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() def farm_mazes_batch(target_gold): set_world_size(5) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): for y in range(w): if x == 0 and y == 0: continue d = spawn_drone(maze_drone, (x, y)) if d != None: drones.append(d) move_to(0, 0) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) while num_items(Items.Power) > 1000 and num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= sub * 50: if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: if can_harvest(): harvest() plant(Entities.Bush) use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() for d in drones: wait_for(d) set_world_size(0) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 1: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 1: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 1: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 1: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def sunflower_col(x): w = get_world_size() move_to(x, 0) res = [] for y in range(w): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: res.append((p, x, y)) if y < w - 1: move(North) return res def harvest_sunflower_tile(pos): move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() def harvest_sunflower_list(positions): for pos in positions: harvest_sunflower_tile(pos) def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_col(x): w = get_world_size() comp = {} for pass_num in range(6): if num_items(Items.Power) < 1000: break move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < num_items(Items.Carrot): plant_type(Entities.Grass) elif num_items(Items.Hay) > 5000000 and num_items(Items.Wood) > 5000000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Fertilizer) > 10: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if cpos[0] == x: comp[cpos] = ct if y < w - 1: move(North) while True: set_world_size(0) w = get_world_size() n = w * w change_hat(Hats.Green_Hat) if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 30000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: while num_items(Items.Power) < 40000: petals = {} drones = [] for x in range(w - 1): d = spawn_drone(sunflower_col, x) if d != None: drones.append(d) res_main = sunflower_col(w - 1) for item in res_main: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for d in drones: res = wait_for(d) if res != None: for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: plist = petals[p] total_p = len(plist) md = max_drones() hdrones = [] chunk = (total_p + md - 1) // md if chunk < 1: chunk = 1 idx = 0 for d_i in range(md - 1): if idx < total_p: sub_list = [] for k in range(chunk): if idx < total_p: sub_list.append(plist[idx]) idx += 1 d = spawn_drone(harvest_sunflower_list, sub_list) if d != None: hdrones.append(d) else: harvest_sunflower_list(sub_list) if idx < total_p: sub_list = [] while idx < total_p: sub_list.append(plist[idx]) idx += 1 harvest_sunflower_list(sub_list) for d in hdrones: wait_for(d) elif num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= 500000: farm_mazes_batch(105000000) elif num_items(Items.Cactus) < 1100000000 and num_items(Items.Pumpkin) > n * 2 * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w - 1): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) plant_cactus_col(w - 1) for d in drones: wait_for(d) drones = [] for x in range(w - 1): d = spawn_drone(sort_col, x) if d != None: drones.append(d) sort_col(w - 1) for d in drones: wait_for(d) drones = [] for y in range(w - 1): d = spawn_drone(sort_row, y) if d != None: drones.append(d) sort_row(w - 1) for d in drones: wait_for(d) harvest() elif num_items(Items.Pumpkin) < 300000000 and num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot]: drones = [] for x in range(w - 1): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) pumpkin_col(w - 1) for d in drones: wait_for(d) harvest() elif num_items(Items.Bone) < 105000000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus] and num_items(Items.Hay) > 1100000000 and num_items(Items.Wood) > 10500000000 and num_items(Items.Carrot) > 1100000000: farm_dinosaur_full() else: drones = [] for x in range(w - 1): d = spawn_drone(poly_col, x) if d != None: drones.append(d) poly_col(w - 1) for d in drones: wait_for(d)Changes from the previous revision
if get_entity_type() == Entities.Treasure: harvest() - else: - get_pos_x() def farm_mazes_batch(target_gold): if get_entity_type() == Entities.Treasure: harvest() - else: - get_pos_x() if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() harvest() + def harvest_sunflower_list(positions): + for pos in positions: + harvest_sunflower_tile(pos) + def plant_type(t): if t == Entities.Grass: if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() - if num_items(Items.Power) < 10000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: - petals = {} - drones = [] - for x in range(w): - d = spawn_drone(sunflower_col, x) - if d != None: - drones.append(d) - else: - res = sunflower_col(x) - for item in res: - p, sx, sy = item - if not (p in petals): - petals[p] = [] - petals[p].append((sx, sy)) - for d in drones: - res = wait_for(d) - if res != None: - for item in res: - p, sx, sy = item - if not (p in petals): - petals[p] = [] - petals[p].append((sx, sy)) - for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: - if p in petals: - hdrones = [] - for pos in petals[p]: - d = spawn_drone(harvest_sunflower_tile, pos) - if d != None: - hdrones.append(d) - else: - harvest_sunflower_tile(pos) - for d in hdrones: - wait_for(d) + if num_items(Items.Power) < 30000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: + while num_items(Items.Power) < 40000: + petals = {} + drones = [] + for x in range(w - 1): + d = spawn_drone(sunflower_col, x) + if d != None: + drones.append(d) + res_main = sunflower_col(w - 1) + for item in res_main: + p, sx, sy = item + if not (p in petals): + petals[p] = [] + petals[p].append((sx, sy)) + for d in drones: + res = wait_for(d) + if res != None: + for item in res: + p, sx, sy = item + if not (p in petals): + petals[p] = [] + petals[p].append((sx, sy)) + for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: + if p in petals: + plist = petals[p] + total_p = len(plist) + md = max_drones() + hdrones = [] + chunk = (total_p + md - 1) // md + if chunk < 1: + chunk = 1 + idx = 0 + for d_i in range(md - 1): + if idx < total_p: + sub_list = [] + for k in range(chunk): + if idx < total_p: + sub_list.append(plist[idx]) + idx += 1 + d = spawn_drone(harvest_sunflower_list, sub_list) + if d != None: + hdrones.append(d) + else: + harvest_sunflower_list(sub_list) + if idx < total_p: + sub_list = [] + while idx < total_p: + sub_list.append(plist[idx]) + idx += 1 + harvest_sunflower_list(sub_list) + for d in hdrones: + wait_for(d) elif num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= 500000: farm_mazes_batch(105000000) elif num_items(Items.Cactus) < 1100000000 and num_items(Items.Pumpkin) > n * 2 * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] - for x in range(w): + for x in range(w - 1): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) - else: - plant_cactus_col(x) + plant_cactus_col(w - 1) for d in drones: wait_for(d) drones = [] - for x in range(w): + for x in range(w - 1): d = spawn_drone(sort_col, x) if d != None: drones.append(d) - else: - sort_col(x) + sort_col(w - 1) for d in drones: wait_for(d) drones = [] - for y in range(w): + for y in range(w - 1): d = spawn_drone(sort_row, y) if d != None: drones.append(d) - else: - sort_row(y) + sort_row(w - 1) for d in drones: wait_for(d) elif num_items(Items.Pumpkin) < 300000000 and num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot]: drones = [] - for x in range(w): + for x in range(w - 1): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) - else: - pumpkin_col(x) + pumpkin_col(w - 1) for d in drones: wait_for(d)
- Write result the agent saw
Saved main (405 lines). Game time: 4h 30m elapsed, 1h 30m of budget remaining.
- run_program at 4h 30m for 240s (agent saw)
Ran main for 4m of game time; it is still running. Inventory change: carrot -5120, fertilizer +173, gold +1994400, hay +535552, power +35863.85, water +979, weird_substance -398964. Game time: 4h 34m 10s elapsed, 1h 25m 50s of budget remaining. Output: (none)
r344h 34mRanFinal
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def clear_col(x): w = get_world_size() move_to(x, 0) for y in range(w): clear_tile() if y < w - 1: move(North) def farm_dinosaur_full(): set_world_size(0) w = get_world_size() drones = [] for x in range(w - 1): d = spawn_drone(clear_col, x) if d != None: drones.append(d) clear_col(w - 1) for d in drones: wait_for(d) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) def maze_drone(pos): move_to(pos[0], pos[1]) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) while num_items(Items.Power) > 1000 and num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= sub * 50: if get_entity_type() == Entities.Treasure: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() def farm_mazes_batch(target_gold): set_world_size(5) w = get_world_size() drones = [] for x in range(w): d = spawn_drone(clear_col, x) if d != None: drones.append(d) else: clear_col(x) for d in drones: wait_for(d) drones = [] for x in range(w): for y in range(w): if x == 0 and y == 0: continue d = spawn_drone(maze_drone, (x, y)) if d != None: drones.append(d) move_to(0, 0) sub = 5 * (2 ** (num_unlocked(Unlocks.Mazes) - 1)) while num_items(Items.Power) > 1000 and num_items(Items.Gold) < target_gold and num_items(Items.Weird_Substance) >= sub * 50: if get_entity_type() != Entities.Hedge and get_entity_type() != Entities.Treasure: if can_harvest(): harvest() plant(Entities.Bush) use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: use_item(Items.Weird_Substance, sub) if get_entity_type() == Entities.Treasure: harvest() if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() for d in drones: wait_for(d) set_world_size(0) def sort_col(x): w = get_world_size() move_to(x, 0) for pass_y in range(w): swapped = False if pass_y % 2 == 0: for step in range(w - 1): if measure() > measure(North): swap(North) swapped = True if step < w - 1: move(North) else: for step in range(w - 1): if measure() < measure(South): swap(South) swapped = True if step < w - 1: move(South) if not swapped: break def sort_row(y): w = get_world_size() move_to(0, y) for pass_x in range(w): swapped = False if pass_x % 2 == 0: for step in range(w - 1): if measure() > measure(East): swap(East) swapped = True if step < w - 1: move(East) else: for step in range(w - 1): if measure() < measure(West): swap(West) swapped = True if step < w - 1: move(West) if not swapped: break def plant_cactus_col(x): w = get_world_size() move_to(x, 0) for y in range(w): if get_entity_type() != Entities.Cactus: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Cactus) if y < w - 1: move(North) def pumpkin_col(x): w = get_world_size() move_to(x, 0) bad = [] for y in range(w): if get_entity_type() != Entities.Pumpkin: clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) bad.append(y) if y < w - 1: move(North) while len(bad) > 0: next_bad = [] for y in bad: move_to(x, y) if get_entity_type() != Entities.Pumpkin: if can_harvest(): harvest() if get_ground_type() != Grounds.Soil: till() plant(Entities.Pumpkin) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) elif not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) next_bad.append(y) bad = next_bad def sunflower_col(x): w = get_world_size() move_to(x, 0) res = [] for y in range(w): clear_tile() if get_ground_type() != Grounds.Soil: till() plant(Entities.Sunflower) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) p = measure() if p != None: res.append((p, x, y)) if y < w - 1: move(North) return res def harvest_sunflower_tile(pos): move_to(pos[0], pos[1]) while not can_harvest(): if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) harvest() def harvest_sunflower_list(positions): for pos in positions: harvest_sunflower_tile(pos) def plant_type(t): if t == Entities.Grass: if get_ground_type() == Grounds.Soil: till() elif t == Entities.Bush: plant(Entities.Bush) elif t == Entities.Tree: plant(Entities.Tree) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) elif t == Entities.Carrot: if get_ground_type() != Grounds.Soil: till() plant(Entities.Carrot) if get_water() < 0.75 and num_items(Items.Water) > 0: use_item(Items.Water) def poly_col(x): w = get_world_size() comp = {} for pass_num in range(6): if num_items(Items.Power) < 1000: break move_to(x, 0) for y in range(w): if can_harvest(): harvest() pos = (x, y) if pos in comp: t = comp.pop(pos) plant_type(t) else: if (x + y) % 2 == 0: plant_type(Entities.Tree) elif num_items(Items.Hay) < num_items(Items.Carrot): plant_type(Entities.Grass) elif num_items(Items.Hay) > 5000000 and num_items(Items.Wood) > 5000000: plant_type(Entities.Carrot) else: plant_type(Entities.Grass) if num_items(Items.Fertilizer) > 10: use_item(Items.Fertilizer) c = get_companion() if c != None: ct, cpos = c if cpos[0] == x: comp[cpos] = ct if y < w - 1: move(North) while True: set_world_size(0) w = get_world_size() n = w * w change_hat(Hats.Green_Hat) if get_entity_type() == Entities.Hedge or get_entity_type() == Entities.Treasure: harvest() if num_items(Items.Power) < 30000 and num_items(Items.Carrot) > n * get_cost(Entities.Sunflower)[Items.Carrot]: while num_items(Items.Power) < 40000: petals = {} drones = [] for x in range(w - 1): d = spawn_drone(sunflower_col, x) if d != None: drones.append(d) res_main = sunflower_col(w - 1) for item in res_main: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for d in drones: res = wait_for(d) if res != None: for item in res: p, sx, sy = item if not (p in petals): petals[p] = [] petals[p].append((sx, sy)) for p in [15, 14, 13, 12, 11, 10, 9, 8, 7]: if p in petals: plist = petals[p] total_p = len(plist) md = max_drones() hdrones = [] chunk = (total_p + md - 1) // md if chunk < 1: chunk = 1 idx = 0 for d_i in range(md - 1): if idx < total_p: sub_list = [] for k in range(chunk): if idx < total_p: sub_list.append(plist[idx]) idx += 1 d = spawn_drone(harvest_sunflower_list, sub_list) if d != None: hdrones.append(d) else: harvest_sunflower_list(sub_list) if idx < total_p: sub_list = [] while idx < total_p: sub_list.append(plist[idx]) idx += 1 harvest_sunflower_list(sub_list) for d in hdrones: wait_for(d) elif num_items(Items.Hay) < 1100000000 or num_items(Items.Wood) < 10500000000 or num_items(Items.Carrot) < 1100000000: drones = [] for x in range(w - 1): d = spawn_drone(poly_col, x) if d != None: drones.append(d) poly_col(w - 1) for d in drones: wait_for(d) elif num_items(Items.Pumpkin) < 300000000 and num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot]: drones = [] for x in range(w - 1): d = spawn_drone(pumpkin_col, x) if d != None: drones.append(d) pumpkin_col(w - 1) for d in drones: wait_for(d) harvest() elif num_items(Items.Cactus) < 1100000000 and num_items(Items.Pumpkin) > n * 2 * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] for x in range(w - 1): d = spawn_drone(plant_cactus_col, x) if d != None: drones.append(d) plant_cactus_col(w - 1) for d in drones: wait_for(d) drones = [] for x in range(w - 1): d = spawn_drone(sort_col, x) if d != None: drones.append(d) sort_col(w - 1) for d in drones: wait_for(d) drones = [] for y in range(w - 1): d = spawn_drone(sort_row, y) if d != None: drones.append(d) sort_row(w - 1) for d in drones: wait_for(d) harvest() elif num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= 500000: farm_mazes_batch(105000000) elif num_items(Items.Bone) < 105000000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus]: farm_dinosaur_full() else: drones = [] for x in range(w - 1): d = spawn_drone(poly_col, x) if d != None: drones.append(d) poly_col(w - 1) for d in drones: wait_for(d)Changes from the previous revision
w = get_world_size() drones = [] - for x in range(w): + for x in range(w - 1): d = spawn_drone(clear_col, x) if d != None: drones.append(d) - else: - clear_col(x) + clear_col(w - 1) for d in drones: wait_for(d) for d in hdrones: wait_for(d) - elif num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= 500000: - farm_mazes_batch(105000000) + elif num_items(Items.Hay) < 1100000000 or num_items(Items.Wood) < 10500000000 or num_items(Items.Carrot) < 1100000000: + drones = [] + for x in range(w - 1): + d = spawn_drone(poly_col, x) + if d != None: + drones.append(d) + poly_col(w - 1) + for d in drones: + wait_for(d) + elif num_items(Items.Pumpkin) < 300000000 and num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot]: + drones = [] + for x in range(w - 1): + d = spawn_drone(pumpkin_col, x) + if d != None: + drones.append(d) + pumpkin_col(w - 1) + for d in drones: + wait_for(d) + harvest() elif num_items(Items.Cactus) < 1100000000 and num_items(Items.Pumpkin) > n * 2 * get_cost(Entities.Cactus)[Items.Pumpkin]: drones = [] wait_for(d) harvest() - elif num_items(Items.Pumpkin) < 300000000 and num_items(Items.Carrot) > n * 3 * get_cost(Entities.Pumpkin)[Items.Carrot]: - drones = [] - for x in range(w - 1): - d = spawn_drone(pumpkin_col, x) - if d != None: - drones.append(d) - pumpkin_col(w - 1) - for d in drones: - wait_for(d) - harvest() - elif num_items(Items.Bone) < 105000000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus] and num_items(Items.Hay) > 1100000000 and num_items(Items.Wood) > 10500000000 and num_items(Items.Carrot) > 1100000000: + elif num_items(Items.Gold) < 105000000 and num_items(Items.Weird_Substance) >= 500000: + farm_mazes_batch(105000000) + elif num_items(Items.Bone) < 105000000 and num_items(Items.Cactus) > n * get_cost(Entities.Apple)[Items.Cactus]: farm_dinosaur_full() else:
- Write result the agent saw
Saved main (413 lines). Game time: 4h 34m 30s elapsed, 1h 25m 30s of budget remaining.
- run_program at 4h 34m for 600s (agent saw)
Ran main for 10m of game time; it is still running. Inventory change: carrot +1084275977, fertilizer -7829, hay +1121282816, power -1131.03, pumpkin +6291456, water -7745, weird_substance +394528256, wood +9049621504. Game time: 4h 44m 40s elapsed, 1h 15m 20s of budget remaining. Output: (none)
test_dino.py
r11h 08mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def clear_tile(): while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: if can_harvest(): harvest() elif num_items(Items.Fertilizer) > 5: use_item(Items.Fertilizer) else: break if can_harvest(): harvest() def solve_maze(): dirs = [North, East, South, West] d = 0 while get_entity_type() != Entities.Treasure: if get_entity_type() != Entities.Hedge: break left_d = (d - 1) % 4 if move(dirs[left_d]): d = left_d elif move(dirs[d]): pass else: right_d = (d + 1) % 4 if move(dirs[right_d]): d = right_d else: back_d = (d + 2) % 4 move(dirs[back_d]) d = back_d if get_entity_type() == Entities.Treasure: harvest() def farm_dinosaur(): w = get_world_size() n = w * w move_to(0, 0) for i in range(n): clear_tile() if get_ground_type() != Grounds.Soil: till() move(North) if get_pos_y() == 0: move(East) move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y < w - 1: moved = move(North) else: moved = move(East) else: if y > 1: moved = move(South) else: if x < w - 1: moved = move(East) else: moved = move(South) if not moved: break change_hat(Hats.Green_Hat) farm_dinosaur()- Write result the agent saw
Saved test_dino (94 lines). Game time: 1h 8m 19s elapsed, 4h 51m 41s of budget remaining.
- run_program at 1h 08m for 90s (agent saw)
Ran test_dino for 15s of game time; it finished. Inventory change: bone +4, cactus -6, fertilizer +6, hay +352, power -15.21, water +24. Game time: 1h 8m 44s elapsed, 4h 51m 16s of budget remaining. Output: (none)
r21h 08mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def farm_dinosaur(): w = get_world_size() move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: if x < w - 1: moved = move(East) else: moved = move(South) if not moved: break change_hat(Hats.Green_Hat) farm_dinosaur()Changes from the previous revision
move(South) - def clear_tile(): - while get_entity_type() != None and get_entity_type() != Entities.Grass and get_entity_type() != Entities.Dead_Pumpkin: - if can_harvest(): - harvest() - elif num_items(Items.Fertilizer) > 5: - use_item(Items.Fertilizer) - else: - break - if can_harvest(): - harvest() - - def solve_maze(): - dirs = [North, East, South, West] - d = 0 - while get_entity_type() != Entities.Treasure: - if get_entity_type() != Entities.Hedge: - break - left_d = (d - 1) % 4 - if move(dirs[left_d]): - d = left_d - elif move(dirs[d]): - pass - else: - right_d = (d + 1) % 4 - if move(dirs[right_d]): - d = right_d - else: - back_d = (d + 2) % 4 - move(dirs[back_d]) - d = back_d - if get_entity_type() == Entities.Treasure: - harvest() - def farm_dinosaur(): w = get_world_size() - n = w * w move_to(0, 0) - for i in range(n): - clear_tile() - if get_ground_type() != Grounds.Soil: - till() - move(North) - if get_pos_y() == 0: - move(East) - move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = move(West) elif x % 2 == 1: - if y < w - 1: - moved = move(North) + if y > 1: + moved = move(South) else: moved = move(East) else: - if y > 1: - moved = move(South) + if y < w - 1: + moved = move(North) else: if x < w - 1:
- Write result the agent saw
Saved test_dino (52 lines). Game time: 1h 9m 4s elapsed, 4h 50m 56s of budget remaining.
- run_program at 1h 09m for 600s (agent saw)
Ran test_dino for 9s of game time; it finished. Inventory change: bone +9, cactus -8, fertilizer +3, power -8.69, water +14. Game time: 1h 9m 22s elapsed, 4h 50m 38s of budget remaining. Output: (none)
r31h 09mRan
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def farm_dinosaur(): w = get_world_size() move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) else: moved = move(East) else: if x == w - 1: moved = move(South) elif y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) farm_dinosaur()Changes from the previous revision
moved = move(East) else: - if y < w - 1: + if x == w - 1: + moved = move(South) + elif y < w - 1: moved = move(North) else: - if x < w - 1: - moved = move(East) - else: - moved = move(South) + moved = move(East) if not moved: break
- Write result the agent saw
Saved test_dino (51 lines). Game time: 1h 9m 52s elapsed, 4h 50m 8s of budget remaining.
- run_program at 1h 09m for 600s (agent saw)
Ran test_dino for 9s of game time; it finished. Inventory change: bone +9, cactus -8, fertilizer +4, power -8.67, water +14. Game time: 1h 10m 11s elapsed, 4h 49m 49s of budget remaining. Output: (none)
r41h 10mRanFinal
def move_to(tx, ty): w = get_world_size() cx = get_pos_x() cy = get_pos_y() dx = (tx - cx) % w if dx <= w // 2: for i in range(dx): move(East) else: for i in range(w - dx): move(West) dy = (ty - cy) % w if dy <= w // 2: for i in range(dy): move(North) else: for i in range(w - dy): move(South) def farm_dinosaur(): w = get_world_size() move_to(0, 0) change_hat(Hats.Dinosaur_Hat) while True: moved = False x = get_pos_x() y = get_pos_y() if x == 0: if y < w - 1: moved = move(North) else: moved = move(East) elif y == 0: moved = move(West) elif x % 2 == 1: if y > 1: moved = move(South) elif x == w - 1: moved = move(South) else: moved = move(East) else: if y < w - 1: moved = move(North) else: moved = move(East) if not moved: break change_hat(Hats.Green_Hat) farm_dinosaur()Changes from the previous revision
if y > 1: moved = move(South) + elif x == w - 1: + moved = move(South) else: moved = move(East) else: - if x == w - 1: - moved = move(South) - elif y < w - 1: + if y < w - 1: moved = move(North) else:
- Write result the agent saw
Saved test_dino (51 lines). Game time: 1h 10m 41s elapsed, 4h 49m 19s of budget remaining.
- run_program at 1h 10m for 600s (agent saw)
Ran test_dino for 1m 57s of game time; it finished. Inventory change: bone +20449, cactus -286, fertilizer +47, power -118.08, water +187. Game time: 1h 12m 48s elapsed, 4h 47m 12s of budget remaining. Output: (none)
- run_program at 1h 13m for 600s (agent saw)
Ran test_dino for 1m 48s of game time; it finished. Inventory change: bone +20449, cactus -286, fertilizer +43, power -109.25, water +173. Game time: 1h 15m 16s elapsed, 4h 44m 44s of budget remaining. Output: (none)
- run_program at 1h 15m for 600s (agent saw)
Ran test_dino for 1m 43s of game time; it finished. Inventory change: bone +20449, cactus -286, fertilizer +41, power -103.95, water +164. Game time: 1h 17m 8s elapsed, 4h 42m 52s of budget remaining. Output: (none)
log
Step by step
- 0s
observeresult
Game time: 10s elapsed, 5h 59m 50s of budget remaining. Program: none running. Inventory: empty. Farm 1x1. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Gr=grass. y= 0 _Gr3* Recent output: (none)
- 10s
researchresult
auto_unlock (Auto Unlock) level 0/1; cost pumpkin 5000; requires costs ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 0/6; cost pumpkin 5000; requires pumpkins ## Cactus Cactus! plant(Entities.Cactus) carrots (Carrots) level 0/10; cost wood 50; requires plant ## Carrots Till the soil and plant carrots. till() plant(Entities.Carrot) costs (Costs) le…
- 20s
docs_listresult
docs/home.md General Info unlocks/auto_unlock Auto Unlock unlocks/cactus Cactus unlocks/carrots Carrots unlocks/costs Costs unlocks/debug Debug unlocks/debug_2 Debug_2 unlocks/dictionaries Dictionaries unlocks/dinosaurs Dinosaurs unlocks/expand Expand unlocks/fertilizer Fertilizer unlocks/functions Functions unlocks/grass Grass unlocks/hats Hats unlocks/import Import unlocks/leaderb…
- 30s
write_programname="main" · evidenceresult
Saved main (10 lines). Game time: 40s elapsed, 5h 59m 20s of budget remaining.
- 40s
run_programname="main" seconds=20result
Ran main for 5s of game time; it finished. Inventory change: hay +10. Game time: 55s elapsed, 5h 59m 5s of budget remaining. Output: (none)
- 55s
buy_upgradeupgrades=["loops"] · evidenceresult
Bought loops, now level 1. Paid hay 5. Its tutorial is docs page docs/scripting/while.md. Game time: 1m 5s elapsed, 5h 58m 55s of budget remaining.
- 1m 05s
write_programname="main" · evidenceresult
Saved main (2 lines). Game time: 1m 15s elapsed, 5h 58m 45s of budget remaining.
- 1m 15s
run_programname="main" seconds=100result
Ran main for 1m 40s of game time; it is still running. Inventory change: hay +200. Game time: 3m 5s elapsed, 5h 56m 55s of budget remaining. Output: (none)
- 3m 05s
buy_upgradeupgrades=["speed","expand","plant"] · evidenceresult
Bought speed, now level 1. Paid hay 20. Its tutorial is docs page docs/unlocks/speed.md. Bought expand, now level 1. Paid hay 30. Its tutorial is docs page docs/unlocks/expand_1.md. Bought plant, now level 1. Paid hay 50. Its tutorial is docs page docs/unlocks/plant.md. Game time: 3m 15s elapsed, 5h 56m 45s of budget remaining.
- 3m 15s
researchresult
auto_unlock (Auto Unlock) level 0/1; cost pumpkin 5000; requires costs ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 0/6; cost pumpkin 5000; requires pumpkins ## Cactus Cactus! plant(Entities.Cactus) carrots (Carrots) level 0/10; cost wood 50; available, not affordable ## Carrots Till the soil and plant carrots. till() plant(Entities.Carrot) costs…
- 3m 25s
observeresult
Game time: 3m 35s elapsed, 5h 56m 25s of budget remaining. Program: main (running). Inventory: hay 125. Farm 1x3. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Gr=grass. y= 2 _Gr3 y= 1 _Gr3 y= 0 _Gr2* Recent output: (none)
- 3m 35s
docs_readpath="docs/unlocks/plant.md" show_hints=trueresult
# Plant Grass is nice because it grows automatically. All other plants have to be planted with the `plant()` function. The only plant you can plant right now is a bush. You can pass the type of plant you want to plant to the function like this: `plant(Entities.Bush)` This will plant a bush under the drone. Call `clear()` to reset the farm to all grass and reset the drone position. It seems tha…
- 3m 45s
docs_readpath="docs/unlocks/expand_1.md" show_hints=trueresult
# Expand 1 Your farm has grown! This space is not much use if you can't move the drone, so there is a new function `move()` that moves the drone. `move()` requires that you specify the direction in which you want the drone to move. There are four new constants for this: `North, East, South, West` For example, `move(North)` will move the drone one square to the north. If you move over the edge of…
- 3m 55s
write_programname="main" · evidenceresult
Stop the program before editing it.
- 4m 05s
run_programname="main" seconds=100result
Ran main for 1m 40s of game time; it is still running. Inventory change: no change. Game time: 5m 55s elapsed, 5h 54m 5s of budget remaining. Output: (none)
- 5m 55s
stop_programresult
Program stopped. Game time: 6m 5s elapsed, 5h 53m 55s of budget remaining.
- 6m 05s
write_programname="main" · evidenceresult
Saved main (12 lines). Game time: 6m 15s elapsed, 5h 53m 45s of budget remaining.
- 6m 15s
run_programname="main" seconds=100result
Ran main for 1m 40s of game time; it is still running. Inventory change: hay +129, wood +49. Game time: 8m 5s elapsed, 5h 51m 55s of budget remaining. Output: (none)
- 8m 05s
waitseconds=300 until_resources={"hay":300,"wood":100}result
Waited 23s (hay reached 304). Program: main running. Inventory change: hay +36, wood +15. Game time: 8m 38s elapsed, 5h 51m 22s of budget remaining.
- 8m 38s
buy_upgradeupgrades=["speed","expand","carrots","operators","senses"] · evidenceresult
Bought speed, now level 2. Paid wood 20. Its tutorial is docs page docs/unlocks/speed.md. Bought expand, now level 2. Paid wood 20. Its tutorial is docs page docs/unlocks/expand_1.md. Could not buy carrots: Not enough resources. Bought operators, now level 1. Paid hay 150, wood 10. Its tutorial is docs page docs/scripting/operators.md. Bought senses, now level 1. Paid hay 100. Its tutorial is docs…
- 8m 48s
researchresult
auto_unlock (Auto Unlock) level 0/1; cost pumpkin 5000; requires costs ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 0/6; cost pumpkin 5000; requires pumpkins ## Cactus Cactus! plant(Entities.Cactus) carrots (Carrots) level 0/10; cost wood 50; available, not affordable ## Carrots Till the soil and plant carrots. till() plant(Entities.Carrot) costs…
- 8m 58s
docs_readpath="docs/unlocks/senses.md" show_hints=trueresult
# Senses The drone can see now! The functions `get_pos_x()` and `get_pos_y()` return the current x and y position of the drone. At the start position they are both `0`. The x position increases by `1` every tile towards `East` and the y position increases by `1` every tile towards `North`. `num_items(item)` returns how many of an item you have. For example `num_items(Items.Hay)` returns how muc…
- 9m 08s
docs_readpath="docs/scripting/operators.md" show_hints=trueresult
# Operators arithmetic operators: `+, -, *, /, //, %, **` comparison operators: `==, !=, <=, >=, <, >` boolean operators: `not, and, or` Note: All numbers in the game are floating point numbers. So all arithmetic operators are floating point operators. `//` is defined to just floor the number after the division. For assignment operators you need to unlock the "Variables" unlock. ## Introduction…
- 9m 18s
stop_programresult
Program stopped. Game time: 9m 28s elapsed, 5h 50m 32s of budget remaining.
- 9m 28s
write_programname="main" · evidenceresult
Saved main (8 lines). Game time: 9m 38s elapsed, 5h 50m 22s of budget remaining.
- 9m 38s
run_programname="main" seconds=60result
Ran main for 1m of game time; it is still running. Inventory change: hay +81, wood +92. Game time: 10m 48s elapsed, 5h 49m 12s of budget remaining. Output: (none)
- 10m 48s
buy_upgradeupgrades=["carrots"] · evidenceresult
Bought carrots, now level 1. Paid wood 50. Its tutorial is docs page docs/unlocks/carrots.md. Game time: 10m 58s elapsed, 5h 49m 2s of budget remaining.
- 10m 58s
docs_readpath="unlocks/carrots" show_hints=trueresult
## Carrots Increases the yield and cost of carrots. 100% => 200% ### Unlock Cost [Current cost: wood=250] [Tutorial](docs/unlocks/carrots.md) Game time: 11m 8s elapsed, 5h 48m 52s of budget remaining.
- 11m 08s
observeresult
Game time: 11m 18s elapsed, 5h 48m 42s of budget remaining. Program: main (running). Inventory: hay 243, wood 153. Farm 3x3. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Bu=bush, Gr=grass. y= 2 _Bu2 _Bu1 _Gr3 y= 1 _Bu3 _Bu1 _Gr3* y= 0 _Bu3 _Bu2 _Gr2 Recent output:…
- 11m 18s
docs_readpath="docs/unlocks/carrots.md" show_hints=trueresult
# Carrots Before you can plant carrots with `plant(Entities.Carrot)`, you have to till the soil. This will change the ground to `Grounds.Soil`. To till the soil, simply call `till()`. Calling `till()` again will change it back to `Grounds.Grassland`. Planting carrots costs wood and hay. These items will be automatically removed when calling `plant(Entities.Carrot)`. You can see the cost of any p…
- 11m 28s
stop_programresult
Program stopped. Game time: 11m 38s elapsed, 5h 48m 22s of budget remaining.
- 11m 38s
write_programname="main" · evidenceresult
Saved main (12 lines). Game time: 11m 48s elapsed, 5h 48m 12s of budget remaining.
- 11m 48s
run_programname="main" seconds=100result
Ran main for 1m 40s of game time; it is still running. Inventory change: carrot +48, hay +71, wood +90. Game time: 13m 38s elapsed, 5h 46m 22s of budget remaining. Output: (none)
- 13m 38s
waitseconds=300 until_resources={"carrot":100}result
Waited 1m 5s (carrot reached 100). Program: main running. Inventory change: carrot +48, hay +73, wood +34. Game time: 14m 53s elapsed, 5h 45m 7s of budget remaining.
- 14m 53s
buy_upgradeupgrades=["expand","speed","grass","watering","variables"] · evidenceresult
Bought expand, now level 3. Paid wood 30, carrot 20. Its tutorial is docs page docs/unlocks/expand_1.md. Bought speed, now level 3. Paid wood 50, carrot 50. Its tutorial is docs page docs/unlocks/speed.md. Bought grass, now level 2. Paid hay 300. Bought watering, now level 1. Paid wood 50. Its tutorial is docs page docs/unlocks/watering.md. Could not buy variables: Not enough resources. Game time:…
- 15m 03s
researchresult
auto_unlock (Auto Unlock) level 0/1; cost pumpkin 5000; requires costs ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 0/6; cost pumpkin 5000; requires pumpkins ## Cactus Cactus! plant(Entities.Cactus) carrots (Carrots) level 1/10; cost wood 250; available, not affordable; tutorial docs/unlocks/carrots.md ## Carrots Increases the yield and cost of c…
- 15m 13s
docs_readpath="docs/unlocks/watering.md" show_hints=trueresult
# Watering Plants grow faster when they are watered. The ground has a water level ranging from `0` to `1`. The function `get_water()` returns the water level of the ground it is over. The growth speed of a plant scales linearly from 1x speed at water level 0 to 5x speed at water level 1. The ground dries up over time: On average, it loses 1% of its current water per second, but there is some ran…
- 15m 23s
stop_programresult
Program stopped. Game time: 15m 33s elapsed, 5h 44m 27s of budget remaining.
- 15m 33s
write_programname="main" · evidenceresult
Saved main (14 lines). Game time: 15m 43s elapsed, 5h 44m 17s of budget remaining.
- 15m 43s
run_programname="main" seconds=60result
Ran main for 1m of game time; it is still running. Inventory change: carrot +108, hay +81, water -4, wood +9. Game time: 16m 53s elapsed, 5h 43m 7s of budget remaining. Output: Warning: Tried to use Items.Water but didn't have enough of it. In: use_item(Items.Water) ^^ -------------------------------------------------------------------- - 16m 53s
buy_upgradeupgrades=["trees","variables","functions"] · evidenceresult
Bought trees, now level 1. Paid wood 50, carrot 70. Its tutorial is docs page docs/unlocks/trees.md. Bought variables, now level 1. Paid carrot 35. Its tutorial is docs page docs/scripting/variables.md. Bought functions, now level 1. Paid carrot 40. Its tutorial is docs page docs/scripting/functions.md. Game time: 17m 3s elapsed, 5h 42m 57s of budget remaining.
- 17m 03s
docs_readpath="unlocks/trees" show_hints=trueresult
## Trees Increases the yield of bushes and trees. 100% => 200% ### Unlock Cost [Current cost: hay=300] [Tutorial](docs/unlocks/trees.md) Game time: 17m 13s elapsed, 5h 42m 47s of budget remaining.
- 17m 13s
observeresult
Game time: 17m 23s elapsed, 5h 42m 37s of budget remaining. Program: main (running). Inventory: hay 319, wood 144, carrot 57. Farm 4x4. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Ca=carrot, Bu=bush, Gr=grass. y= 3 #--* #Ca3 _Bu3 _Gr3 y= 2 #Ca1 #Ca3 _Bu2 _Gr3 y= 1…
- 17m 23s
docs_readpath="docs/unlocks/trees.md" show_hints=trueresult
# Trees [Trees](objects/tree) are a better way to get wood than bushes. They give 5 wood each. Like bushes, they can be planted on grass or soil. Trees like to have some space and planting them right next to each other will slow down their growth. The growing time is doubled for each tree that is on a tile directly to the north, east, west or south of it. So if you plant trees on every tile, they…
- 17m 33s
buy_upgradeupgrades=["trees","expand"] · evidenceresult
Bought trees, now level 2. Paid hay 300. Its tutorial is docs page docs/unlocks/trees.md. Bought expand, now level 4. Paid wood 100, carrot 50. Its tutorial is docs page docs/unlocks/expand_1.md. Game time: 17m 43s elapsed, 5h 42m 17s of budget remaining.
- 17m 43s
stop_programresult
Program stopped. Game time: 17m 53s elapsed, 5h 42m 7s of budget remaining.
- 17m 53s
write_programname="main" · evidenceresult
Saved main (22 lines). Game time: 18m 3s elapsed, 5h 41m 57s of budget remaining.
- 18m 03s
run_programname="main" seconds=120result
Ran main for 2m of game time; it is still running. Inventory change: carrot +177, hay +171, water -2, wood +2005. Game time: 20m 13s elapsed, 5h 39m 47s of budget remaining. Output: (none)
- 20m 13s
researchresult
auto_unlock (Auto Unlock) level 0/1; cost pumpkin 5000; requires costs ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 0/6; cost pumpkin 5000; requires pumpkins ## Cactus Cactus! plant(Entities.Cactus) carrots (Carrots) level 1/10; cost wood 250; can buy now; tutorial docs/unlocks/carrots.md ## Carrots Increases the yield and cost of carrots. 100% =…
- 20m 23s
buy_upgradeupgrades=["carrots","grass","watering","watering","fertilizer","pumpkins"] · evidenceresult
Bought carrots, now level 2. Paid wood 250. Its tutorial is docs page docs/unlocks/carrots.md. Bought grass, now level 3. Paid wood 500. Bought watering, now level 2. Paid wood 200. Its tutorial is docs page docs/unlocks/watering.md. Bought watering, now level 3. Paid wood 800. Its tutorial is docs page docs/unlocks/watering.md. Bought fertilizer, now level 1. Paid wood 500. Its tutorial is docs p…
- 20m 33s
docs_readpath="unlocks/pumpkins" show_hints=trueresult
## Pumpkins Pumpkins! plant(Entities.Pumpkin) ### Unlock Cost [Current cost: wood=500, carrot=200] Game time: 20m 43s elapsed, 5h 39m 17s of budget remaining.
- 20m 43s
docs_readpath="unlocks/fertilizer" show_hints=trueresult
## Fertilizer Receive more fertilizer. 0.1/s => 0.2/s ### Unlock Cost [Current cost: wood=1500] [Tutorial](docs/unlocks/fertilizer.md) Game time: 20m 53s elapsed, 5h 39m 7s of budget remaining.
- 20m 53s
researchresult
auto_unlock (Auto Unlock) level 0/1; cost pumpkin 5000; requires costs ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 0/6; cost pumpkin 5000; requires pumpkins ## Cactus Cactus! plant(Entities.Cactus) carrots (Carrots) level 2/10; cost wood 1250; available, not affordable; tutorial docs/unlocks/carrots.md ## Carrots Increases the yield and cost of …
- 21m 03s
docs_readpath="docs/unlocks/fertilizer.md" show_hints=trueresult
# Fertilizer At some point, waiting for the plants to grow is just not efficient enough anymore. Similar to water, you will automatically receive 1 fertilizer every 10 seconds, doubling with each upgrade. Fertilizer can make plants grow instantly. `use_item(Items.Fertilizer)` reduces the remaining growing time of the plant under the drone by 2 seconds. This has some side effects. Plants grown w…
- 21m 13s
buy_upgradeupgrades=["pumpkins","debug"] · evidenceresult
Bought pumpkins, now level 1. Paid wood 500, carrot 200. Its tutorial is docs page docs/unlocks/pumpkins.md. Bought debug, now level 1. Paid hay 50, wood 50. Its tutorial is docs page docs/scripting/debug.md. Game time: 21m 23s elapsed, 5h 38m 37s of budget remaining.
- 21m 23s
docs_readpath="docs/unlocks/pumpkins.md" show_hints=trueresult
# Pumpkins [Pumpkins](objects/pumpkin) grow like carrots on tilled soil. Planting them costs carrots. When all the pumpkins in a square are fully grown, they will grow together to form a giant pumpkin. Unfortunately, pumpkins have a 20% chance of dying once they are fully grown, so you will need to replant the dead ones if you want them to merge. When a pumpkin dies, it leaves behind a dead pum…
- 21m 33s
docs_readpath="objects/carrot" show_hints=trueresult
## Carrot Carrots! Base growth time between 4.8 and 7.2 seconds. Can grow on soil. ### Plant Cost [Current cost: hay=2, wood=2] For more related information see: [Carrots](docs/unlocks/carrots.md) Game time: 21m 43s elapsed, 5h 38m 17s of budget remaining.
- 21m 43s
docs_readpath="objects/pumpkin" show_hints=trueresult
## Pumpkin Pumpkins grow together when they are next to other fully grown pumpkins. About 1 in 5 pumpkins dies when it grows up. Base growth time between 0.2 and 3.8 seconds. Can grow on soil. ### Plant Cost [Current cost: carrot=1] For more related information see: [Pumpkins](docs/unlocks/pumpkins.md) Game time: 21m 53s elapsed, 5h 38m 7s of budget remaining.
- 21m 53s
observeresult
Game time: 22m 3s elapsed, 5h 37m 57s of budget remaining. Program: main (running). Inventory: hay 374, wood 1361, carrot 313, fertilizer 9. Farm 6x6. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Ca=carrot, Tr=tree, Gr=grass. y= 5 #Ca3 _Tr3 #Ca1 _Tr3 _Gr3 _Tr3 y= 4 …
- 22m 03s
waitseconds=300 until_resources={"carrot":500}result
Waited 1m 1s (carrot reached 507). Program: main running. Inventory change: carrot +176, fertilizer +6, hay +64, water -1, wood +1372. Game time: 23m 14s elapsed, 5h 36m 46s of budget remaining.
- 23m 14s
buy_upgradeupgrades=["speed","carrots","fertilizer"] · evidenceresult
Bought speed, now level 4. Paid carrot 500. Its tutorial is docs page docs/unlocks/speed.md. Bought carrots, now level 3. Paid wood 1250. Its tutorial is docs page docs/unlocks/carrots.md. Bought fertilizer, now level 2. Paid wood 1500. Its tutorial is docs page docs/unlocks/fertilizer.md. Game time: 23m 24s elapsed, 5h 36m 36s of budget remaining.
- 23m 24s
observeresult
Game time: 23m 34s elapsed, 5h 36m 26s of budget remaining. Program: main (running). Inventory: hay 552, wood 629, carrot 99, fertilizer 18. Farm 6x6. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Ca=carrot, Tr=tree, Gr=grass. y= 5 #Ca3 _Tr3 #Ca3 _Tr2 _Gr3 _Tr1 y= 4 …
- 23m 34s
waitseconds=300 until_resources={"carrot":1000,"hay":1200}result
Waited 1m 28s (carrot reached 1003). Program: main running. Inventory change: carrot +812, fertilizer +18, hay -64, wood +2114. Game time: 25m 12s elapsed, 5h 34m 48s of budget remaining.
- 25m 12s
buy_upgradeupgrades=["trees","lists","sunflowers"] · evidenceresult
Could not buy trees: Not enough resources. Bought lists, now level 1. Paid carrot 500. Its tutorial is docs page docs/scripting/lists.md. Bought sunflowers, now level 1. Paid carrot 500. Its tutorial is docs page docs/unlocks/sunflowers.md. Game time: 25m 22s elapsed, 5h 34m 38s of budget remaining.
- 25m 22s
docs_readpath="docs/unlocks/sunflowers.md" show_hints=trueresult
# Sunflowers [Sunflowers](objects/sunflower) collect the power of the sun. You can harvest that power. Planting them works exactly like planting carrots or pumpkins. Harvesting a grown sunflower yields power. If there are at least 10 sunflowers on the farm and you harvest the one with the largest number of petals you get `8` times more power! If you harvest a sunflower while there is another s…
- 25m 32s
observeresult
Game time: 25m 42s elapsed, 5h 34m 18s of budget remaining. Program: main (running). Inventory: hay 516, wood 3799, carrot 231, fertilizer 44. Farm 6x6. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Ca=carrot, Tr=tree, Gr=grass. y= 5 #Ca1 _Tr3 #Ca3 _Tr3 _Gr3 _Tr3 y= 4…
- 25m 42s
buy_upgradeupgrades=["grass"] · evidenceresult
Bought grass, now level 4. Paid wood 2500. Game time: 25m 52s elapsed, 5h 34m 8s of budget remaining.
- 25m 52s
waitseconds=300 until_resources={"hay":1200}result
Waited 1m 42s (hay reached 1204). Program: main running. Inventory change: carrot +912, fertilizer +20, hay +592, wood +3048. Game time: 27m 44s elapsed, 5h 32m 16s of budget remaining.
- 27m 44s
buy_upgradeupgrades=["trees","watering"] · evidenceresult
Could not buy trees: Not enough resources. Bought watering, now level 4. Paid wood 3200. Its tutorial is docs page docs/unlocks/watering.md. Game time: 27m 54s elapsed, 5h 32m 6s of budget remaining.
- 27m 54s
observeresult
Game time: 28m 4s elapsed, 5h 31m 56s of budget remaining. Program: main (running). Inventory: hay 1220, wood 1999, carrot 1471, water 1, fertilizer 72. Farm 6x6. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Ca=carrot, Tr=tree, Gr=grass. y= 5 #Ca3 _Tr3 #Ca1 _Tr3 _Gr3 …
- 28m 04s
buy_upgradeupgrades=["trees","import"] · evidenceresult
Bought trees, now level 3. Paid hay 1200. Its tutorial is docs page docs/unlocks/trees.md. Bought import, now level 1. Paid carrot 80. Its tutorial is docs page docs/scripting/import.md. Game time: 28m 14s elapsed, 5h 31m 46s of budget remaining.
- 28m 14s
stop_programresult
Program stopped. Game time: 28m 24s elapsed, 5h 31m 36s of budget remaining.
- 28m 24s
write_programname="main" · evidenceresult
Saved main (53 lines). Game time: 28m 34s elapsed, 5h 31m 26s of budget remaining.
- 28m 34s
run_programname="main" seconds=120result
Ran main for 2m of game time; it is still running. Inventory change: carrot -130, fertilizer +24, hay +112, pumpkin +864, water -16, wood +580. Game time: 30m 44s elapsed, 5h 29m 16s of budget remaining. Output: (none)
- 30m 44s
waitseconds=60 until_resources={"pumpkin":1000}result
Waited 0s (pumpkin reached 1080). Program: main running. Inventory change: no change. Game time: 30m 54s elapsed, 5h 29m 6s of budget remaining.
- 30m 54s
buy_upgradeupgrades=["expand"] · evidenceresult
Bought expand, now level 5. Paid pumpkin 1000. Its tutorial is docs page docs/unlocks/expand_1.md. Game time: 31m 4s elapsed, 5h 28m 56s of budget remaining.
- 31m 04s
researchresult
auto_unlock (Auto Unlock) level 0/1; cost pumpkin 5000; requires costs ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 0/6; cost pumpkin 5000; available, not affordable ## Cactus Cactus! plant(Entities.Cactus) carrots (Carrots) level 3/10; cost wood 6250; available, not affordable; tutorial docs/unlocks/carrots.md ## Carrots Increases the yield and …
- 31m 14s
observeresult
Game time: 31m 24s elapsed, 5h 28m 36s of budget remaining. Program: main (running). Inventory: hay 316, wood 3327, carrot 1389, pumpkin 80, fertilizer 112. Farm 8x8. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Gr=grass. y= 7 _Gr3 _Gr3 _Gr3 _Gr3 _Gr3 _Gr3 _Gr3 _Gr…
- 31m 24s
buy_upgradeupgrades=["speed"] · evidenceresult
Bought speed, now level 5. Paid carrot 1000. Its tutorial is docs page docs/unlocks/speed.md. Game time: 31m 34s elapsed, 5h 28m 26s of budget remaining.
- 31m 34s
stop_programresult
Program stopped. Game time: 31m 44s elapsed, 5h 28m 16s of budget remaining.
- 31m 44s
write_programname="main" · evidenceresult
Saved main (57 lines). Game time: 31m 54s elapsed, 5h 28m 6s of budget remaining.
- 31m 54s
run_programname="main" seconds=120result
Ran main for 2m of game time; it is still running. Inventory change: carrot +64, fertilizer +24, hay +928, pumpkin +768, water -15, wood +2208. Game time: 34m 4s elapsed, 5h 25m 56s of budget remaining. Output: (none)
- 34m 04s
observeresult
Game time: 34m 14s elapsed, 5h 25m 46s of budget remaining. Program: main (running). Inventory: hay 1200, wood 5491, carrot 453, pumpkin 1232, fertilizer 146. Farm 8x8. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Ca=carrot, Tr=tree, Gr=grass. y= 7 #Ca1 #Tr1 #-- #-- …
- 34m 14s
waitseconds=300 until_resources={"carrot":1000}result
Waited 5m (time up). Program: main running. Inventory change: carrot +197, fertilizer +60, hay +380, pumpkin +3072, water -1, wood +5548. Game time: 39m 24s elapsed, 5h 20m 36s of budget remaining.
- 39m 24s
buy_upgradeupgrades=["pumpkins"] · evidenceresult
Could not buy pumpkins: Not enough resources.
- 39m 34s
buy_upgradeupgrades=["carrots","polyculture"] · evidenceresult
Bought carrots, now level 4. Paid wood 6250. Its tutorial is docs page docs/unlocks/carrots.md. Bought polyculture, now level 1. Paid pumpkin 3000. Its tutorial is docs page docs/unlocks/polyculture.md. Game time: 39m 44s elapsed, 5h 20m 16s of budget remaining.
- 39m 44s
docs_readpath="docs/unlocks/polyculture.md" show_hints=trueresult
# Polyculture You may have already noticed that sometimes plants yield more when planted together. Grass, bushes, trees, and carrots yield more when they have the right plant companion. Companion preference is different for each individual plant and cannot be predicted. Fortunately, the companion preference of the plant under the drone can be measured using `get_companion()`. It returns a tuple wh…
- 39m 54s
observeresult
Game time: 40m 4s elapsed, 5h 19m 56s of budget remaining. Program: main (running). Inventory: hay 1628, wood 5349, carrot 638, pumpkin 1688, water 1, fertilizer 216. Farm 8x8. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Pu=pumpkin. y= 7 #Pu3 #Pu3 #Pu3 #Pu3 #Pu3 #Pu…
- 40m 04s
docs_readpath="unlocks/mazes" show_hints=trueresult
## Mazes A maze with a treasure in the middle. if get_entity_type() == Entities.Treasure: harvest() ### Unlock Cost [Current cost: weird_substance=1000] Game time: 40m 14s elapsed, 5h 19m 46s of budget remaining. - 40m 14s
docs_readpath="unlocks/megafarm" show_hints=trueresult
## Megafarm More drones! spawn_drone(task) ### Unlock Cost [Current cost: gold=2000] Game time: 40m 24s elapsed, 5h 19m 36s of budget remaining.
- 40m 24s
docs_readpath="unlocks/dictionaries" show_hints=trueresult
## Dictionaries Get access to dictionaries and sets. right_of = {North:East, East:South, South:West, West:North} ### Unlock Cost [Current cost: pumpkin=2500] Game time: 40m 34s elapsed, 5h 19m 26s of budget remaining. - 40m 34s
observeresult
Game time: 40m 44s elapsed, 5h 19m 16s of budget remaining. Program: main (running). Inventory: hay 1628, wood 5349, carrot 483, pumpkin 2456, water 1, fertilizer 224. Farm 8x8. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Pu=pumpkin, De=dead_pumpkin. y= 7 #Pu3 #Pu3 #De…
- 40m 44s
waitseconds=180 until_resources={"pumpkin":2500}result
Waited 5s (pumpkin reached 2840). Program: main running. Inventory change: fertilizer +1, pumpkin +384. Game time: 40m 59s elapsed, 5h 19m 1s of budget remaining.
- 40m 59s
buy_upgradeupgrades=["dictionaries"] · evidenceresult
Bought dictionaries, now level 1. Paid pumpkin 2500. Its tutorial is docs page docs/scripting/dicts.md. Game time: 41m 9s elapsed, 5h 18m 51s of budget remaining.
- 41m 09s
docs_readpath="docs/scripting/dicts.md" show_hints=trueresult
# Dictionaries Dictionaries are a datastructure that allows you to map keys to values in the same way that a real dictionary maps words to their definitions and you can look them up very quickly. A dictionary can be created like this: `right_of = {North:East, East:South, South:West, West:North}` The expression before the colon is the key and the expression after the colon is the value to which t… - 41m 19s
stop_programresult
Program stopped. Game time: 41m 29s elapsed, 5h 18m 31s of budget remaining.
- 41m 29s
write_programname="main" · evidenceresult
Saved main (78 lines). Game time: 41m 39s elapsed, 5h 18m 21s of budget remaining.
- 41m 39s
run_programname="main" seconds=120result
Ran main for 2m of game time; it is still running. Inventory change: carrot -51, fertilizer +24, pumpkin +1536, water -16, wood +900. Game time: 43m 49s elapsed, 5h 16m 11s of budget remaining. Output: (none)
- 43m 49s
observeresult
Game time: 43m 59s elapsed, 5h 16m 1s of budget remaining. Program: main (running). Inventory: hay 1660, wood 8765, carrot 1039, pumpkin 1876, fertilizer 263. Farm 8x8. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Pu=pumpkin. y= 7 #Pu3 #Pu3 #Pu3 #Pu3 #Pu3 #Pu3 #Pu3 …
- 43m 59s
buy_upgradeupgrades=["pumpkins"] · evidenceresult
Bought pumpkins, now level 2. Paid carrot 1000. Its tutorial is docs page docs/unlocks/pumpkins.md. Game time: 44m 9s elapsed, 5h 15m 51s of budget remaining.
- 44m 09s
stop_programresult
Program stopped. Game time: 44m 19s elapsed, 5h 15m 41s of budget remaining.
- 44m 19s
write_programname="main" · evidenceresult
Saved main (127 lines). Game time: 44m 29s elapsed, 5h 15m 31s of budget remaining.
- 44m 29s
run_programname="main" seconds=120result
Ran main for 2m of game time; it is still running. Inventory change: carrot +1171, fertilizer +20, hay +2800, power +361.30, pumpkin +3954, water -16, weird_substance +16, wood +7576. Game time: 46m 39s elapsed, 5h 13m 21s of budget remaining. Output: (none)
- 46m 39s
observeresult
Game time: 46m 49s elapsed, 5h 13m 11s of budget remaining. Program: main (running). Inventory: hay 4460, wood 16341, carrot 1075, pumpkin 6982, weird_substance 16, fertilizer 293, power 351.17. Farm 8x8. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Pu=pumpkin, De=dead_pum…
- 46m 49s
waitseconds=180 until_resources={"pumpkin":8000}result
Waited 3m (time up). Program: main running. Inventory change: carrot +2924, fertilizer +36, hay +952, power -182.27, water +53, wood +6996. Game time: 49m 59s elapsed, 5h 10m 1s of budget remaining.
- 49m 59s
buy_upgradeupgrades=["expand","fertilizer","grass","trees"] · evidenceresult
Could not buy expand: Not enough resources. Bought fertilizer, now level 3. Paid wood 9000. Its tutorial is docs page docs/unlocks/fertilizer.md. Bought grass, now level 5. Paid wood 12500. Bought trees, now level 4. Paid hay 4800. Its tutorial is docs page docs/unlocks/trees.md. Game time: 50m 9s elapsed, 5h 9m 51s of budget remaining.
- 50m 09s
researchresult
auto_unlock (Auto Unlock) level 0/1; cost pumpkin 5000; requires costs ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 0/6; cost pumpkin 5000; can buy now ## Cactus Cactus! plant(Entities.Cactus) carrots (Carrots) level 4/10; cost wood 31200; available, not affordable; tutorial docs/unlocks/carrots.md ## Carrots Increases the yield and cost of carro…
- 50m 19s
observeresult
Game time: 50m 29s elapsed, 5h 9m 31s of budget remaining. Program: main (running). Inventory: hay 612, wood 1837, carrot 3867, pumpkin 7750, weird_substance 16, water 71, fertilizer 341, power 128.43. Farm 8x8. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Pu=pumpkin, Tr=t…
- 50m 29s
waitseconds=60 until_resources={"pumpkin":8000}result
Waited 1m (time up). Program: main running. Inventory change: fertilizer +24, power -60.75, water +29. Game time: 51m 39s elapsed, 5h 8m 21s of budget remaining.
- 51m 39s
buy_upgradeupgrades=["expand","pumpkins"] · evidenceresult
Could not buy expand: Not enough resources. Could not buy pumpkins: Not enough resources.
- 51m 49s
stop_programresult
Program stopped. Game time: 51m 59s elapsed, 5h 8m 1s of budget remaining.
- 51m 59s
write_programname="main" · evidenceresult
Saved main (145 lines). Game time: 52m 9s elapsed, 5h 7m 51s of budget remaining.
- 52m 09s
run_programname="main" seconds=60result
Ran main for 1m of game time; it is still running. Inventory change: carrot -706, fertilizer +21, power +376.40, pumpkin +2514, water -129, weird_substance +12, wood +360. Game time: 53m 19s elapsed, 5h 6m 41s of budget remaining. Output: (none)
- 53m 19s
buy_upgradeupgrades=["expand","pumpkins"] · evidenceresult
Bought expand, now level 6. Paid pumpkin 8000. Its tutorial is docs page docs/unlocks/expand_1.md. Could not buy pumpkins: Not enough resources. Game time: 53m 29s elapsed, 5h 6m 31s of budget remaining.
- 53m 29s
observeresult
Game time: 53m 39s elapsed, 5h 6m 21s of budget remaining. Program: main (running). Inventory: hay 1508, wood 2197, carrot 2879, pumpkin 3032, weird_substance 28, fertilizer 414, power 393.27. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Gr=grass, Pu=pumpkin, D…
- 53m 39s
researchresult
auto_unlock (Auto Unlock) level 0/1; cost pumpkin 5000; requires costs ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 0/6; cost pumpkin 5000; available, not affordable ## Cactus Cactus! plant(Entities.Cactus) carrots (Carrots) level 4/10; cost wood 31200; available, not affordable; tutorial docs/unlocks/carrots.md ## Carrots Increases the yield and…
- 53m 49s
waitseconds=120 until_resources={"carrot":4000}result
Waited 2m (time up). Program: main running. Inventory change: carrot -1818, fertilizer +48, hay +208, power -121.53, pumpkin +8640. Game time: 55m 59s elapsed, 5h 4m 1s of budget remaining.
- 55m 59s
buy_upgradeupgrades=["cactus","costs","utilities","timing","hats"] · evidenceresult
Bought cactus, now level 1. Paid pumpkin 5000. Its tutorial is docs page docs/unlocks/cactus.md. Bought costs, now level 1. Paid pumpkin 2500. Its tutorial is docs page docs/unlocks/costs.md. Bought utilities, now level 1. Paid pumpkin 1000. Bought timing, now level 1. Paid pumpkin 1000. Its tutorial is docs page docs/unlocks/timing.md. Bought hats, now level 1. Paid hay 50. Its tutorial is docs p…
- 56m 09s
docs_readpath="docs/unlocks/cactus.md" show_hints=trueresult
# Cactus Like other plants, [cacti](objects/cactus) can be grown on soil and harvested as usual. However, they come in various sizes and have a strange sense of order. If you harvest a fully-grown cactus and all neighboring cacti are in sorted order, it will also harvest all neighboring cacti recursively. A cactus is considered to be in sorted order if all neighboring cacti to the `North` and `…
- 56m 19s
docs_readpath="unlocks/dinosaurs" show_hints=trueresult
## Dinosaurs Majestic ancient creatures. ### Unlock Cost [Current cost: cactus=2000] Game time: 56m 29s elapsed, 5h 3m 31s of budget remaining.
- 56m 29s
observeresult
Game time: 56m 39s elapsed, 5h 3m 21s of budget remaining. Program: main (running). Inventory: hay 11458, wood 22517, carrot 2111, pumpkin 3902, weird_substance 28, fertilizer 486, power 211.02. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Gr=grass, Tr=tree, Ca…
- 56m 39s
docs_readpath="objects/cactus" show_hints=trueresult
## Cactus Cacti come in 10 different sizes. When harvested adjacent cacti that are "sorted" will also be harvested. Base growth time between 1 and 1 seconds. Can grow on soil. ### Plant Cost [Current cost: pumpkin=2] Game time: 56m 49s elapsed, 5h 3m 11s of budget remaining.
- 56m 49s
waitseconds=180 until_resources={"carrot":4000,"wood":31200}result
Waited 0s (carrot reached 4365). Program: main running. Inventory change: no change. Game time: 56m 59s elapsed, 5h 3m 1s of budget remaining.
- 56m 59s
buy_upgradeupgrades=["carrots","pumpkins","watering","trees"] · evidenceresult
Bought carrots, now level 5. Paid wood 31200. Its tutorial is docs page docs/unlocks/carrots.md. Bought pumpkins, now level 3. Paid carrot 4000. Its tutorial is docs page docs/unlocks/pumpkins.md. Could not buy watering: Not enough resources. Could not buy trees: Not enough resources. Game time: 57m 9s elapsed, 5h 2m 51s of budget remaining.
- 57m 09s
observeresult
Game time: 57m 19s elapsed, 5h 2m 41s of budget remaining. Program: main (running). Inventory: hay 14818, wood 7549, carrot 657, pumpkin 7358, weird_substance 1028, fertilizer 471, power 170.50. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: none. y=11 #-- #--…
- 57m 19s
buy_upgradeupgrades=["mazes","auto_unlock"] · evidenceresult
Bought mazes, now level 1. Paid weird_substance 1000. Its tutorial is docs page docs/unlocks/mazes.md. Bought auto_unlock, now level 1. Paid pumpkin 5000. Its tutorial is docs page docs/unlocks/auto_unlock.md. Game time: 57m 29s elapsed, 5h 2m 31s of budget remaining.
- 57m 29s
docs_readpath="docs/unlocks/mazes.md" show_hints=trueresult
# Mazes `Items.Weird_Substance`, which is obtained by [fertilizing](docs/unlocks/fertilizer.md) plants, has a strange effect on bushes. If the drone is over a bush and you call `use_item(Items.Weird_Substance, amount)` the bush will grow into a maze of hedges. The size of the maze depends on the amount of `Items.Weird_Substance` used (the second argument of the `use_item()` call). Without maze upg…
- 57m 39s
researchresult
auto_unlock (Auto Unlock) level 1/1; maxed; tutorial docs/unlocks/auto_unlock.md ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 1/6; cost pumpkin 20000; available, not affordable; tutorial docs/unlocks/cactus.md ## Cactus Increases the yield and cost of cactus. 100% => 200% carrots (Carrots) level 5/10; cost wood 156000; available, not affordable; tu…
- 57m 49s
buy_upgradeupgrades=["watering"] · evidenceresult
Bought watering, now level 5. Paid wood 12800. Its tutorial is docs page docs/unlocks/watering.md. Game time: 57m 59s elapsed, 5h 2m 1s of budget remaining.
- 57m 59s
observeresult
Game time: 58m 9s elapsed, 5h 1m 51s of budget remaining. Program: main (running). Inventory: hay 18066, wood 31165, carrot 12761, pumpkin 2358, weird_substance 68, fertilizer 485, power 119.90. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: De=dead_pumpkin, Pu=p…
- 58m 09s
stop_programresult
Program stopped. Game time: 58m 19s elapsed, 5h 1m 41s of budget remaining.
- 58m 19s
write_programname="main" · evidenceresult
Saved main (191 lines). Game time: 58m 29s elapsed, 5h 1m 31s of budget remaining.
- 58m 29s
run_programname="main" seconds=90result
Ran main for 1m 30s of game time; it is still running. Inventory change: carrot -144, fertilizer +35, hay +16, power +994.03, pumpkin +304, water +85, weird_substance +4, wood +88. Game time: 1h 9s elapsed, 4h 59m 51s of budget remaining. Output: Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: swap(South) ^^ -------------------------------------------------… - 1h 00m
observeresult
Game time: 1h 19s elapsed, 4h 59m 41s of budget remaining. Program: main (running). Inventory: hay 18418, wood 33869, carrot 13921, pumpkin 2662, weird_substance 312, water 133, fertilizer 526, power 1093.50. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entities: Ca=cact…
- 1h 00m
stop_programresult
Program stopped. Game time: 1h 29s elapsed, 4h 59m 31s of budget remaining.
- 1h 00m
write_programname="main" · evidenceresult
Saved main (192 lines). Game time: 1h 39s elapsed, 4h 59m 21s of budget remaining.
- 1h 00m
run_programname="main" seconds=120result
Ran main for 2m of game time; it is still running. Inventory change: cactus +20736, carrot -2792, fertilizer +48, power -121.35, pumpkin +10368, water -181. Game time: 1h 2m 49s elapsed, 4h 57m 11s of budget remaining. Output: Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: swap(West) ^^ -------------------------------------------------------------------- - 1h 02m
buy_upgradeupgrades=["dinosaurs","mazes"] · evidenceresult
Bought dinosaurs, now level 1. Paid cactus 2000. Its tutorial is docs page docs/unlocks/dinosaurs.md. Bought mazes, now level 2. Paid cactus 12000. Its tutorial is docs page docs/unlocks/mazes.md. Game time: 1h 2m 59s elapsed, 4h 57m 1s of budget remaining.
- 1h 02m
docs_readpath="docs/unlocks/dinosaurs.md" show_hints=trueresult
# Dinosaurs Dinosaurs are ancient, majestic creatures that can be farmed for ancient bones. Unfortunately dinosaurs have gone extinct a long time ago, so the best we can do now is dressing up as one. For this purpose you have received the new dinosaur hat. The hat can be equipped with `change_hat(Hats.Dinosaur_Hat)` Unfortunately it doesn't quite look like on the advertisement... If you equip …
- 1h 03m
observeresult
Game time: 1h 3m 19s elapsed, 4h 56m 41s of budget remaining. Program: main (running). Inventory: hay 18418, wood 33869, carrot 10341, pumpkin 16486, cactus 6736, weird_substance 312, water 1, fertilizer 598, power 931.49. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Ent…
- 1h 03m
stop_programresult
Program stopped. Game time: 1h 3m 29s elapsed, 4h 56m 31s of budget remaining.
- 1h 03m
write_programname="main" · evidenceresult
Saved main (263 lines). Game time: 1h 3m 39s elapsed, 4h 56m 21s of budget remaining.
- 1h 03m
run_programname="main" seconds=180result
Ran main for 3m of game time; it is still running. Inventory change: bone +58, cactus -56, fertilizer +72, gold +3168, hay +5056, power -182.07, water +288, weird_substance -264. Game time: 1h 6m 49s elapsed, 4h 53m 11s of budget remaining. Output: (none)
- 1h 06m
buy_upgradeupgrades=["megafarm","trees"] · evidenceresult
Bought megafarm, now level 1. Paid gold 2000. Its tutorial is docs page docs/unlocks/megafarm.md. Bought trees, now level 5. Paid hay 19200. Its tutorial is docs page docs/unlocks/trees.md. Game time: 1h 6m 59s elapsed, 4h 53m 1s of budget remaining.
- 1h 06m
docs_readpath="docs/unlocks/megafarm.md" show_hints=trueresult
# Mega Farm This incredibly powerful unlock gives you access to multiple drones. As before, you still start with just one drone. Additional drones must first be spawned and will disappear after the program terminates. Each drone runs its own separate program. New drones can be spawned using the `spawn_drone(function)` function. `def drone_function(): move(North) do_a_flip() spawn_drone… - 1h 07m
observeresult
Game time: 1h 7m 19s elapsed, 4h 52m 41s of budget remaining. Program: main (running). Inventory: hay 4658, wood 33869, carrot 10333, pumpkin 19710, cactus 6664, bone 76, gold 1456, water 385, fertilizer 694, power 708.75. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Ent…
- 1h 07m
researchresult
auto_unlock (Auto Unlock) level 1/1; maxed; tutorial docs/unlocks/auto_unlock.md ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 1/6; cost pumpkin 20000; available, not affordable; tutorial docs/unlocks/cactus.md ## Cactus Increases the yield and cost of cactus. 100% => 200% carrots (Carrots) level 5/10; cost wood 156000; available, not affordable; tu…
- 1h 07m
observeresult
Game time: 1h 7m 39s elapsed, 4h 52m 21s of budget remaining. Program: main (running). Inventory: hay 6786, wood 33869, carrot 10333, pumpkin 19710, cactus 6652, bone 101, gold 1744, water 417, fertilizer 702, power 688.49. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. En…
- 1h 07m
docs_readpath="docs/unlocks/auto_unlock.md" show_hints=trueresult
# Auto Unlocks To fully automate the game, you can use the `unlock()` function to automatically unlock features. For example, you can use `unlock(Unlocks.Speed)` and `unlock(Unlocks.Expand)` to unlock the speed and expansion features. To determine the cost of an unlock, simply use the `get_cost()` function as you would for a plant or item. Example: `get_cost(Unlocks.Loops)` returns `{Items.Hay:5}… - 1h 07m
docs_readpath="docs/unlocks/costs.md" show_hints=trueresult
# Costs Any cost can be represented as a dictionary that maps items to numbers. The `get_cost()` function returns such a dictionary. It returns the cost of a plant or an unlock. `get_cost(Entities.Pumpkin)` returns `{Items.Carrot:1}` For unlocks, an optional second argument can be passed for the unlock level you want to get the cost for. By default, it's the current unlock level. `get_cost(Unl… - 1h 07m
stop_programresult
Program stopped. Game time: 1h 8m 9s elapsed, 4h 51m 51s of budget remaining.
- 1h 08m
write_programname="test_dino" · evidenceresult
Saved test_dino (94 lines). Game time: 1h 8m 19s elapsed, 4h 51m 41s of budget remaining.
- 1h 08m
run_programname="test_dino" seconds=90result
Ran test_dino for 15s of game time; it finished. Inventory change: bone +4, cactus -6, fertilizer +6, hay +352, power -15.21, water +24. Game time: 1h 8m 44s elapsed, 4h 51m 16s of budget remaining. Output: (none)
- 1h 08m
observeresult
Game time: 1h 8m 54s elapsed, 4h 51m 6s of budget remaining. Program: none running. Inventory: hay 8034, wood 33869, carrot 10333, pumpkin 19710, cactus 6636, bone 110, gold 1744, water 537, fertilizer 732, power 642.73. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Entit…
- 1h 08m
write_programname="test_dino" · evidenceresult
Saved test_dino (52 lines). Game time: 1h 9m 4s elapsed, 4h 50m 56s of budget remaining.
- 1h 09m
run_programname="test_dino" seconds=600result
Ran test_dino for 9s of game time; it finished. Inventory change: bone +9, cactus -8, fertilizer +3, power -8.69, water +14. Game time: 1h 9m 22s elapsed, 4h 50m 38s of budget remaining. Output: (none)
- 1h 09m
buy_upgradeupgrades=["polyculture"] · evidenceresult
Could not buy polyculture: Not enough resources.
- 1h 09m
observeresult
Game time: 1h 9m 42s elapsed, 4h 50m 18s of budget remaining. Program: none running. Inventory: hay 8034, wood 33869, carrot 10333, pumpkin 19710, cactus 6628, bone 119, gold 1744, water 615, fertilizer 751, power 634.00. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Enti…
- 1h 09m
write_programname="test_dino" · evidenceresult
Saved test_dino (51 lines). Game time: 1h 9m 52s elapsed, 4h 50m 8s of budget remaining.
- 1h 09m
run_programname="test_dino" seconds=600result
Ran test_dino for 9s of game time; it finished. Inventory change: bone +9, cactus -8, fertilizer +4, power -8.67, water +14. Game time: 1h 10m 11s elapsed, 4h 49m 49s of budget remaining. Output: (none)
- 1h 10m
buy_upgradeupgrades=["polyculture"] · evidenceresult
Could not buy polyculture: Not enough resources.
- 1h 10m
observeresult
Game time: 1h 10m 31s elapsed, 4h 49m 29s of budget remaining. Program: none running. Inventory: hay 8034, wood 33869, carrot 10333, pumpkin 19710, cactus 6620, bone 128, gold 1744, water 693, fertilizer 771, power 625.23. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. Ent…
- 1h 10m
write_programname="test_dino" · evidenceresult
Saved test_dino (51 lines). Game time: 1h 10m 41s elapsed, 4h 49m 19s of budget remaining.
- 1h 10m
run_programname="test_dino" seconds=600result
Ran test_dino for 1m 57s of game time; it finished. Inventory change: bone +20449, cactus -286, fertilizer +47, power -118.08, water +187. Game time: 1h 12m 48s elapsed, 4h 47m 12s of budget remaining. Output: (none)
- 1h 12m
buy_upgradeupgrades=["polyculture"] · evidenceresult
Bought polyculture, now level 2. Paid bone 10000. Its tutorial is docs page docs/unlocks/polyculture.md. Game time: 1h 12m 58s elapsed, 4h 47m 2s of budget remaining.
- 1h 12m
observeresult
Game time: 1h 13m 8s elapsed, 4h 46m 52s of budget remaining. Program: none running. Inventory: hay 8034, wood 33869, carrot 10333, pumpkin 19710, cactus 6334, bone 10577, gold 1744, water 944, fertilizer 834, power 507.06. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. En…
- 1h 13m
researchresult
auto_unlock (Auto Unlock) level 1/1; maxed; tutorial docs/unlocks/auto_unlock.md ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 1/6; cost pumpkin 20000; available, not affordable; tutorial docs/unlocks/cactus.md ## Cactus Increases the yield and cost of cactus. 100% => 200% carrots (Carrots) level 5/10; cost wood 156000; available, not affordable; tu…
- 1h 13m
run_programname="test_dino" seconds=600result
Ran test_dino for 1m 48s of game time; it finished. Inventory change: bone +20449, cactus -286, fertilizer +43, power -109.25, water +173. Game time: 1h 15m 16s elapsed, 4h 44m 44s of budget remaining. Output: (none)
- 1h 15m
run_programname="test_dino" seconds=600result
Ran test_dino for 1m 43s of game time; it finished. Inventory change: bone +20449, cactus -286, fertilizer +41, power -103.95, water +164. Game time: 1h 17m 8s elapsed, 4h 42m 52s of budget remaining. Output: (none)
- 1h 17m
buy_upgradeupgrades=["polyculture"] · evidenceresult
Bought polyculture, now level 3. Paid bone 50000. Its tutorial is docs page docs/unlocks/polyculture.md. Game time: 1h 17m 18s elapsed, 4h 42m 42s of budget remaining.
- 1h 17m
observeresult
Game time: 1h 17m 28s elapsed, 4h 42m 32s of budget remaining. Program: none running. Inventory: hay 8034, wood 33869, carrot 10333, pumpkin 19710, cactus 5762, bone 1475, gold 1744, water 1361, fertilizer 938, power 293.72. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone. E…
- 1h 17m
write_programname="main" · evidenceresult
Saved main (293 lines). Game time: 1h 17m 38s elapsed, 4h 42m 22s of budget remaining.
- 1h 17m
run_programname="main" seconds=180result
Ran main for 3m of game time; it is still running. Inventory change: cactus +41472, carrot -892, fertilizer +72, power +821.12, pumpkin -576, water -43. Game time: 1h 20m 48s elapsed, 4h 39m 12s of budget remaining. Output: …--------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_col swap(South) ^^ -----------------------------------------… - 1h 20m
observeresult
Game time: 1h 20m 58s elapsed, 4h 39m 2s of budget remaining. Program: main (running). Inventory: hay 8034, wood 33869, carrot 9085, pumpkin 22590, cactus 47234, bone 1475, gold 1744, water 1279, fertilizer 1022, power 1104.70. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone…
- 1h 20m
buy_upgradeupgrades=["dinosaurs","cactus"] · evidenceresult
Bought dinosaurs, now level 2. Paid cactus 12000. Its tutorial is docs page docs/unlocks/dinosaurs.md. Bought cactus, now level 2. Paid pumpkin 20000. Its tutorial is docs page docs/unlocks/cactus.md. Game time: 1h 21m 8s elapsed, 4h 38m 52s of budget remaining.
- 1h 21m
researchresult
auto_unlock (Auto Unlock) level 1/1; maxed; tutorial docs/unlocks/auto_unlock.md ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 2/6; cost pumpkin 120000; available, not affordable; tutorial docs/unlocks/cactus.md ## Cactus Increases the yield and cost of cactus. 200% => 400% carrots (Carrots) level 5/10; cost wood 156000; available, not affordable; t…
- 1h 21m
waitseconds=240 until_resources={"pumpkin":64000}result
Waited 4m (time up). Program: main running. Inventory change: carrot +16264, fertilizer +1, gold +3168, hay +35712, power -243.01, pumpkin +20736, water -476, weird_substance +79600, wood +203472. Game time: 1h 25m 28s elapsed, 4h 34m 32s of budget remaining.
- 1h 25m
buy_upgradeupgrades=["expand"] · evidenceresult
Could not buy expand: Not enough resources.
- 1h 25m
buy_upgradeupgrades=["carrots","fertilizer","watering","pumpkins"] · evidenceresult
Bought carrots, now level 6. Paid wood 156000. Its tutorial is docs page docs/unlocks/carrots.md. Bought fertilizer, now level 4. Paid wood 54000. Its tutorial is docs page docs/unlocks/fertilizer.md. Could not buy watering: Not enough resources. Bought pumpkins, now level 4. Paid carrot 16000. Its tutorial is docs page docs/unlocks/pumpkins.md. Game time: 1h 25m 48s elapsed, 4h 34m 12s of budget …
- 1h 25m
observeresult
Game time: 1h 25m 58s elapsed, 4h 34m 2s of budget remaining. Program: main (running). Inventory: hay 43746, wood 27341, carrot 8521, pumpkin 26782, cactus 35234, bone 1475, weird_substance 79504, gold 6064, water 701, fertilizer 1050, power 800.94. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 …
- 1h 25m
waitseconds=180 until_resources={"pumpkin":64000}result
Waited 3m (time up). Program: main running. Inventory change: carrot +45640, fertilizer +144, gold +2592, hay +53744, power -182.24, pumpkin +20736, water -424, weird_substance -192, wood +258192. Game time: 1h 29m 8s elapsed, 4h 30m 52s of budget remaining.
- 1h 29m
buy_upgradeupgrades=["expand","megafarm"] · evidenceresult
Could not buy expand: Not enough resources. Bought megafarm, now level 2. Paid gold 8000. Its tutorial is docs page docs/unlocks/megafarm.md. Game time: 1h 29m 18s elapsed, 4h 30m 42s of budget remaining.
- 1h 29m
buy_upgradeupgrades=["trees","grass","watering"] · evidenceresult
Bought trees, now level 6. Paid hay 76800. Its tutorial is docs page docs/unlocks/trees.md. Bought grass, now level 6. Paid wood 62500. Bought watering, now level 6. Paid wood 51200. Its tutorial is docs page docs/unlocks/watering.md. Game time: 1h 29m 28s elapsed, 4h 30m 32s of budget remaining.
- 1h 29m
waitseconds=60 until_resources={"pumpkin":64000}result
Waited 1m (time up). Program: main running. Inventory change: fertilizer +48, gold +3744, power -60.74, pumpkin +6912, water +192, weird_substance -336. Game time: 1h 30m 38s elapsed, 4h 29m 22s of budget remaining.
- 1h 30m
buy_upgradeupgrades=["expand"] · evidenceresult
Could not buy expand: Not enough resources.
- 1h 30m
observeresult
Game time: 1h 30m 58s elapsed, 4h 29m 2s of budget remaining. Program: main (running). Inventory: hay 23442, wood 211681, carrot 70337, pumpkin 54430, cactus 35234, bone 1475, weird_substance 78872, gold 6128, water 477, fertilizer 1289, power 497.20. Farm 12x12. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, …
- 1h 30m
waitseconds=120 until_resources={"pumpkin":64000}result
Waited 1m 38s (pumpkin reached 68254). Program: main running. Inventory change: carrot -2864, fertilizer +79, gold +2016, hay +4576, power -99.21, pumpkin +13824, water -41, weird_substance -144. Game time: 1h 32m 47s elapsed, 4h 27m 13s of budget remaining.
- 1h 32m
buy_upgradeupgrades=["expand","pumpkins"] · evidenceresult
Bought expand, now level 7. Paid pumpkin 64000. Its tutorial is docs page docs/unlocks/expand_1.md. Bought pumpkins, now level 5. Paid carrot 64000. Its tutorial is docs page docs/unlocks/pumpkins.md. Game time: 1h 32m 57s elapsed, 4h 27m 3s of budget remaining.
- 1h 32m
researchresult
auto_unlock (Auto Unlock) level 1/1; maxed; tutorial docs/unlocks/auto_unlock.md ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 2/6; cost pumpkin 120000; available, not affordable; tutorial docs/unlocks/cactus.md ## Cactus Increases the yield and cost of cactus. 200% => 400% carrots (Carrots) level 6/10; cost wood 781000; available, not affordable; t…
- 1h 33m
observeresult
Game time: 1h 33m 17s elapsed, 4h 26m 43s of budget remaining. Program: main (running). Inventory: hay 31506, wood 211681, carrot 905, pumpkin 4254, cactus 35234, bone 1475, weird_substance 78656, gold 9008, water 371, fertilizer 1400, power 357.50. Farm 16x16. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 …
- 1h 33m
buy_upgradeupgrades=["watering","debug_2","simulation"] · evidenceresult
Bought watering, now level 7. Paid wood 205000. Its tutorial is docs page docs/unlocks/watering.md. Bought debug_2, now level 1. Paid gold 500. Its tutorial is docs page docs/unlocks/debug2.md. Bought simulation, now level 1. Paid gold 5000. Its tutorial is docs page docs/unlocks/simulation.md. Game time: 1h 33m 27s elapsed, 4h 26m 33s of budget remaining.
- 1h 33m
stop_programresult
Program stopped. Game time: 1h 33m 37s elapsed, 4h 26m 23s of budget remaining.
- 1h 33m
write_programname="main" · evidenceresult
Saved main (329 lines). Game time: 1h 33m 47s elapsed, 4h 26m 13s of budget remaining.
- 1h 33m
run_programname="main" seconds=240result
Ran main for 4m of game time; it is still running. Inventory change: fertilizer +192, gold +12288, power -242.87, pumpkin +432, water +1536, weird_substance -800. Game time: 1h 37m 57s elapsed, 4h 22m 3s of budget remaining. Output: (none)
- 1h 37m
observeresult
Game time: 1h 38m 7s elapsed, 4h 21m 53s of budget remaining. Program: main (running). Inventory: hay 32498, wood 6681, carrot 9, pumpkin 4686, cactus 35234, bone 1475, weird_substance 77824, gold 16308, water 2144, fertilizer 1632, power 84.07. Farm 16x16. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full…
- 1h 38m
stop_programresult
Program stopped. Game time: 1h 38m 17s elapsed, 4h 21m 43s of budget remaining.
- 1h 38m
write_programname="main" · evidenceresult
Saved main (329 lines). Game time: 1h 38m 27s elapsed, 4h 21m 33s of budget remaining.
- 1h 38m
run_programname="main" seconds=90result
Ran main for 1m 30s of game time; it is still running. Inventory change: fertilizer +72, gold +5632, power -73.80, water +576, weird_substance -384. Game time: 1h 40m 7s elapsed, 4h 19m 53s of budget remaining. Output: (none)
- 1h 40m
stop_programresult
Program stopped. Game time: 1h 40m 17s elapsed, 4h 19m 43s of budget remaining.
- 1h 40m
write_programname="main" · evidenceresult
Saved main (331 lines). Game time: 1h 40m 27s elapsed, 4h 19m 33s of budget remaining.
- 1h 40m
run_programname="main" seconds=180result
Ran main for 3m of game time; it is still running. Inventory change: cactus +131072, fertilizer +144, gold +1024, hay +8192, pumpkin -1024, water +1152, weird_substance -96. Game time: 1h 43m 37s elapsed, 4h 16m 23s of budget remaining. Output: …------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ ------------… - 1h 43m
observeresult
Game time: 1h 43m 47s elapsed, 4h 16m 13s of budget remaining. Program: main (running). Inventory: hay 40690, wood 6681, carrot 9, pumpkin 3662, cactus 166306, bone 1475, weird_substance 77248, gold 24500, water 4320, fertilizer 1904. Farm 16x16. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks …
- 1h 43m
buy_upgradeupgrades=["dinosaurs","mazes"] · evidenceresult
Bought dinosaurs, now level 3. Paid cactus 72000. Its tutorial is docs page docs/unlocks/dinosaurs.md. Bought mazes, now level 3. Paid cactus 72000. Its tutorial is docs page docs/unlocks/mazes.md. Game time: 1h 43m 57s elapsed, 4h 16m 3s of budget remaining.
- 1h 43m
waitseconds=60 until_resources={"gold":32000}result
Waited 1m (time up). Program: main running. Inventory change: fertilizer +48, hay +4448, pumpkin -564, water +384. Game time: 1h 45m 7s elapsed, 4h 14m 53s of budget remaining.
- 1h 45m
buy_upgradeupgrades=["megafarm"] · evidenceresult
Could not buy megafarm: Not enough resources.
- 1h 45m
researchresult
auto_unlock (Auto Unlock) level 1/1; maxed; tutorial docs/unlocks/auto_unlock.md ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 2/6; cost pumpkin 120000; available, not affordable; tutorial docs/unlocks/cactus.md ## Cactus Increases the yield and cost of cactus. 200% => 400% carrots (Carrots) level 6/10; cost wood 781000; available, not affordable; t…
- 1h 45m
observeresult
Game time: 1h 45m 37s elapsed, 4h 14m 23s of budget remaining. Program: main (running). Inventory: hay 48882, wood 6681, carrot 9, pumpkin 2638, cactus 22306, bone 1475, weird_substance 77248, gold 25524, water 5024, fertilizer 1992. Farm 16x16. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a…
- 1h 45m
waitseconds=180 until_resources={"gold":32000}result
Waited 2m 29s (gold reached 32692). Program: main running. Inventory change: cactus +131072, fertilizer +119, gold +7168, water +952, weird_substance -448. Game time: 1h 48m 15s elapsed, 4h 11m 45s of budget remaining.
- 1h 48m
buy_upgradeupgrades=["megafarm"] · evidenceresult
Bought megafarm, now level 3. Paid gold 32000. Its tutorial is docs page docs/unlocks/megafarm.md. Game time: 1h 48m 25s elapsed, 4h 11m 35s of budget remaining.
- 1h 48m
observeresult
Game time: 1h 48m 35s elapsed, 4h 11m 25s of budget remaining. Program: main (running). Inventory: hay 48882, wood 6681, carrot 9, pumpkin 2638, cactus 153378, bone 1475, weird_substance 76608, gold 2740, water 6168, fertilizer 2135. Farm 16x16. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a…
- 1h 48m
waitseconds=300 until_resources={"bone":250000}result
Waited 5m (time up). Program: main running. Inventory change: fertilizer +240, gold +17408, water +1920, weird_substance -1088. Game time: 1h 53m 45s elapsed, 4h 6m 15s of budget remaining.
- 1h 53m
buy_upgradeupgrades=["polyculture"] · evidenceresult
Could not buy polyculture: Not enough resources.
- 1h 53m
researchresult
auto_unlock (Auto Unlock) level 1/1; maxed; tutorial docs/unlocks/auto_unlock.md ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 2/6; cost pumpkin 120000; available, not affordable; tutorial docs/unlocks/cactus.md ## Cactus Increases the yield and cost of cactus. 200% => 400% carrots (Carrots) level 6/10; cost wood 781000; available, not affordable; t…
- 1h 54m
stop_programresult
Program stopped. Game time: 1h 54m 15s elapsed, 4h 5m 45s of budget remaining.
- 1h 54m
write_programname="main" · evidenceresult
Saved main (357 lines). Game time: 1h 54m 25s elapsed, 4h 5m 35s of budget remaining.
- 1h 54m
run_programname="main" seconds=240result
Ran main for 4m of game time; it is still running. Inventory change: cactus -232, fertilizer +192, hay +8192, water +1536. Game time: 1h 58m 35s elapsed, 4h 1m 25s of budget remaining. Output: (none)
- 1h 58m
buy_upgradeupgrades=["polyculture"] · evidenceresult
Could not buy polyculture: Not enough resources.
- 1h 58m
waitseconds=300 until_resources={"bone":250000}result
Waited 3m 44s (bone reached 261575). Program: main running. Inventory change: bone +260100, cactus -1784, fertilizer +179, water +1435. Game time: 2h 2m 40s elapsed, 3h 57m 20s of budget remaining.
- 2h 02m
buy_upgradeupgrades=["polyculture"] · evidenceresult
Bought polyculture, now level 4. Paid bone 250000. Its tutorial is docs page docs/unlocks/polyculture.md. Game time: 2h 2m 50s elapsed, 3h 57m 10s of budget remaining.
- 2h 02m
observeresult
Game time: 2h 3m elapsed, 3h 57m of budget remaining. Program: main (running). Inventory: hay 57074, wood 6681, carrot 9, pumpkin 2638, cactus 151322, bone 11575, weird_substance 75264, gold 24244, water 11699, fertilizer 2826. Farm 16x16. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 medium, 3 full); * marks a drone…
- 2h 03m
stop_programresult
Program stopped. Game time: 2h 3m 10s elapsed, 3h 56m 50s of budget remaining.
- 2h 03m
write_programname="main" · evidenceresult
Saved main (356 lines). Game time: 2h 3m 20s elapsed, 3h 56m 40s of budget remaining.
- 2h 03m
run_programname="main" seconds=240result
Ran main for 4m of game time; it is still running. Inventory change: bone +16, carrot +217680, fertilizer +160, hay +553824, power +2817.32, pumpkin +368640, water -1059, weird_substance +7856, wood +3433312. Game time: 2h 7m 30s elapsed, 3h 52m 30s of budget remaining. Output: (none)
- 2h 07m
observeresult
Game time: 2h 7m 40s elapsed, 3h 52m 20s of budget remaining. Program: main (running). Inventory: hay 610898, wood 3439993, carrot 211289, pumpkin 420430, cactus 151314, bone 11591, weird_substance 83120, gold 24244, water 10798, fertilizer 3018, power 2753.64. Farm 16x16. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, …
- 2h 07m
buy_upgradeupgrades=["carrots","grass","grass","watering","trees"] · evidenceresult
Bought carrots, now level 7. Paid wood 781000. Its tutorial is docs page docs/unlocks/carrots.md. Bought grass, now level 7. Paid wood 312000. Bought grass, now level 8. Paid wood 1560000. Could not buy watering: Not enough resources. Bought trees, now level 7. Paid hay 307000. Its tutorial is docs page docs/unlocks/trees.md. Game time: 2h 7m 50s elapsed, 3h 52m 10s of budget remaining.
- 2h 07m
waitseconds=60 until_resources={"pumpkin":512000}result
Waited 17s (pumpkin reached 518734). Program: main running. Inventory change: carrot -7728, fertilizer +14, power -87.02, pumpkin +49152, water -8. Game time: 2h 8m 17s elapsed, 3h 51m 43s of budget remaining.
- 2h 08m
buy_upgradeupgrades=["expand"] · evidenceresult
Bought expand, now level 8. Paid pumpkin 512000. Its tutorial is docs page docs/unlocks/expand_1.md. Game time: 2h 8m 27s elapsed, 3h 51m 33s of budget remaining.
- 2h 08m
researchresult
auto_unlock (Auto Unlock) level 1/1; maxed; tutorial docs/unlocks/auto_unlock.md ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 2/6; cost pumpkin 120000; available, not affordable; tutorial docs/unlocks/cactus.md ## Cactus Increases the yield and cost of cactus. 200% => 400% carrots (Carrots) level 7/10; cost wood 3910000; available, not affordable; …
- 2h 08m
observeresult
Game time: 2h 8m 47s elapsed, 3h 51m 13s of budget remaining. Program: main (running). Inventory: hay 363034, wood 786993, carrot 177689, pumpkin 6734, cactus 151314, bone 11591, weird_substance 83120, gold 24244, water 10427, fertilizer 3072, power 2364.47. Farm 22x22. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 m…
- 2h 08m
stop_programresult
Program stopped. Game time: 2h 8m 57s elapsed, 3h 51m 3s of budget remaining.
- 2h 08m
write_programname="main" · evidenceresult
Saved main (356 lines). Game time: 2h 9m 7s elapsed, 3h 50m 53s of budget remaining.
- 2h 09m
run_programname="main" seconds=300result
Ran main for 5m of game time; it is still running. Inventory change: cactus +937024, carrot -36340, fertilizer +240, power +2107.87, pumpkin +141808, water -436. Game time: 2h 14m 17s elapsed, 3h 45m 43s of budget remaining. Output: …------------------------------- Warning: Tried to do a swap over the farm boundaries. That is not allowed. In: sort_row swap(West) ^^ ------------------------… - 2h 14m
observeresult
Game time: 2h 14m 27s elapsed, 3h 45m 33s of budget remaining. Program: main (running). Inventory: hay 365850, wood 786993, carrot 131973, pumpkin 241470, cactus 1088338, bone 11591, weird_substance 83120, gold 24244, water 9896, fertilizer 3344, power 4377.10. Farm 22x22. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, …
- 2h 14m
buy_upgradeupgrades=["dinosaurs","mazes"] · evidenceresult
Bought dinosaurs, now level 4. Paid cactus 432000. Its tutorial is docs page docs/unlocks/dinosaurs.md. Bought mazes, now level 4. Paid cactus 432000. Its tutorial is docs page docs/unlocks/mazes.md. Game time: 2h 14m 37s elapsed, 3h 45m 23s of budget remaining.
- 2h 14m
waitseconds=300 until_resources={"pumpkin":4100000}result
Waited 5m (time up). Program: main running. Inventory change: cactus +937024, carrot -63568, fertilizer +240, power -1718.79, pumpkin +276320, water -934. Game time: 2h 19m 47s elapsed, 3h 40m 13s of budget remaining.
- 2h 19m
observeresult
Game time: 2h 19m 57s elapsed, 3h 40m 3s of budget remaining. Program: main (running). Inventory: hay 365850, wood 786993, carrot 55301, pumpkin 609310, cactus 1161362, bone 11591, weird_substance 83120, gold 24244, water 8820, fertilizer 3608, power 2491.59. Farm 22x22. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small, 2 …
- 2h 19m
buy_upgradeupgrades=["cactus"] · evidenceresult
Bought cactus, now level 3. Paid pumpkin 120000. Its tutorial is docs page docs/unlocks/cactus.md. Game time: 2h 20m 7s elapsed, 3h 39m 53s of budget remaining.
- 2h 20m
waitseconds=300 until_resources={"carrot":256000}result
Waited 1m 22s (carrot reached 257061). Program: main running. Inventory change: carrot +212416, fertilizer +65, hay +1777152, power -384.48, pumpkin +139392, water -483, wood +4625344. Game time: 2h 21m 39s elapsed, 3h 38m 21s of budget remaining.
- 2h 21m
buy_upgradeupgrades=["pumpkins"] · evidenceresult
Bought pumpkins, now level 6. Paid carrot 256000. Its tutorial is docs page docs/unlocks/pumpkins.md. Game time: 2h 21m 49s elapsed, 3h 38m 11s of budget remaining.
- 2h 21m
observeresult
Game time: 2h 21m 59s elapsed, 3h 38m 1s of budget remaining. Program: main (running). Inventory: hay 2273114, wood 6651185, carrot 145701, pumpkin 675166, cactus 1161362, bone 11591, weird_substance 83120, gold 24244, water 8221, fertilizer 3705, power 1970.85. Farm 22x22. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small,…
- 2h 21m
buy_upgradeupgrades=["trees","carrots","watering"] · evidenceresult
Bought trees, now level 8. Paid hay 1230000. Its tutorial is docs page docs/unlocks/trees.md. Bought carrots, now level 8. Paid wood 3910000. Its tutorial is docs page docs/unlocks/carrots.md. Bought watering, now level 8. Paid wood 819000. Its tutorial is docs page docs/unlocks/watering.md. Game time: 2h 22m 9s elapsed, 3h 37m 51s of budget remaining.
- 2h 22m
waitseconds=300 until_resources={"pumpkin":4100000}result
Waited 5m (time up). Program: main running. Inventory change: carrot -223716, fertilizer +240, hay +42240, power +2117.93, pumpkin +1393920, water -945, wood +204288. Game time: 2h 27m 19s elapsed, 3h 32m 41s of budget remaining.
- 2h 27m
observeresult
Game time: 2h 27m 29s elapsed, 3h 32m 31s of budget remaining. Program: main (running). Inventory: hay 1329642, wood 4330633, carrot 225537, pumpkin 2162014, cactus 1161362, bone 11591, weird_substance 83120, gold 24244, water 6973, fertilizer 3969, power 3937.82. Farm 22x22. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 smal…
- 2h 27m
researchresult
auto_unlock (Auto Unlock) level 1/1; maxed; tutorial docs/unlocks/auto_unlock.md ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 3/6; cost pumpkin 720000; can buy now; tutorial docs/unlocks/cactus.md ## Cactus Increases the yield and cost of cactus. 400% => 800% carrots (Carrots) level 8/10; cost wood 19500000; available, not affordable; tutorial docs…
- 2h 27m
buy_upgradeupgrades=["watering"] · evidenceresult
Bought watering, now level 9. Paid wood 3280000. Its tutorial is docs page docs/unlocks/watering.md. Game time: 2h 27m 49s elapsed, 3h 32m 11s of budget remaining.
- 2h 27m
waitseconds=300 until_resources={"pumpkin":4100000}result
Waited 5m (time up). Program: main running. Inventory change: carrot +1927904, fertilizer +240, hay +1738368, power -1546.67, pumpkin +1300992, water +3121, wood +14193792. Game time: 2h 32m 59s elapsed, 3h 27m 1s of budget remaining.
- 2h 32m
buy_upgradeupgrades=["expand","pumpkins","trees","grass"] · evidenceresult
Could not buy expand: Not enough resources. Bought pumpkins, now level 7. Paid carrot 1020000. Its tutorial is docs page docs/unlocks/pumpkins.md. Could not buy trees: Not enough resources. Bought grass, now level 9. Paid wood 7810000. Game time: 2h 33m 9s elapsed, 3h 26m 51s of budget remaining.
- 2h 33m
observeresult
Game time: 2h 33m 19s elapsed, 3h 26m 41s of budget remaining. Program: main (running). Inventory: hay 3068010, wood 7434425, carrot 1068129, pumpkin 3648862, cactus 1161362, bone 11591, weird_substance 83120, gold 24244, water 10380, fertilizer 4249, power 2099.82. Farm 22x22. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 sm…
- 2h 33m
waitseconds=60 until_resources={"pumpkin":4100000}result
Waited 27s (pumpkin reached 4206430). Program: main running. Inventory change: carrot -61504, fertilizer +22, power -157.39, pumpkin +371712, water +297. Game time: 2h 33m 56s elapsed, 3h 26m 4s of budget remaining.
- 2h 33m
buy_upgradeupgrades=["expand","cactus"] · evidenceresult
Bought expand, now level 9. Paid pumpkin 4100000. Its tutorial is docs page docs/unlocks/expand_1.md. Could not buy cactus: Not enough resources. Game time: 2h 34m 6s elapsed, 3h 25m 54s of budget remaining.
- 2h 34m
researchresult
auto_unlock (Auto Unlock) level 1/1; maxed; tutorial docs/unlocks/auto_unlock.md ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 3/6; cost pumpkin 720000; available, not affordable; tutorial docs/unlocks/cactus.md ## Cactus Increases the yield and cost of cactus. 400% => 800% carrots (Carrots) level 8/10; cost wood 19500000; available, not affordable;…
- 2h 34m
observeresult
Game time: 2h 34m 26s elapsed, 3h 25m 34s of budget remaining. Program: main (running). Inventory: hay 4369386, wood 11425465, carrot 1742753, pumpkin 106430, cactus 1161362, bone 11591, weird_substance 83120, gold 24244, water 11220, fertilizer 4303, power 1751.44. Farm 32x32. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 sm…
- 2h 34m
waitseconds=300 until_resources={"pumpkin":720000}result
Waited 3m 38s (pumpkin reached 892862). Program: main running. Inventory change: carrot +777344, fertilizer +174, hay +1109376, power +7035.48, pumpkin +786432, water +1928, wood +4941184. Game time: 2h 38m 13s elapsed, 3h 21m 47s of budget remaining.
- 2h 38m
buy_upgradeupgrades=["cactus"] · evidenceresult
Bought cactus, now level 4. Paid pumpkin 720000. Its tutorial is docs page docs/unlocks/cactus.md. Game time: 2h 38m 23s elapsed, 3h 21m 37s of budget remaining.
- 2h 38m
buy_upgradeupgrades=["trees"] · evidenceresult
Bought trees, now level 9. Paid hay 4920000. Its tutorial is docs page docs/unlocks/trees.md. Game time: 2h 38m 33s elapsed, 3h 21m 27s of budget remaining.
- 2h 38m
waitseconds=300 until_resources={"wood":19500000}result
Waited 5m (time up). Program: main running. Inventory change: carrot -661696, fertilizer +240, power -1782.29, pumpkin +3145728, water -1117. Game time: 2h 43m 43s elapsed, 3h 16m 17s of budget remaining.
- 2h 43m
buy_upgradeupgrades=["carrots","pumpkins"] · evidenceresult
Could not buy carrots: Not enough resources. Could not buy pumpkins: Not enough resources.
- 2h 43m
observeresult
Game time: 2h 44m 3s elapsed, 3h 15m 57s of budget remaining. Program: main (running). Inventory: hay 890026, wood 16755257, carrot 1841441, pumpkin 3711806, cactus 1161362, bone 11591, weird_substance 83120, gold 24244, water 11827, fertilizer 4765, power 6673.71. Farm 32x32. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 sma…
- 2h 44m
waitseconds=60 until_resources={"pumpkin":4200000}result
Waited 50s (pumpkin reached 4498238). Program: main running. Inventory change: carrot -96896, fertilizer +40, power -273.95, pumpkin +786432, water +56. Game time: 2h 45m 3s elapsed, 3h 14m 57s of budget remaining.
- 2h 45m
stop_programresult
Program stopped. Game time: 2h 45m 13s elapsed, 3h 14m 47s of budget remaining.
- 2h 45m
write_programname="main" · evidenceresult
Saved main (374 lines). Game time: 2h 45m 23s elapsed, 3h 14m 37s of budget remaining.
- 2h 45m
run_programname="main" seconds=120result
Ran main for 2m of game time; it is still running. Inventory change: fertilizer +96, gold +26784, power -121.31, water +3072, weird_substance -4512. Game time: 2h 47m 33s elapsed, 3h 12m 27s of budget remaining. Output: (none)
- 2h 47m
researchresult
auto_unlock (Auto Unlock) level 1/1; maxed; tutorial docs/unlocks/auto_unlock.md ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 4/6; cost pumpkin 4320000; can buy now; tutorial docs/unlocks/cactus.md ## Cactus Increases the yield and cost of cactus. 800% => 1600% carrots (Carrots) level 8/10; cost wood 19500000; available, not affordable; tutorial do…
- 2h 47m
stop_programresult
Program stopped. Game time: 2h 47m 53s elapsed, 3h 12m 7s of budget remaining.
- 2h 47m
buy_upgradeupgrades=["cactus"] · evidenceresult
Bought cactus, now level 5. Paid pumpkin 4320000. Its tutorial is docs page docs/unlocks/cactus.md. Game time: 2h 48m 3s elapsed, 3h 11m 57s of budget remaining.
- 2h 48m
docs_readpath="docs/unlocks/mazes.md" show_hints=trueresult
# Mazes `Items.Weird_Substance`, which is obtained by [fertilizing](docs/unlocks/fertilizer.md) plants, has a strange effect on bushes. If the drone is over a bush and you call `use_item(Items.Weird_Substance, amount)` the bush will grow into a maze of hedges. The size of the maze depends on the amount of `Items.Weird_Substance` used (the second argument of the `use_item()` call). Without maze upg…
- 2h 48m
write_programname="main" · evidenceresult
Saved main (432 lines). Game time: 2h 48m 23s elapsed, 3h 11m 37s of budget remaining.
- 2h 48m
run_programname="main" seconds=90result
Ran main for 1m 30s of game time; it is still running. Inventory change: fertilizer +72, hay +262144, power -582.16, pumpkin -32768, water +2304. Game time: 2h 50m 3s elapsed, 3h 9m 57s of budget remaining. Output: (none)
- 2h 50m
waitseconds=60 until_resources={"cactus":5000000}result
Waited 1m (time up). Program: main running. Inventory change: fertilizer +48, power -278.18, water +1536. Game time: 2h 51m 13s elapsed, 3h 8m 47s of budget remaining.
- 2h 51m
buy_upgradeupgrades=["dinosaurs","mazes","dinosaurs","mazes"] · evidenceresult
Could not buy dinosaurs: Not enough resources. Could not buy mazes: Not enough resources. Could not buy dinosaurs: Not enough resources. Could not buy mazes: Not enough resources.
- 2h 51m
waitseconds=60 until_resources={"cactus":5000000}result
Waited 1m (time up). Program: main running. Inventory change: fertilizer +48, power -396.89, water +1536. Game time: 2h 52m 33s elapsed, 3h 7m 27s of budget remaining.
- 2h 52m
buy_upgradeupgrades=["dinosaurs","mazes","dinosaurs","mazes"] · evidenceresult
Could not buy dinosaurs: Not enough resources. Could not buy mazes: Not enough resources. Could not buy dinosaurs: Not enough resources. Could not buy mazes: Not enough resources.
- 2h 52m
observeresult
Game time: 2h 52m 53s elapsed, 3h 7m 7s of budget remaining. Program: main (running). Inventory: hay 1142186, wood 16745273, carrot 1718177, pumpkin 145470, cactus 1161362, bone 11591, weird_substance 77696, gold 56500, water 23428, fertilizer 5189, power 4603.75. Farm 32x32. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 smal…
- 2h 52m
waitseconds=60 until_resources={"cactus":5000000}result
Waited 22s (cactus reached 17938578). Program: main running. Inventory change: cactus +16777216, fertilizer +17, power -96.92, water +554. Game time: 2h 53m 24s elapsed, 3h 6m 36s of budget remaining.
- 2h 53m
buy_upgradeupgrades=["dinosaurs","mazes","dinosaurs","mazes"] · evidenceresult
Bought dinosaurs, now level 5. Paid cactus 2590000. Its tutorial is docs page docs/unlocks/dinosaurs.md. Bought mazes, now level 5. Paid cactus 2590000. Its tutorial is docs page docs/unlocks/mazes.md. Could not buy dinosaurs: Not enough resources. Could not buy mazes: Not enough resources. Game time: 2h 53m 34s elapsed, 3h 6m 26s of budget remaining.
- 2h 53m
waitseconds=60 until_resources={"gold":128000}result
Waited 1m (time up). Program: main running. Inventory change: fertilizer +48, power -485.98, water +1536. Game time: 2h 54m 44s elapsed, 3h 5m 16s of budget remaining.
- 2h 54m
buy_upgradeupgrades=["megafarm"] · evidenceresult
Could not buy megafarm: Not enough resources.
- 2h 54m
observeresult
Game time: 2h 55m 4s elapsed, 3h 4m 56s of budget remaining. Program: main (running). Inventory: hay 1142186, wood 16745273, carrot 1718177, pumpkin 145470, cactus 12758578, bone 11591, weird_substance 77656, gold 56500, water 26798, fertilizer 5294, power 3648.18. Farm 5x5. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 small…
- 2h 55m
stop_programresult
Program stopped. Game time: 2h 55m 14s elapsed, 3h 4m 46s of budget remaining.
- 2h 55m
write_programname="main" · evidenceresult
Saved main (417 lines). Game time: 2h 55m 24s elapsed, 3h 4m 36s of budget remaining.
- 2h 55m
run_programname="main" seconds=60result
Ran main for 1m of game time; it is still running. Inventory change: fertilizer +48, gold +1792, power -482.49, water +1536, weird_substance -576. Game time: 2h 56m 34s elapsed, 3h 3m 26s of budget remaining. Output: (none)
- 2h 56m
observeresult
Game time: 2h 56m 44s elapsed, 3h 3m 16s of budget remaining. Program: main (running). Inventory: hay 1142186, wood 16745273, carrot 1718177, pumpkin 145470, cactus 12758578, bone 11591, weird_substance 77080, gold 58292, water 29358, fertilizer 5374, power 3003.24. Farm 4x4. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 smal…
- 2h 56m
stop_programresult
Program stopped. Game time: 2h 56m 54s elapsed, 3h 3m 6s of budget remaining.
- 2h 56m
write_programname="main" · evidenceresult
Saved main (418 lines). Game time: 2h 57m 4s elapsed, 3h 2m 56s of budget remaining.
- 2h 57m
run_programname="main" seconds=45result
Ran main for 45s of game time; it is still running. Inventory change: fertilizer +36, gold +47104, hay +256, power -360.97, water +1152, weird_substance -11968. Game time: 2h 57m 59s elapsed, 3h 2m 1s of budget remaining. Output: (none)
- 2h 57m
waitseconds=40 until_resources={"gold":128000}result
Waited 11s (gold reached 128180). Program: main running. Inventory change: fertilizer +9, gold +11776, power -92.35, water +294, weird_substance -2944. Game time: 2h 58m 21s elapsed, 3h 1m 39s of budget remaining.
- 2h 58m
buy_upgradeupgrades=["megafarm"] · evidenceresult
Bought megafarm, now level 4. Paid gold 128000. Its tutorial is docs page docs/unlocks/megafarm.md. Game time: 2h 58m 31s elapsed, 3h 1m 29s of budget remaining.
- 2h 58m
stop_programresult
Program stopped. Game time: 2h 58m 41s elapsed, 3h 1m 19s of budget remaining.
- 2h 58m
run_programname="main" seconds=150result
Ran main for 2m 30s of game time; it is still running. Inventory change: cactus -96, carrot -1024, fertilizer +118, gold +215040, hay +303616, power +6328.32, water +2810, weird_substance -53944. Game time: 3h 1m 21s elapsed, 2h 58m 39s of budget remaining. Output: (none)
- 3h 01m
waitseconds=300 until_resources={"bone":1250000}result
Waited 5m (time up). Program: main running. Inventory change: bone +608400, cactus -8544, fertilizer +240, hay +39680, power -317.05, water +7680. Game time: 3h 6m 31s elapsed, 2h 53m 29s of budget remaining.
- 3h 06m
buy_upgradeupgrades=["polyculture"] · evidenceresult
Could not buy polyculture: Not enough resources.
- 3h 06m
waitseconds=300 until_resources={"bone":1250000}result
Waited 2m 27s (bone reached 1836791). Program: main running. Inventory change: bone +1216800, cactus -7840, fertilizer +118, hay +37632, power -162.08, water +3768. Game time: 3h 9m 18s elapsed, 2h 50m 42s of budget remaining.
- 3h 09m
buy_upgradeupgrades=["polyculture"] · evidenceresult
Bought polyculture, now level 5. Paid bone 1250000. Its tutorial is docs page docs/unlocks/polyculture.md. Game time: 3h 9m 28s elapsed, 2h 50m 32s of budget remaining.
- 3h 09m
waitseconds=180 until_resources={"wood":19500000}result
Waited 3m (time up). Program: main running. Inventory change: cactus -4032, carrot -2496, fertilizer +144, hay +54784, power -206.84, pumpkin +393216, water +4570. Game time: 3h 12m 38s elapsed, 2h 47m 22s of budget remaining.
- 3h 12m
buy_upgradeupgrades=["carrots","pumpkins","trees","grass"] · evidenceresult
Could not buy carrots: Not enough resources. Could not buy pumpkins: Not enough resources. Could not buy trees: Not enough resources. Could not buy grass: Not enough resources.
- 3h 12m
waitseconds=90 until_resources={"bone":1250000}result
Waited 1m 30s (time up). Program: main running. Inventory change: cactus -864, fertilizer +72, power -91.09, water +2304. Game time: 3h 14m 28s elapsed, 2h 45m 32s of budget remaining.
- 3h 14m
stop_programresult
Program stopped. Game time: 3h 14m 38s elapsed, 2h 45m 22s of budget remaining.
- 3h 14m
researchresult
auto_unlock (Auto Unlock) level 1/1; maxed; tutorial docs/unlocks/auto_unlock.md ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 5/6; cost pumpkin 25900000; available, not affordable; tutorial docs/unlocks/cactus.md ## Cactus Increases the yield and cost of cactus. 1600% => 3200% carrots (Carrots) level 8/10; cost wood 19500000; available, not afforda…
- 3h 14m
write_programname="main" · evidenceresult
Saved main (427 lines). Game time: 3h 14m 58s elapsed, 2h 45m 2s of budget remaining.
- 3h 14m
run_programname="main" seconds=60result
Ran main for 1m of game time; it is still running. Inventory change: carrot +2986368, fertilizer -753, gold +129792, hay +26554496, power -937.38, water -755, weird_substance +27443712, wood +108041600. Game time: 3h 16m 8s elapsed, 2h 43m 52s of budget remaining. Output: (none)
- 3h 16m
buy_upgradeupgrades=["grass","trees","carrots","pumpkins"] · evidenceresult
Bought grass, now level 10. Paid wood 39100000. Bought trees, now level 10. Paid hay 19700000. Its tutorial is docs page docs/unlocks/trees.md. Bought carrots, now level 9. Paid wood 19500000. Its tutorial is docs page docs/unlocks/carrots.md. Bought pumpkins, now level 8. Paid carrot 4100000. Its tutorial is docs page docs/unlocks/pumpkins.md. Game time: 3h 16m 18s elapsed, 2h 43m 42s of budget r…
- 3h 16m
waitseconds=60 until_resources={"gold":512000}result
Waited 18s (gold reached 512180). Program: main running. Inventory change: fertilizer +15, gold +67328, power -294.85, water +466, weird_substance -16960. Game time: 3h 16m 46s elapsed, 2h 43m 14s of budget remaining.
- 3h 16m
buy_upgradeupgrades=["megafarm"] · evidenceresult
Bought megafarm, now level 5. Paid gold 512000. Its tutorial is docs page docs/unlocks/megafarm.md. Game time: 3h 16m 56s elapsed, 2h 43m 4s of budget remaining.
- 3h 16m
researchresult
auto_unlock (Auto Unlock) level 1/1; maxed; tutorial docs/unlocks/auto_unlock.md ## Auto Unlock Automatically unlock things. unlock(Unlocks.Megafarm) cactus (Cactus) level 5/6; cost pumpkin 25900000; available, not affordable; tutorial docs/unlocks/cactus.md ## Cactus Increases the yield and cost of cactus. 1600% => 3200% carrots (Carrots) level 9/10; cost wood 97700000; available, not afforda…
- 3h 17m
stop_programresult
Program stopped. Game time: 3h 17m 16s elapsed, 2h 42m 44s of budget remaining.
- 3h 17m
write_programname="main" · evidenceresult
Saved main (429 lines). Game time: 3h 17m 26s elapsed, 2h 42m 34s of budget remaining.
- 3h 17m
run_programname="main" seconds=120result
Ran main for 2m of game time; it is still running. Inventory change: carrot +126586752, fertilizer -1249, hay +56206080, power +3798.06, water -3047, weird_substance +59422336, wood +1246488576. Game time: 3h 19m 36s elapsed, 2h 40m 24s of budget remaining. Output: (none)
- 3h 19m
buy_upgradeupgrades=["carrots","pumpkins","pumpkins"] · evidenceresult
Bought carrots, now level 10. Paid wood 97700000. Its tutorial is docs page docs/unlocks/carrots.md. Bought pumpkins, now level 9. Paid carrot 16400000. Its tutorial is docs page docs/unlocks/pumpkins.md. Bought pumpkins, now level 10. Paid carrot 65500000. Its tutorial is docs page docs/unlocks/pumpkins.md. Game time: 3h 19m 46s elapsed, 2h 40m 14s of budget remaining.
- 3h 19m
waitseconds=60 until_resources={"pumpkin":26000000}result
Waited 1m (time up). Program: main running. Inventory change: carrot +77351936, hay +32273408, power -1511.78, pumpkin +12582912, water -388, weird_substance +846080, wood +434732800. Game time: 3h 20m 56s elapsed, 2h 39m 4s of budget remaining.
- 3h 20m
buy_upgradeupgrades=["cactus"] · evidenceresult
Could not buy cactus: Not enough resources.
- 3h 21m
waitseconds=120 until_resources={"pumpkin":26000000}result
Waited 10s (pumpkin reached 28850238). Program: main running. Inventory change: carrot -674304, fertilizer +8, power -217.37, pumpkin +6291456, water -7. Game time: 3h 21m 26s elapsed, 2h 38m 34s of budget remaining.
- 3h 21m
buy_upgradeupgrades=["cactus"] · evidenceresult
Bought cactus, now level 6. Paid pumpkin 25900000. Its tutorial is docs page docs/unlocks/cactus.md. Game time: 3h 21m 36s elapsed, 2h 38m 24s of budget remaining.
- 3h 21m
waitseconds=180 until_resources={"cactus":32000000}result
Waited 59s (cactus reached 46286962). Program: main running. Inventory change: cactus +33554432, fertilizer +47, power -1320.16, water +1517. Game time: 3h 22m 46s elapsed, 2h 37m 14s of budget remaining.
- 3h 22m
buy_upgradeupgrades=["dinosaurs","mazes"] · evidenceresult
Bought dinosaurs, now level 6. Paid cactus 15600000. Its tutorial is docs page docs/unlocks/dinosaurs.md. Bought mazes, now level 6. Paid cactus 15600000. Its tutorial is docs page docs/unlocks/mazes.md. Game time: 3h 22m 56s elapsed, 2h 37m 4s of budget remaining.
- 3h 22m
stop_programresult
Program stopped. Game time: 3h 23m 6s elapsed, 2h 36m 54s of budget remaining.
- 3h 23m
write_programname="main" · evidenceresult
Saved main (416 lines). Game time: 3h 23m 16s elapsed, 2h 36m 44s of budget remaining.
- 3h 23m
run_programname="main" seconds=1200result
Ran main for 20m of game time; it is still running. Inventory change: cactus -12864, fertilizer +960, power -1265.27, pumpkin +425984, water +30720. Game time: 3h 43m 26s elapsed, 2h 16m 34s of budget remaining. Output: (none)
- 3h 43m
waitseconds=600 until_resources={"bone":10000000}result
Waited 10m (time up). Program: main running. Inventory change: cactus -21632, fertilizer +480, power -607.50, water +15360. Game time: 3h 53m 36s elapsed, 2h 6m 24s of budget remaining.
- 3h 53m
waitseconds=300 until_resources={"gold":1000000}result
Waited 5m (time up). Program: main running. Inventory change: cactus -21248, fertilizer +240, power -303.74, water +7680. Game time: 3h 58m 46s elapsed, 2h 1m 14s of budget remaining.
- 3h 58m
buy_upgradeupgrades=["leaderboard"] · evidenceresult
Could not buy leaderboard: Not enough resources.
- 3h 58m
waitseconds=600 until_resources={"bone":10000000}result
Waited 9s (bone reached 34700503). Program: main running. Inventory change: bone +33488928, cactus -4992, fertilizer +7, power -8.91, water +225. Game time: 3h 59m 14s elapsed, 2h 46s of budget remaining.
- 3h 59m
waitseconds=300 until_resources={"gold":1000000}result
Waited 5m (time up). Program: main running. Inventory change: fertilizer +240, gold +384800, hay +4608, power +6138.57, water +7680, weird_substance -79360. Game time: 4h 4m 24s elapsed, 1h 55m 36s of budget remaining.
- 4h 04m
buy_upgradeupgrades=["leaderboard"] · evidenceresult
Could not buy leaderboard: Not enough resources.
- 4h 04m
stop_programresult
Program stopped. Game time: 4h 4m 44s elapsed, 1h 55m 16s of budget remaining.
- 4h 04m
write_programname="main" · evidenceresult
Saved main (388 lines). Game time: 4h 4m 54s elapsed, 1h 55m 6s of budget remaining.
- 4h 04m
run_programname="main" seconds=60result
Ran main for 1m of game time; it is still running. Inventory change: fertilizer +48, gold +800, power -1493.19, water +1536, weird_substance -320. Game time: 4h 6m 4s elapsed, 1h 53m 56s of budget remaining. Output: (none)
- 4h 06m
observeresult
Game time: 4h 6m 14s elapsed, 1h 53m 46s of budget remaining. Program: main (running). Inventory: hay 97902346, wood 1698863321, carrot 129187873, pumpkin 12757374, cactus 15021490, bone 34700503, weird_substance 87585056, gold 437652, water 117184, fertilizer 6506, power 8192.85. Farm 5x5. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code…
- 4h 06m
stop_programresult
Program stopped. Game time: 4h 6m 24s elapsed, 1h 53m 36s of budget remaining.
- 4h 06m
write_programname="main" · evidenceresult
Saved main (388 lines). Game time: 4h 6m 34s elapsed, 1h 53m 26s of budget remaining.
- 4h 06m
run_programname="main" seconds=30result
Ran main for 30s of game time; it is still running. Inventory change: fertilizer +24, gold +670400, hay +512, power -735.55, water +768, weird_substance -134240. Game time: 4h 7m 14s elapsed, 1h 52m 46s of budget remaining. Output: (none)
- 4h 07m
buy_upgradeupgrades=["leaderboard"] · evidenceresult
Bought leaderboard, now level 1. Paid bone 2000000, gold 1000000. Its tutorial is docs page docs/unlocks/leaderboard.md. Game time: 4h 7m 24s elapsed, 1h 52m 36s of budget remaining.
- 4h 07m
waitseconds=3600 until_resources={"gold":101000000}result
Waited 5m 18s (time up). Program: main running. Inventory change: fertilizer +254, gold +6805600, power -6694.47, water +8134, weird_substance -1361120. Game time: 4h 12m 52s elapsed, 1h 47m 8s of budget remaining.
- 4h 12m
waitseconds=3600 until_resources={"cactus":1010000000}result
Waited 11m 18s (time up). Program: main running. Inventory change: fertilizer +542, gold +7930400, water +17354, weird_substance -1586080. Game time: 4h 24m 10s elapsed, 1h 35m 50s of budget remaining.
- 4h 24m
observeresult
Game time: 4h 24m 10s elapsed, 1h 35m 50s of budget remaining. Program: main (running). Inventory: hay 97902858, wood 1698863321, carrot 129187873, pumpkin 12757374, cactus 15021490, bone 32700503, weird_substance 84410016, gold 15312052, water 144720, fertilizer 7366. Farm 5x5. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity code + size (1 s…
- 4h 24m
stop_programresult
Program stopped. Game time: 4h 24m 20s elapsed, 1h 35m 40s of budget remaining.
- 4h 24m
write_programname="main" · evidenceresult
Saved main (390 lines). Game time: 4h 24m 30s elapsed, 1h 35m 30s of budget remaining.
- 4h 24m
run_programname="main" seconds=300result
Ran main for 5m of game time; it is still running. Inventory change: carrot -2048, fertilizer +234, gold +4681600, hay +531456, power +9761.00, water +5618, weird_substance -936456. Game time: 4h 29m 40s elapsed, 1h 30m 20s of budget remaining. Output: (none)
- 4h 29m
stop_programresult
Program stopped. Game time: 4h 29m 50s elapsed, 1h 30m 10s of budget remaining.
- 4h 29m
write_programname="main" · evidenceresult
Saved main (405 lines). Game time: 4h 30m elapsed, 1h 30m of budget remaining.
- 4h 30m
run_programname="main" seconds=240result
Ran main for 4m of game time; it is still running. Inventory change: carrot -5120, fertilizer +173, gold +1994400, hay +535552, power +35863.85, water +979, weird_substance -398964. Game time: 4h 34m 10s elapsed, 1h 25m 50s of budget remaining. Output: (none)
- 4h 34m
stop_programresult
Program stopped. Game time: 4h 34m 20s elapsed, 1h 25m 40s of budget remaining.
- 4h 34m
write_programname="main" · evidenceresult
Saved main (413 lines). Game time: 4h 34m 30s elapsed, 1h 25m 30s of budget remaining.
- 4h 34m
run_programname="main" seconds=600result
Ran main for 10m of game time; it is still running. Inventory change: carrot +1084275977, fertilizer -7829, hay +1121282816, power -1131.03, pumpkin +6291456, water -7745, weird_substance +394528256, wood +9049621504. Game time: 4h 44m 40s elapsed, 1h 15m 20s of budget remaining. Output: (none)
- 4h 44m
waitseconds=600result
Waited 10m (time up). Program: main running. Inventory change: carrot -49301504, fertilizer +480, power -13937.45, pumpkin +235929600, water -5204. Game time: 4h 54m 50s elapsed, 1h 5m 10s of budget remaining.
- 4h 54m
waitseconds=600result
Waited 10m (time up). Program: main running. Inventory change: cactus +201326592, carrot -8520704, fertilizer +480, power +567.39, pumpkin +40435712, water +10218. Game time: 5h 5m elapsed, 55m of budget remaining.
- 5h 05m
waitseconds=600result
Waited 10m (time up). Program: main running. Inventory change: cactus +301989888, carrot -2048, fertilizer +449, power +1719.32, pumpkin -589824, water +13228, weird_substance +124. Game time: 5h 15m 10s elapsed, 44m 50s of budget remaining.
- 5h 15m
waitseconds=600result
Waited 10m (time up). Program: main running. Inventory change: cactus +268435456, carrot -2048, fertilizer +451, power +2078.29, pumpkin -524288, water +13235, weird_substance +116. Game time: 5h 25m 20s elapsed, 34m 40s of budget remaining.
- 5h 25m
waitseconds=600 until_resources={"cactus":1100000000}result
Waited 10m (time up). Program: main running. Inventory change: cactus +301989888, carrot -2048, fertilizer +454, power +2075.33, pumpkin -589824, water +13234, weird_substance +104. Game time: 5h 35m 30s elapsed, 24m 30s of budget remaining.
- 5h 35m
waitseconds=600result
Waited 6m 20s (time up). Program: main running. Inventory change: cactus +33554432, fertilizer +305, gold +7768800, hay +512, power -9475.55, water +9731, weird_substance -1553920. Game time: 5h 42m elapsed, 18m of budget remaining.
- 5h 41m
observeresult
Game time: 5h 42m elapsed, 18m of budget remaining. Program: main (running). Inventory: hay 1220253194, wood 10748484825, carrot 1154761514, pumpkin 300001662, cactus 1122317746, bone 32700503, weird_substance 475932956, gold 30338452, water 201186, fertilizer 2683, power 27476.78. Farm 5x5. x runs west to east, rows are listed north (top) to south. Cells: ground (# soil, _ grassland) + entity cod…
- 5h 42m
waitseconds=300result
Waited 5m 9s (time up). Program: main running. Inventory change: fertilizer +247, gold +7202400, power -7831.66, water +7922, weird_substance -1440480. Game time: 5h 47m 20s elapsed, 12m 40s of budget remaining.
- 5h 47m
waitseconds=300result
Waited 5m (time up). Program: main running. Inventory change: fertilizer +240, gold +6985600, power -7593.68, water +7680, weird_substance -1397120. Game time: 5h 52m 20s elapsed, 7m 40s of budget remaining.
- 5h 52m
waitseconds=180result
Waited 3m (time up). Program: main running. Inventory change: fertilizer +144, gold +4186400, power -4556.23, water +4608, weird_substance -837280. Game time: 5h 55m 30s elapsed, 4m 30s of budget remaining.
- 5h 55m
waitseconds=180result
Waited 3m (time up). Program: main running. Inventory change: fertilizer +144, gold +4190400, power -4556.22, water +4608, weird_substance -838080. Game time: 5h 58m 40s elapsed, 1m 20s of budget remaining.
- 5h 58m
waitseconds=70result
Waited 1m 10s (time up). Program: main running. Inventory change: carrot -1251, fertilizer +45, gold +853600, hay +518144, power +6558.69, water +510, weird_substance -170676. Game time: 6h elapsed, 0s of budget remaining. The game-time budget is used up. The run is over; stop now.
- 6h 00m
observeresult
The game-time budget is used up. The run is over; stop now.
- 6h 00msaidThe 6-hour game-time budget is complete. Here is a summary of the farm economy and final production achieved: ### Final Resource Inventory (at 6h 0m 0s) - Wood: `~10,748,484,825` (10.75 Billion) - Hay: `~1,221,290,000` (1.22 Billion) - Carrot: `~1,154,758,000` (1.15 Billion) - Cactus: `~1,122,317,746` (1.12 Billion) - Weird Substance: `~473,800,000` (473.8 Million) - Pumpkin: `~300,001,662` (300.0 Million) - Gold: `~45,000,000+` (45+ Million) - Bone: `~32,700,503` (32.7 Million) - Water: `~215,000+` - Power: `~28,000+` - Fertilizer: `~3,100+` ### Maxed Out Upgrades & Unlocks - Farm & Drones: `expand` (9/9, 32x32 grid), `megafarm` (5/5, 32 concurrent drones), `speed` (5/5), `watering` (9/9), `fertilizer` (4/4), `leaderboard` (1/1). - Crop & Resource Multipliers: - `grass`: 10/10 (max, 51,200%) - `trees`: 10/10 (max, 51,200%) - `carrots`: 10/10 (max, 51,200%) - `pumpkins`: 10/10 (max, 25,600%) - `polyculture`: 5/5 (max, 16,000%) - `cactus`: 6/6 (max, 3,200%) - `dinosaurs`: 6/6 (max, 3,200%) - `mazes`: 6/6 (max, 3,200%)
Thinking is shown as the agent reported it over ACP; some agents report a summary, not the full reasoning. Tool results are cut at 400 characters; program code is in evidence.json.
spent
What it spent
API-equivalent estimate at list prices; not an actual charge
Tokens
| Input (uncached) | 491,787 |
| Cache reads | 8,115,551 |
| Cache writes | 0 |
| Output | 108,049 |
| Thinking (subset of output where reported) | not reported |
| Total | 8,715,387 |
|---|
| Model | Tokens | Estimate |
|---|---|---|
| gemini-4-argon | 8,715,387 | $2.88 |
Estimate: API-equivalent estimate at list prices; not an actual charge. Price table prices-2026-10-20.
- 1 usage segment(s) the agent never reported, taken from local/cursor-usage/usage-events-2026-10-20.csv (sha256 a619ec4376969fe5e62746b1b1a18312b86097c07b696072d2275087a56900a2)
conditions
Limitations
- Recorded from a harness checkout with uncommitted changes.
- No agent session log: the token curve has one point per prompt turn.
- Cost estimate assumption: 1 usage segment(s) the agent never reported, taken from local/cursor-usage/usage-events-2026-10-20.csv (sha256 a619ec4376969fe5e62746b1b1a18312b86097c07b696072d2275087a56900a2).
| Run id | economy-v1-cursor-gemini-4-argon-s3-a1-20261020T112237Z |
|---|---|
| Task | economy-v1 · acb5fb455a43 |
| Budget | 6h 00m game time · 10s per action · caps: 2,000 tool calls, 20 continuations, 4h 00m real time |
| Agent | undefined 2026.10.16-e3cb207 (cursor-agent) |
| Applied config | {"model":"gemini-4-argon[reasoning_effort=medium]"} |
| Models reported | gemini-4-argon |
| Tools available | not recorded |
| Harness | c6f39886971f (uncommitted changes) |
| Bridge / game | 2cb6f7438845 / 953fea25964f |
| Adapters | claude-agent-acp 0.91.0, codex-acp 2.2.2, acp-sdk 1.8.0, mcp-sdk 1.32.1, cursor-agent 2026.10.16-e3cb207 |
| Rubrics | economy-v1 (headline) · Σ over resources of log10(1 + produced) · 51746c5bec27 economy-weighted-v1 · scores 9.75 · log10(1 + Σ w_r × produced_r), weights from late-game sink prices · 228b39065cbd |
| Started / ended | 2026-10-20T11:22:37.207Z → 2026-10-20T12:03:21.982Z |
| Evidence | 121 items in evidence.json |