내가 만들려고 하는 8 개의 퍼즐 문제 해결자는 다른 알고리즘을 사용하여,같은 BFS,DFS,A 가 포함되어 있습니다. using python. 에 대한 사람들에 익숙하지 않은 문제의 8 퍼즐 문제는 게임으로 구성된 3 행 3 열에 있습니다. 로 이동할 수 있습니다 빈 타일만 수평 또는 수직으로,0 은 빈 타일이 있습니다. 그것은 다음과 같습니다(수가 없었 추가 이미지 때문에 내 계정 reputation.):
https://miro.medium.com/max/679/1*yekmcvT48y6mB8dIcK967Q.png
initial_state = [0,1,3,4,2,5,7,8,6]
goal_state = [1,2,3,4,5,6,7,8,0]
def find_zero(state):
global loc_of_zero
loc_of_zero = (state.index(0))
def swap_positions(list, pos1, pos2):
first = list.pop(pos1)
second = list.pop(pos2-1)
list.insert(pos1,second)
list.insert(pos2,first)
return list
def find_new_nodes(state):
if loc_of_zero == 0:
right = swap_positions(initial_state,0,1)
left = swap_positions(initial_state,0,3)
return(right,left)
find_zero(initial_state)
print(find_new_nodes(initial_state))
문제는 나는 이것이 내가 원하는 기능"find_new_nodes(주)"return2 개의 다른 목록을 선택할 수 있습니다 가장 유망한 노드를 알고리즘에 따라니다)합니다. 하지만 출력이 나의 코드로 구성되어 있는 두 개의 동일한 목록입니다.
이것은 출력: ([4, 0, 3, 1, 2, 5, 7, 8, 6], [4, 0, 3, 1, 2, 5, 7, 8, 6])
나는 무엇을 할 수 있게 돌아 2 다른 나열? 나의 목표는 반환 가능한 모든 움직임에 따라 0,를 사용하 find_new_nodes 기능입니다. 죄송하는 경우 이 질문을,이번에 처음으로 만드는 프로젝트에 이 복잡합니다.