From f2806a201b9026bcb5eed6eac4e3aadff3f27a8f Mon Sep 17 00:00:00 2001 From: Tanguy Deleplanque Date: Fri, 13 Jun 2025 10:50:23 +0200 Subject: [PATCH] day 6 --- 006/resources/problem_world.json | 248 ++++++++++++++++++++++++++++++ 006/resources/problem_world2.json | 248 ++++++++++++++++++++++++++++++ 006/resources/problem_world3.json | 248 ++++++++++++++++++++++++++++++ 006/task.py | 29 ++++ 4 files changed, 773 insertions(+) create mode 100644 006/resources/problem_world.json create mode 100644 006/resources/problem_world2.json create mode 100644 006/resources/problem_world3.json create mode 100644 006/task.py 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