diff options
author | pmoxhay <pmoxhay@earthlink.net> | 2009-06-05 11:43:37 (GMT) |
---|---|---|
committer | pmoxhay <pmoxhay@earthlink.net> | 2009-06-05 11:43:37 (GMT) |
commit | 89d634579e872666a0b536a94bc406dbf1715ce2 (patch) | |
tree | c58c10bb0dbefbd5d3ea74c518c5ca0caf5c8143 /cuttingproblem.py | |
parent | b9f59225110d47cb04962d7e482c7738bdbeffe3 (diff) |
Doesn't repeat recently used problems.
Fix bug with line segment drops getting rejected.
Progresses to next level once >, <, = problems
for a given level are solved correctly.
Diffstat (limited to 'cuttingproblem.py')
-rw-r--r-- | cuttingproblem.py | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/cuttingproblem.py b/cuttingproblem.py index 2185c78..e846d62 100644 --- a/cuttingproblem.py +++ b/cuttingproblem.py @@ -62,6 +62,8 @@ class CuttingProblem(Problem): self.letter1 = letter1 self.letter2 = letter2 + self.problem_number = -1 + self.generate_problem() self.show_problem() @@ -126,10 +128,11 @@ class CuttingProblem(Problem): (original_angle1, original_angle2) = (0, 0) # The total number of problems. - n_problems = 12 + self.n_problems = 12 # Choose a random problem. - problem_number = random.randrange(0,n_problems) + while (self.problem_number in self.container.recently_used): + self.problem_number = random.randrange(0, self.n_problems) # Uncomment to test a particular problem. #problem_number = 0 @@ -138,76 +141,76 @@ class CuttingProblem(Problem): self.sub_shapes2_points = [ ] # Define the various problems. - if problem_number == 0: + if self.problem_number == 0: object1 = SQUARE_SHAPE object2 = TRIANGLE_SHAPE (original_position1, original_position2) = ( Vector (250, 250), Vector(500, 600) ) self.sub_shapes1_points = [ [ Vector(0, 0), Vector(200, 0), Vector(0, 200) ], [ Vector(200, 0), Vector(200, 200), Vector(0, 200) ] ] self.sub_shapes2_points = [ [ Vector(0, 0), Vector(200, -200), Vector(200, 0) ], [ Vector(200, 0), Vector(200, -200), Vector(400, 0) ] ] - elif problem_number == 1: + elif self.problem_number == 1: object1 = LARGE_SQUARE_SHAPE object2 = TRIANGLE_SHAPE (original_position1, original_position2) = ( Vector (250, 250), Vector(500, 600) ) self.sub_shapes1_points = [ [ Vector(0, 0), Vector(250, 0), Vector(0, 250) ], [ Vector(250, 0), Vector(250, 250), Vector(0, 250) ] ] self.sub_shapes2_points = [ [ Vector(0, 0), Vector(200, -200), Vector(200, 0) ], [ Vector(200, 0), Vector(200, -200), Vector(400, 0) ] ] - elif problem_number == 2: + elif self.problem_number == 2: object1 = SQUARE_SHAPE object2 = LARGE_TRIANGLE_SHAPE (original_position1, original_position2) = ( Vector (250, 250), Vector(500, 600) ) self.sub_shapes1_points = [ [ Vector(0, 0), Vector(200, 0), Vector(0, 200) ], [ Vector(200, 0), Vector(200, 200), Vector(0, 200) ] ] self.sub_shapes2_points = [ [ Vector(0, 0), Vector(250, -250), Vector(250, 0) ], [ Vector(250, 0), Vector(250, -250), Vector(500, 0) ] ] - elif problem_number == 3: + elif self.problem_number == 3: object1 = SQUARE_SHAPE object2 = RECTANGLE_SHAPE (original_position1, original_position2) = ( Vector (250, 250), Vector(500, 600) ) self.sub_shapes1_points = [ [ Vector(0, 0), Vector(100, 0), Vector(100, 200), Vector(0, 200) ], [ Vector(100, 0), Vector(200, 0), Vector(200, 200), Vector(100, 200) ] ] self.sub_shapes2_points = [ [ Vector(0, 0), Vector(200, 0), Vector(200, 100), Vector(0, 100) ], [ Vector(200, 0), Vector(400, 0), Vector(400, 100), Vector(200, 100) ] ] - elif problem_number == 4: + elif self.problem_number == 4: object1 = SQUARE_SHAPE object2 = SMALL_RECTANGLE_SHAPE (original_position1, original_position2) = ( Vector (250, 250), Vector(500, 600) ) self.sub_shapes1_points = [ [ Vector(0, 0), Vector(100, 0), Vector(100, 200), Vector(0, 200) ], [ Vector(100, 0), Vector(200, 0), Vector(200, 200), Vector(100, 200) ] ] self.sub_shapes2_points = [ [ Vector(0, 0), Vector(175, 0), Vector(175, 75), Vector(0, 75) ], [ Vector(175, 0), Vector(350, 0), Vector(350, 75), Vector(175, 75) ] ] - elif problem_number == 5: + elif self.problem_number == 5: object1 = SQUARE_SHAPE object2 = LARGE_RECTANGLE_SHAPE (original_position1, original_position2) = ( Vector (250, 250), Vector(500, 600) ) self.sub_shapes1_points = [ [ Vector(0, 0), Vector(100, 0), Vector(100, 200), Vector(0, 200) ], [ Vector(100, 0), Vector(200, 0), Vector(200, 200), Vector(100, 200) ] ] self.sub_shapes2_points = [ [ Vector(0, 0), Vector(225, 0), Vector(225, 125), Vector(0, 125) ], [ Vector(225, 0), Vector(450, 0), Vector(450, 125), Vector(225, 125) ] ] - elif problem_number == 6: + elif self.problem_number == 6: object1 = PARALLELOGRAM_SHAPE object2 = TRIANGLE_SHAPE (original_position1, original_position2) = ( Vector (250, 250), Vector(500, 600) ) self.sub_shapes1_points = [ [ Vector(0, 0), Vector(200, 0), Vector(200, 200) ], [ Vector(200, 0), Vector(400, 200), Vector(200, 200) ] ] self.sub_shapes2_points = [ [ Vector(0, 0), Vector(200, -200), Vector(200, 0) ], [ Vector(200, 0), Vector(200, -200), Vector(400, 0) ] ] - elif problem_number == 7: + elif self.problem_number == 7: object1 = PARALLELOGRAM_SHAPE object2 = LARGE_TRIANGLE_SHAPE (original_position1, original_position2) = ( Vector (250, 250), Vector(500, 600) ) self.sub_shapes1_points = [ [ Vector(0, 0), Vector(200, 0), Vector(200, 200) ], [ Vector(200, 0), Vector(400, 200), Vector(200, 200) ] ] self.sub_shapes2_points = [ [ Vector(0, 0), Vector(250, -250), Vector(250, 0) ], [ Vector(250, 0), Vector(250, -250), Vector(500, 0) ] ] - elif problem_number == 8: + elif self.problem_number == 8: object1 = PARALLELOGRAM_SHAPE object2 = SMALL_TRIANGLE_SHAPE (original_position1, original_position2) = ( Vector (250, 250), Vector(500, 600) ) self.sub_shapes1_points = [ [ Vector(0, 0), Vector(200, 0), Vector(200, 200) ], [ Vector(200, 0), Vector(400, 200), Vector(200, 200) ] ] self.sub_shapes2_points = [ [ Vector(0, 0), Vector(175, -175), Vector(175, 0) ], [ Vector(175, 0), Vector(175, -175), Vector(350, 0) ] ] - elif problem_number == 9: + elif self.problem_number == 9: object1 = TRAPEZOID_SHAPE object2 = RECTANGLE_2_SHAPE (original_position1, original_position2) = ( Vector (250, 250), Vector(500, 600) ) self.sub_shapes1_points = [ [ Vector(0, 0), Vector(0, 150), Vector(-150, 150) ], [ Vector(0, 0), Vector(150, 0), Vector(300, 150), Vector(0, 150) ] ] self.sub_shapes2_points = [ [ Vector(0, 0), Vector(150,0), Vector(300, 150), Vector(0, 150)], [ Vector(300, 150), Vector(150, 150), Vector(150, 0) ] ] - elif problem_number == 10: + elif self.problem_number == 10: object1 = TRAPEZOID_SHAPE object2 = LARGE_RECTANGLE_2_SHAPE (original_position1, original_position2) = ( Vector (250, 250), Vector(500, 600) ) self.sub_shapes1_points = [ [ Vector(0, 0), Vector(0, 150), Vector(-150, 150) ], [ Vector(0, 0), Vector(150, 0), Vector(300, 150), Vector(0, 150) ] ] self.sub_shapes2_points = [ [ Vector(0, 0), Vector(175,0), Vector(350, 175), Vector(0, 175)], [ Vector(175, 0), Vector(350, 175), Vector(175, 175) ] ] - elif problem_number == 11: + elif self.problem_number == 11: object1 = TRAPEZOID_SHAPE object2 = SMALL_RECTANGLE_2_SHAPE (original_position1, original_position2) = ( Vector (250, 250), Vector(500, 600) ) |