Пример #1
0
 def setUp(self):
     self.eightInitial = PuzzleState((3, 3), [2, 8, 3, 1, 6, 4, 7, None, 5],
                                     None, None)
     self.eightGoal = PuzzleState((3, 3), [None, 2, 3, 1, 8, 6, 7, 5, 4],
                                  None, None)
     self.eightSolver = PuzzleSolver(self.eightInitial, self.eightGoal)
     self.redundantSolver = PuzzleSolver(self.eightInitial,
                                         self.eightInitial)
     self.cardinal = {
         "north": "up",
         "south": "down",
         "west": "left",
         "east": "right",
     }
Пример #2
0
    def testMoveFunctions(self):
        controlState = PuzzleState(dimensions=(3, 3),
                                   gamestate=[1, 2, 3, 4, None, 5, 6, 7, 8],
                                   parent=None,
                                   lastMove=None)
        m = '''Move {0} returned an incorrect PuzzleState (or None). Check your move{0} method.

Input:
{1}

Observed:
{2}

Expected:
{3}'''

        upState = PuzzleState(dimensions=(3, 3),
                              gamestate=[1, None, 3, 4, 2, 5, 6, 7, 8],
                              parent=None,
                              lastMove=None)
        observedUpState = controlState.moveUp()
        message = m.format("Up", controlState, observedUpState, upState)
        self.assertEquals(upState, observedUpState, message)

        downState = PuzzleState(dimensions=(3, 3),
                                gamestate=[1, 2, 3, 4, 7, 5, 6, None, 8],
                                parent=None,
                                lastMove=None)
        observedDownState = controlState.moveDown()
        message = m.format("Down", controlState, observedDownState, downState)
        self.assertEquals(downState, observedDownState, message)

        leftState = PuzzleState(dimensions=(3, 3),
                                gamestate=[1, 2, 3, None, 4, 5, 6, 7, 8],
                                parent=None,
                                lastMove=None)
        observedLeftState = controlState.moveLeft()
        message = m.format("Left", controlState, observedLeftState, leftState)
        self.assertEquals(leftState, observedLeftState, message)

        rightState = PuzzleState(dimensions=(3, 3),
                                 gamestate=[1, 2, 3, 4, 5, None, 6, 7, 8],
                                 parent=None,
                                 lastMove=None)
        observedRightState = controlState.moveRight()
        message = m.format("Right", controlState, observedRightState,
                           rightState)
        self.assertEquals(rightState, observedRightState, message)
Пример #3
0
 def setUp(self):
     self.fifteenPuzzle = PuzzleState(dimensions=(4, 4),
                                      gamestate=[
                                          1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
                                          12, 13, 14, 15, None
                                      ],
                                      parent=None,
                                      lastMove=None)
Пример #4
0
    def setUp(self):

        initialGamestate = [
            1, 2, 3, 4, 5, None, 6, 8, 9, 10, 7, 12, 13, 14, 11, 15
        ]

        goalGamestate = [
            1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, None
        ]

        self.fifteenInitial = PuzzleState((4, 4), initialGamestate, None, None)
        self.fifteenGoal = PuzzleState((4, 4), goalGamestate, None, None)
        self.fifteenSolver = PuzzleSolver(self.fifteenInitial,
                                          self.fifteenGoal)
        self.redundantSolver = PuzzleSolver(self.fifteenInitial,
                                            self.fifteenInitial)
        self.cardinal = {
            "north": "up",
            "south": "down",
            "west": "left",
            "east": "right",
        }
Пример #5
0
 def setUp(self):
     self.eightPuzzle = PuzzleState(
         dimensions=(3, 3),
         gamestate=[1, 2, 3, 4, 5, 6, 7, 8, None],
         parent=None,
         lastMove=None)