Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/cuttingproblem.py
diff options
context:
space:
mode:
authorpmoxhay <pmoxhay@earthlink.net>2009-06-05 11:43:37 (GMT)
committer pmoxhay <pmoxhay@earthlink.net>2009-06-05 11:43:37 (GMT)
commit89d634579e872666a0b536a94bc406dbf1715ce2 (patch)
treec58c10bb0dbefbd5d3ea74c518c5ca0caf5c8143 /cuttingproblem.py
parentb9f59225110d47cb04962d7e482c7738bdbeffe3 (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.py31
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) )