diff --git a/006/resources/problem_world.json b/006/resources/problem_world.json new file mode 100644 index 0000000..00738f4 --- /dev/null +++ b/006/resources/problem_world.json @@ -0,0 +1,248 @@ +{ + "walls": { + "1,1": [ + "east" + ], + "1,2": [ + "east" + ], + "1,3": [ + "north" + ], + "2,5": [ + "north" + ], + "1,5": [ + "north" + ], + "3,5": [ + "north" + ], + "4,5": [ + "north" + ], + "5,5": [ + "north", + "east" + ], + "2,3": [ + "north", + "east" + ], + "2,2": [ + "east" + ], + "3,2": [ + "east" + ], + "5,1": [ + "east" + ], + "5,3": [ + "east", + "north" + ], + "4,4": [ + "east", + "north" + ], + "4,2": [ + "east" + ], + "1,4": [ + "east" + ], + "5,2": [ + "east", + "north" + ], + "3,1": [ + "north" + ] + }, + "small_tiles": false, + "rows": 6, + "cols": 6, + "tiles": { + "6,1": [ + "mud" + ], + "6,2": [ + "mud" + ], + "6,3": [ + "mud" + ], + "6,5": [ + "mud" + ], + "6,6": [ + "mud" + ], + "5,6": [ + "mud" + ], + "4,6": [ + "mud" + ], + "3,6": [ + "mud" + ], + "2,6": [ + "mud" + ], + "1,6": [ + "mud" + ], + "6,4": [ + "grass" + ], + "5,4": [ + "#000000" + ], + "5,5": [ + "#000000" + ], + "4,5": [ + "#000000" + ], + "3,5": [ + "#000000" + ], + "3,4": [ + "#000000" + ], + "4,4": [ + "#000000" + ], + "4,3": [ + "#000000" + ], + "3,3": [ + "#000000" + ], + "3,2": [ + "#000000" + ], + "4,2": [ + "#000000" + ], + "5,3": [ + "#000000" + ], + "5,2": [ + "#000000" + ], + "5,1": [ + "#000000" + ], + "4,1": [ + "#000000" + ], + "3,1": [ + "#000000" + ], + "2,1": [ + "#000000" + ], + "2,2": [ + "#000000" + ], + "2,3": [ + "#000000" + ], + "2,4": [ + "#000000" + ], + "2,5": [ + "#000000" + ], + "1,5": [ + "#000000" + ], + "1,4": [ + "#000000" + ], + "1,3": [ + "#000000" + ], + "1,2": [ + "#000000" + ], + "1,1": [ + "#000000" + ] + }, + "goal": { + "possible_final_positions": [ + [ + 6, + 4 + ] + ], + "position": { + "image": "racing_flag", + "x": 6, + "y": 4 + } + }, + "robots": [ + { + "x": 3, + "y": 4, + "objects": {}, + "model": "classic", + "_orientation": 3, + "_is_leaky": true, + "_prev_x": 3, + "_prev_y": 3, + "_prev_orientation": 2, + "_trace_history": [ + { + "color": "seagreen", + "thickness": 2, + "prev_x": 140, + "x": 140, + "prev_y": 170, + "y": 210, + "grid_x": 3, + "grid_y": 3 + }, + { + "color": "seagreen", + "thickness": 2, + "prev_x": 140, + "x": 140, + "prev_y": 200, + "y": 210, + "grid_x": 3, + "grid_y": 3 + } + ], + "_trace_style": "default", + "_trace_color": "seagreen", + "__id": 80, + "initial_position": [ + 3, + 3 + ] + } + ], + "description": [ + "", + "

Lost in a maze

", + "

Reeborg was exploring a dark maze and the battery in its flashlight ran out.

", + "

Write a program using an if/elif/else statement so Reeborg can find the exit. ", + "The secret is to have Reeborg follow along the right edge of the maze, ", + "turning right if it can, going straight ahead if it ", + "can’t turn right, or turning left as a last resort.

", + "

What you need to know

", + "", + "DIFFICULTY4", + "" + ] +} diff --git a/006/resources/problem_world2.json b/006/resources/problem_world2.json new file mode 100644 index 0000000..46d6679 --- /dev/null +++ b/006/resources/problem_world2.json @@ -0,0 +1,248 @@ +{ + "walls": { + "1,1": [ + "east" + ], + "1,2": [ + "east" + ], + "1,3": [ + "north" + ], + "2,5": [ + "north" + ], + "1,5": [ + "north" + ], + "3,5": [ + "north" + ], + "4,5": [ + "north" + ], + "5,5": [ + "north", + "east" + ], + "2,3": [ + "north", + "east" + ], + "2,2": [ + "east" + ], + "3,2": [ + "east" + ], + "5,1": [ + "east" + ], + "5,3": [ + "east", + "north" + ], + "4,4": [ + "east", + "north" + ], + "4,2": [ + "east" + ], + "1,4": [ + "east" + ], + "5,2": [ + "east", + "north" + ], + "3,1": [ + "north" + ] + }, + "small_tiles": false, + "rows": 6, + "cols": 6, + "tiles": { + "6,1": [ + "mud" + ], + "6,2": [ + "mud" + ], + "6,3": [ + "mud" + ], + "6,5": [ + "mud" + ], + "6,6": [ + "mud" + ], + "5,6": [ + "mud" + ], + "4,6": [ + "mud" + ], + "3,6": [ + "mud" + ], + "2,6": [ + "mud" + ], + "1,6": [ + "mud" + ], + "6,4": [ + "grass" + ], + "5,4": [ + "#000000" + ], + "5,5": [ + "#000000" + ], + "4,5": [ + "#000000" + ], + "3,5": [ + "#000000" + ], + "3,4": [ + "#000000" + ], + "4,4": [ + "#000000" + ], + "4,3": [ + "#000000" + ], + "3,3": [ + "#000000" + ], + "3,2": [ + "#000000" + ], + "4,2": [ + "#000000" + ], + "5,3": [ + "#000000" + ], + "5,2": [ + "#000000" + ], + "5,1": [ + "#000000" + ], + "4,1": [ + "#000000" + ], + "3,1": [ + "#000000" + ], + "2,1": [ + "#000000" + ], + "2,2": [ + "#000000" + ], + "2,3": [ + "#000000" + ], + "2,4": [ + "#000000" + ], + "2,5": [ + "#000000" + ], + "1,5": [ + "#000000" + ], + "1,4": [ + "#000000" + ], + "1,3": [ + "#000000" + ], + "1,2": [ + "#000000" + ], + "1,1": [ + "#000000" + ] + }, + "goal": { + "possible_final_positions": [ + [ + 6, + 4 + ] + ], + "position": { + "image": "racing_flag", + "x": 6, + "y": 4 + } + }, + "robots": [ + { + "x": 3, + "y": 4, + "objects": {}, + "model": "classic", + "_orientation": 1, + "_is_leaky": true, + "_prev_x": 3, + "_prev_y": 3, + "_prev_orientation": 2, + "_trace_history": [ + { + "color": "seagreen", + "thickness": 2, + "prev_x": 140, + "x": 140, + "prev_y": 170, + "y": 210, + "grid_x": 3, + "grid_y": 3 + }, + { + "color": "seagreen", + "thickness": 2, + "prev_x": 140, + "x": 140, + "prev_y": 200, + "y": 210, + "grid_x": 3, + "grid_y": 3 + } + ], + "_trace_style": "default", + "_trace_color": "seagreen", + "__id": 80, + "initial_position": [ + 3, + 3 + ] + } + ], + "description": [ + "", + "

Lost in a maze

", + "

Reeborg was exploring a dark maze and the battery in its flashlight ran out.

", + "

Write a program using an if/elif/else statement so Reeborg can find the exit. ", + "The secret is to have Reeborg follow along the right edge of the maze, ", + "turning right if it can, going straight ahead if it ", + "can’t turn right, or turning left as a last resort.

", + "

What you need to know

", + "", + "DIFFICULTY4", + "" + ] +} diff --git a/006/resources/problem_world3.json b/006/resources/problem_world3.json new file mode 100644 index 0000000..b080679 --- /dev/null +++ b/006/resources/problem_world3.json @@ -0,0 +1,248 @@ +{ + "walls": { + "1,1": [ + "east" + ], + "1,2": [ + "east" + ], + "1,3": [ + "north" + ], + "2,5": [ + "north" + ], + "1,5": [ + "north" + ], + "3,5": [ + "north" + ], + "4,5": [ + "north" + ], + "5,5": [ + "north", + "east" + ], + "2,3": [ + "north", + "east" + ], + "2,2": [ + "east" + ], + "3,2": [ + "east" + ], + "5,1": [ + "east" + ], + "5,3": [ + "east", + "north" + ], + "4,4": [ + "east", + "north" + ], + "4,2": [ + "east" + ], + "1,4": [ + "east" + ], + "5,2": [ + "east", + "north" + ], + "3,1": [ + "north" + ] + }, + "small_tiles": false, + "rows": 6, + "cols": 6, + "tiles": { + "6,1": [ + "mud" + ], + "6,2": [ + "mud" + ], + "6,3": [ + "mud" + ], + "6,5": [ + "mud" + ], + "6,6": [ + "mud" + ], + "5,6": [ + "mud" + ], + "4,6": [ + "mud" + ], + "3,6": [ + "mud" + ], + "2,6": [ + "mud" + ], + "1,6": [ + "mud" + ], + "6,4": [ + "grass" + ], + "5,4": [ + "#000000" + ], + "5,5": [ + "#000000" + ], + "4,5": [ + "#000000" + ], + "3,5": [ + "#000000" + ], + "3,4": [ + "#000000" + ], + "4,4": [ + "#000000" + ], + "4,3": [ + "#000000" + ], + "3,3": [ + "#000000" + ], + "3,2": [ + "#000000" + ], + "4,2": [ + "#000000" + ], + "5,3": [ + "#000000" + ], + "5,2": [ + "#000000" + ], + "5,1": [ + "#000000" + ], + "4,1": [ + "#000000" + ], + "3,1": [ + "#000000" + ], + "2,1": [ + "#000000" + ], + "2,2": [ + "#000000" + ], + "2,3": [ + "#000000" + ], + "2,4": [ + "#000000" + ], + "2,5": [ + "#000000" + ], + "1,5": [ + "#000000" + ], + "1,4": [ + "#000000" + ], + "1,3": [ + "#000000" + ], + "1,2": [ + "#000000" + ], + "1,1": [ + "#000000" + ] + }, + "goal": { + "possible_final_positions": [ + [ + 6, + 4 + ] + ], + "position": { + "image": "racing_flag", + "x": 6, + "y": 4 + } + }, + "robots": [ + { + "x": 3, + "y": 4, + "objects": {}, + "model": "classic", + "_orientation": 2, + "_is_leaky": true, + "_prev_x": 3, + "_prev_y": 3, + "_prev_orientation": 2, + "_trace_history": [ + { + "color": "seagreen", + "thickness": 2, + "prev_x": 140, + "x": 140, + "prev_y": 170, + "y": 210, + "grid_x": 3, + "grid_y": 3 + }, + { + "color": "seagreen", + "thickness": 2, + "prev_x": 140, + "x": 140, + "prev_y": 200, + "y": 210, + "grid_x": 3, + "grid_y": 3 + } + ], + "_trace_style": "default", + "_trace_color": "seagreen", + "__id": 80, + "initial_position": [ + 3, + 3 + ] + } + ], + "description": [ + "", + "

Lost in a maze

", + "

Reeborg was exploring a dark maze and the battery in its flashlight ran out.

", + "

Write a program using an if/elif/else statement so Reeborg can find the exit. ", + "The secret is to have Reeborg follow along the right edge of the maze, ", + "turning right if it can, going straight ahead if it ", + "can’t turn right, or turning left as a last resort.

", + "

What you need to know

", + "", + "DIFFICULTY4", + "" + ] +} diff --git a/006/task.py b/006/task.py new file mode 100644 index 0000000..3eddcf5 --- /dev/null +++ b/006/task.py @@ -0,0 +1,29 @@ +# Code to use at https://reeborg.ca/reeborg.html?lang=en&mode=python&menu=worlds%2Fmenus%2Freeborg_intro_en.json&name=Maze&url=worlds%2Ftutorial_en%2Fmaze1.json + +# Reeborg was exploring a dark maze and the battery in its flashlight ran out. + +# Write a program using an if/elif/else statement so Reeborg can find the exit. The secret is to have Reeborg follow along the right edge of the maze, turning right if it can, going straight ahead if it can’t turn right, or turning left as a last resort. + +# What you need to know + +# The functions move() and turn_left(). +# Either the test front_is_clear() or wall_in_front(), right_is_clear() or wall_on_right(), and at_goal(). +# How to use a while loop and if/elif/else statements. +# It might be useful to know how to use the negation of a test (not in Python). +def turn_right(): + turn_left() + turn_left() + turn_left() + +while front_is_clear(): + move() +turn_left() + +while not at_goal(): + if not wall_on_right(): + turn_right() + move() + elif not wall_in_front(): + move() + else: + turn_left() \ No newline at end of file