def gamee_solver(firstnode): found = False allsteps = [] movesTree = Tree() movesTree.add_firstnode(firstnode) start_time = time.time() if getInversionCount(firstnode) % 2 != getInversionCount(goal) % 2: return allsteps, (time.time() - start_time) for node in movesTree.traverse(firstnode): if found == True: break if check_goal(node) == True: allsteps = findSteps(node, movesTree) found = True break else: for child in move(node): if check_goal(child) == True: allsteps = findSteps(node, movesTree) found = True break elif child not in movesTree.nodes(): movesTree.add_node(child, node) return allsteps, (time.time() - start_time)
def gamee_solver(firstnode): found = False allsteps = [] movesTree = Tree() movesTree.add_firstnode(firstnode) start_time = time.time() if getInversionCount(firstnode) %2 != getInversionCount(goal) %2: return allsteps, (time.time() - start_time) loopQueue = qu.PriorityQueue() loopQueue.put(mhd(firstnode)+firstnode) while not loopQueue.empty(): node = loopQueue.get() node = node[2:] if found == True: break if check_goal(node) == True: allsteps = findSteps(node, movesTree) found = True break else: for child in move(node): if check_goal(child) == True: allsteps = findSteps(node, movesTree) found = True break elif child not in movesTree.nodes(): movesTree.add_node(child, node) loopQueue.put(mhd(child)+child) return allsteps, (time.time() - start_time)
from tree import Tree import sys import matplotlib.pyplot as plt plt.rcdefaults() from numpy.f2py.auxfuncs import ischaracter puzzle = sys.argv[1] firstnode = puzzle.replace('_', ' ') goal = sys.argv[2].replace('_', ' ') movesTree = Tree() movesTree.add_firstnode(goal) def display(key): print("") print(key[:3]) print(key[3:6]) print(key[6:]) def check_goal(key): if key == goal: return True else: return False def move(key): pos = key.find(' ')