original commit
This commit is contained in:
130
f2.py
Normal file
130
f2.py
Normal file
@@ -0,0 +1,130 @@
|
||||
def carrots(worldSize):
|
||||
simple_column(worldSize, True, Entities.Carrot)
|
||||
|
||||
|
||||
def pumpkins(worldSize):
|
||||
simple_column(worldSize, True, Entities.Pumpkin)
|
||||
|
||||
|
||||
def bushes_and_trees(worldSize):
|
||||
for row in range(worldSize):
|
||||
if can_harvest():
|
||||
harvest()
|
||||
if row % 2 == 0:
|
||||
plant(Entities.Bush)
|
||||
else:
|
||||
plant(Entities.Tree)
|
||||
move(North)
|
||||
|
||||
|
||||
def simple_column(worldSize, shouldTill, entity):
|
||||
for row in range(worldSize):
|
||||
if can_harvest():
|
||||
harvest()
|
||||
|
||||
if shouldTill:
|
||||
till()
|
||||
|
||||
plant(entity)
|
||||
move(North)
|
||||
|
||||
def move_to(x, y):
|
||||
while x > get_pos_x():
|
||||
move(East)
|
||||
while x < get_pos_x():
|
||||
move(West)
|
||||
|
||||
while y > get_pos_y():
|
||||
move(North)
|
||||
while y < get_pos_y():
|
||||
move(South)
|
||||
|
||||
def reset_pos():
|
||||
while get_pos_y() > 0:
|
||||
move(North)
|
||||
while get_pos_x() > 0:
|
||||
move(West)
|
||||
|
||||
|
||||
def runWorld():
|
||||
worldSize = get_world_size()
|
||||
for col in range(worldSize):
|
||||
runColumn(col, worldSize)
|
||||
move(East)
|
||||
|
||||
|
||||
def runColumn(col, worldSize):
|
||||
# 1 in 3 is carrots
|
||||
if col % 3 == 0:
|
||||
carrots(worldSize)
|
||||
|
||||
elif col % 3 == 1:
|
||||
pumpkins(worldSize)
|
||||
else:
|
||||
bushes_and_trees(worldSize)
|
||||
|
||||
def plant_pumpkin(width, height):
|
||||
others = {East:West, West:East}
|
||||
|
||||
sideDir = East
|
||||
# first pass over, checking if anything can be harvested. if so, harvest.
|
||||
# then check what type of ground is down, if it's not soil then till.
|
||||
# then if it's below 75% water and i have some water, give it some.
|
||||
# then plant a pumpkin.
|
||||
for row in range(height):
|
||||
for col in range(width):
|
||||
if can_harvest():
|
||||
harvest()
|
||||
if get_ground_type() != Grounds.Soil:
|
||||
till()
|
||||
if get_water() < 0.75:
|
||||
use_item(Items.Water)
|
||||
plant(Entities.Pumpkin)
|
||||
|
||||
# if it's not the last pass, then move
|
||||
if col < width - 1:
|
||||
move(sideDir)
|
||||
|
||||
|
||||
if row < height - 1:
|
||||
sideDir = others[sideDir]
|
||||
move(North)
|
||||
|
||||
# verify_pumpkin will verify that a pumpkin is planted in all tiles of a quadrant, and it will check that
|
||||
# the pumpkin isn't dead. if it's dead it will replant it. Returns whether any dead pumpkins were found.
|
||||
def verify_pumpkin(width, height):
|
||||
result = False
|
||||
others = {East:West, West:East}
|
||||
|
||||
sideDir = East
|
||||
|
||||
for row in range(height):
|
||||
for col in range(width):
|
||||
if get_entity_type() == Entities.Dead_Pumpkin:
|
||||
# ~20% of pumpkins die, we just replant
|
||||
plant(Entities.Pumpkin)
|
||||
result = True
|
||||
|
||||
# if it's not the last pass, then move
|
||||
if col < width - 1:
|
||||
move(sideDir)
|
||||
|
||||
|
||||
if row < height - 1:
|
||||
sideDir = others[sideDir]
|
||||
move(North)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
#reset_pos()
|
||||
|
||||
while True:
|
||||
worldSize = get_world_size()
|
||||
|
||||
move_to(0, 0)
|
||||
plant_pumpkin(worldSize, worldSize)
|
||||
move_to(0, 0)
|
||||
while verify_pumpkin(worldSize, worldSize):
|
||||
move_to(0, 0)
|
||||
harvest()
|
||||
Reference in New Issue
Block a user