All pastes #22261 Raw Edit

Stuff

public text v1 · immutable
#22261 ·published 2005-09-07 03:20 UTC
rendered paste body
#____________________________________________________________________________
# 8-Puzzle Problem using BFS, DFS, iterative deepening, best-first-search, A*
import search
from search import *

class Eight_Puzzle(Problem):

    def __init__(self, puzzle = None, dict = None):
        self.goal = (0, 1, 2, 3, 4, 5, 6, 7, 8)
        self.puzzle = puzzle
        self.dict = dict or {}

    def successor(self):
        next_stage = None
        if 0 in (self.puzzle[0]):
            possible1 = (self.puzzle(1),self.puzzle(0),self.puzzle(2),self.puzzle(3),self.puzzle(4),self.puzzle(5),self.puzzle(6),self.puzzle(7),self.puzzle(8))
            possible2 = (self.puzzle(3),self.puzzle(1),self.puzzle(2),self.puzzle(0),self.puzzle(4),self.puzzle(5),self.puzzle(6),self.puzzle(7),self.puzzle(8))
            next_stage = (possible1, possible2)
            return next_stage

        if 0 in (self.puzzle[1]):
            possible1 = (self.puzzle(1),self.puzzle(0),self.puzzle(2),self.puzzle(3),self.puzzle(4),self.puzzle(5),self.puzzle(6),self.puzzle(7),self.puzzle(8))
            possible2 = (self.puzzle(0),self.puzzle(2),self.puzzle(1),self.puzzle(3),self.puzzle(4),self.puzzle(5),self.puzzle(6),self.puzzle(7),self.puzzle(8))
            possible3 = (self.puzzle(0),self.puzzle(4),self.puzzle(2),self.puzzle(3),self.puzzle(1),self.puzzle(5),self.puzzle(6),self.puzzle(7),self.puzzle(8))
            next_stage = (possible1, possible2, possible3)
            return next_stage