Implement condition functions

master
BodgeMaster 2022-11-06 02:24:21 +01:00
parent 70456794a4
commit cf311ae3fa
1 changed files with 36 additions and 15 deletions

View File

@ -74,30 +74,51 @@ def draw_field():
print(field[row][column], end="") print(field[row][column], end="")
print("") print("")
def condition_in_front_of_wall(inverted):
return False
def condition_goal_reached(inverted):
return False
def condition_on_apple(inverted):
return False
def condition_facing_north(inverted): def condition_facing_north(inverted):
return False if inverted:
return not cursor_current == cursor_north
return cursor_current == cursor_north
def condition_facing_south(inverted): def condition_facing_south(inverted):
return False if inverted:
return not cursor_current == cursor_south
return cursor_current == cursor_south
def condition_facing_east(inverted): def condition_facing_east(inverted):
return False if inverted:
return not cursor_current == cursor_east
return cursor_current == cursor_east
def condition_facing_west(inverted): def condition_facing_west(inverted):
return False if inverted:
return not cursor_current == cursor_west
return cursor_current == cursor_west
# condition prefixed with ! def condition_in_front_of_wall(inverted):
def modifier_not(condition): if condition_facing_north(False):
return condition(true) result = field[cursor_position[1]-1][cursor_position[0]]==wall or field[cursor_position[1]-1][cursor_position[0]]=='_'
elif condition_facing_south(False):
result = field[cursor_position[1]+1][cursor_position[0]]==wall or field[cursor_position[1]+1][cursor_position[0]]=='¯'
elif condition_facing_east(False):
result = field[cursor_position[1]][cursor_position[0]+1]==wall or field[cursor_position[1]][cursor_position[0]+1]=='|'
elif condition_facing_west(False):
result = field[cursor_position[1]][cursor_position[0]-1]==wall or field[cursor_position[1]][cursor_position[0]-1]=='|'
else:
result = False
if inverted:
return not result
return result
def condition_goal_reached(inverted):
if inverted:
return not field[cursor_position[1]][cursor_position[2]]==goal
return field[cursor_position[1]][cursor_position[2]]==goal
def condition_on_apple(inverted):
if inverted:
return not field[cursor_position[1]][cursor_position[2]]==apple
return field[cursor_position[1]][cursor_position[2]]==apple
# return value: "" or error message # return value: "" or error message
def command_step(): def command_step():