Beispiel #1
0
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(' ')