def createMovesRandomRestart(matrix): for i in range(10): rand = randint(1, 4) if rand == 1: up(matrix, matrix.index(0)) elif rand == 2: down(matrix, matrix.index(0)) elif rand == 3: left(matrix, matrix.index(0)) else: right(matrix, matrix.index(0)) return matrix
def createStatesManhatan(current_state): children = [] zeroPosition = current_state.zeroIndex() mtrx = current_state.getMatrix() # Up newArray = up(current_state.getMatrix(), zeroPosition) if newArray is not None: newState = State(newArray, depth = current_state.depth +1, parent = current_state) newState.f = manhathanDistance(newArray) children.append(newState) # Down newArray = down(current_state.getMatrix(), zeroPosition) if newArray is not None: newState = State(newArray, depth = current_state.depth +1, parent = current_state) newState.f = manhathanDistance(newArray) children.append(newState) # Left newArray = left(current_state.getMatrix(), zeroPosition) if newArray is not None: newState = State(newArray, depth = current_state.depth +1, parent = current_state) newState.f = manhathanDistance(newArray) children.append(newState) # Right newArray = right(current_state.getMatrix(), zeroPosition) if newArray is not None: newState = State(newArray, depth = current_state.depth +1, parent = current_state) newState.f = manhathanDistance(newArray) children.append(newState) return children