मैं कोशिश कर रहा हूँ बनाने के लिए एक 8 पहेली समस्या solver के विभिन्न एल्गोरिदम का उपयोग, इस तरह के रूप में वित्तीय पर्यवेक्षण बोर्ड,डीएफएस, एक* आदि. अजगर का उपयोग कर. जो उन लोगों के लिए परिचित नहीं हैं के साथ समस्या है, 8 पहेली समस्या से मिलकर एक खेल है 3 पंक्तियों और 3 कॉलम । आप स्थानांतरित कर सकते हैं खाली टाइल केवल क्षैतिज या खड़ी, 0 का प्रतिनिधित्व करता है, खाली टाइल. यह इस तरह दिखता है (मैं नहीं कर सका छवियों को जोड़ने के कारण मेरे खाते प्रतिष्ठा है।):
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(राज्य)" वापसी 2 अलग-अलग सूचियों में है, तो मैं चुन सकते हैं सबसे होनहार नोड पर निर्भर करता है, एल्गोरिथ्म) और इतने पर । लेकिन उत्पादन के अपने कोड के होते हैं, दो समान सूचियों.
यह मेरी उत्पादन: ([4, 0, 3, 1, 2, 5, 7, 8, 6], [4, 0, 3, 1, 2, 5, 7, 8, 6])
मैं क्या कर सकते हैं यह सुनिश्चित करने के लिए लौटने के 2 अलग-अलग सूचियों में? मेरा लक्ष्य है वापस करने के लिए सभी संभव कदम पर निर्भर करता है, जहाँ 0 है, का उपयोग कर find_new_nodes समारोह. क्षमा याचना अगर यह एक आसान सवाल है, यह मेरी पहली बार एक परियोजना के लिए यह जटिल है.