def __insert_paths(self): treated_cells = 1 pos = Position(2, 2) self.__set_treated(pos) while treated_cells < self.cells: self.bar.update(treated_cells) # print('Pos: {} {}'.format(pos.col, pos.row)) # self.show() while self.__in_dead_end(pos): # self.show() pos = self.__step_back(pos) # print('Stepping back to {} {}'.format(pos.col, pos.row)) dir = Direction() if not self.__behind_wall_is_treated(pos, dir): pos.change(dir) self.__break_wall(pos) pos.change(dir) self.__set_treated(pos) treated_cells += 1 return self.maze
def __behind_wall_is_treated(self, pos, dir): check_pos = Position(col=pos.col, row=pos.row, direction=dir) check_pos.change(dir) return self.__get_field(check_pos).is_treated()