def findPath( self ): stack = Stack() self._markPath(self._startCell.row, self._startCell.col) stack.push(self._startCell) while not stack.isEmpty(): # debug stack.show() cur = _CellPosition(0, 0) cur.row = stack.peek().row cur.col = stack.peek().col print "current:" print (cur.row, cur.col) if cur.row == self._exitCell.row and \ cur.col == self._exitCell.col: print "findPath ok" return 1 if self.haveUp(cur.row, cur.col): cur.row = cur.row - 1 stack.push(cur) self._markPath(cur.row, cur.col) continue if self.haveRight(cur.row, cur.col): cur.col = cur.col + 1 stack.push(cur) self._markPath(cur.row, cur.col) continue if self.haveDown(cur.row, cur.col): cur.row = cur.row + 1 stack.push(cur) self._markPath(cur.row, cur.col) continue if self.haveLeft(cur.row, cur.col): cur.col = cur.col - 1 stack.push(cur) self._markPath(cur.row, cur.col) continue print "aaaaaaaaaaaaa" self._markTried(cur.row, cur.col) stack.pop() stack.show() print "findPath fail" return 0