Minor improvements all over the place
parent
b8b23249a0
commit
c00f788d27
18
lambdaV.py
18
lambdaV.py
|
@ -15,7 +15,7 @@
|
||||||
# version 3 along with this program.
|
# version 3 along with this program.
|
||||||
# If not, see https://www.gnu.org/licenses/gpl-3.0.en.html
|
# If not, see https://www.gnu.org/licenses/gpl-3.0.en.html
|
||||||
|
|
||||||
import re
|
import re, time
|
||||||
|
|
||||||
debug_mode = False
|
debug_mode = False
|
||||||
|
|
||||||
|
@ -51,6 +51,8 @@ goal = '$'
|
||||||
|
|
||||||
cursor_position = [0, 0]
|
cursor_position = [0, 0]
|
||||||
|
|
||||||
|
command_delay = 0.3
|
||||||
|
|
||||||
def clear_field():
|
def clear_field():
|
||||||
field = [
|
field = [
|
||||||
" _________________ ",
|
" _________________ ",
|
||||||
|
@ -66,6 +68,7 @@ def clear_field():
|
||||||
]
|
]
|
||||||
|
|
||||||
def draw_field():
|
def draw_field():
|
||||||
|
print("\033[2J\033[H")
|
||||||
for row in range(len(field)):
|
for row in range(len(field)):
|
||||||
for column in range(len(field[row])):
|
for column in range(len(field[row])):
|
||||||
if column==cursor_position[0] and row==cursor_position[1]:
|
if column==cursor_position[0] and row==cursor_position[1]:
|
||||||
|
@ -85,6 +88,7 @@ def run_code(parsed_code):
|
||||||
if not result=="":
|
if not result=="":
|
||||||
return result
|
return result
|
||||||
draw_field()
|
draw_field()
|
||||||
|
time.sleep(command_delay)
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
|
@ -136,7 +140,7 @@ def condition_on_apple(inverted):
|
||||||
# return value: "" or error message
|
# return value: "" or error message
|
||||||
def command_step():
|
def command_step():
|
||||||
if condition_in_front_of_wall(False):
|
if condition_in_front_of_wall(False):
|
||||||
return "You walked into a wall."
|
return "You stepped into a wall."
|
||||||
|
|
||||||
if condition_facing_north(False):
|
if condition_facing_north(False):
|
||||||
cursor_position[1] = cursor_position[1]-1
|
cursor_position[1] = cursor_position[1]-1
|
||||||
|
@ -334,7 +338,7 @@ def parse_code(code, allowed_commands, allowed_conditions, unformatted_code=True
|
||||||
elif next_command == "take":
|
elif next_command == "take":
|
||||||
parsed_code[0].append(command_take)
|
parsed_code[0].append(command_take)
|
||||||
elif next_command == "repeat":
|
elif next_command == "repeat":
|
||||||
return [[], [], next_space, "Syntax error: Condition missing", code]
|
return [[], [], next_space, "Syntax error: Number of repetitions missing", code]
|
||||||
elif next_command == "while":
|
elif next_command == "while":
|
||||||
return [[], [], next_space, "Syntax error: Condition missing", code]
|
return [[], [], next_space, "Syntax error: Condition missing", code]
|
||||||
elif next_command == "if":
|
elif next_command == "if":
|
||||||
|
@ -476,5 +480,13 @@ def evaluate_parser_result(parsed_code):
|
||||||
#TODO: check if goal reached
|
#TODO: check if goal reached
|
||||||
return "Success!"
|
return "Success!"
|
||||||
|
|
||||||
|
|
||||||
|
def debug_setup():
|
||||||
|
global cursor_position
|
||||||
|
cursor_position = [1,1]
|
||||||
|
global cursor_current
|
||||||
|
cursor_current = cursor_south
|
||||||
|
draw_field()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
pass
|
pass
|
||||||
|
|
Loading…
Reference in New Issue