示例#1
0
文件: gac.py 项目: perchrib/NTNU
def main():

    allVertexes, t_gui = gui.getVertexes()
    sys.setrecursionlimit(5000)
    k = int(sys.argv[2])
    graph = gui.Graph(None, allVertexes)
    for vertex in graph.graph:
        vertex.domain = [
            'Green', 'Red', 'Blue', 'Yellow', 'Black', 'Brown', 'Pink', 'Cyan',
            'Magenta', 'Orange'
        ][:k]
    csp = CSP(graph, t_gui)
    csp.initialice(graph.graph)
    while not csp.isFinish():
        a_star = A_star('astar', graph, csp)
        print "ASTAR STARTED"
        a_star.mainLoop()

    for v in csp.graph:
        print v.domain
        color = v.domain
        csp.gui.canvas.itemconfig('a' + str(v.index), fill=color)

    print "IS CORRECT: ", csp.is_correct()
    t_gui.mainloop()
示例#2
0
文件: board.py 项目: perchrib/NTNU
def main():
    isScenario = raw_input("Scenarios? y=>YES or ENTER=> NO : ")
    if isScenario:
        scenario = input("type scenario 0-7: ")
        tempScenario = case[scenario]
    else:
        dim = input("Dimension: ")
        start = input("Start Node: ")
        end = input("End Node: ")
        tempScenario = [dim, start, end]
        if_obstacle = raw_input("Obstacle?,y=>YES ENTER=> NO: ")
        while if_obstacle:
            obstacle = input("Obstacle: start,end,breadth,height: ")
            tempScenario.append(obstacle)
            if_obstacle = raw_input("Contiunue? y=>YES, ENTER=>NO")

    type_of_search = raw_input("type astar, bfs or dfs: ")
    isGui = raw_input("With GUI? y or ENTER=> NO: ")
    if isGui:
        speed = raw_input(
            "Choose speed: f=>FAST :: MEDIUM=>m :: SLOW=>s :: VERY SLOW=>vs ")
        if speed == 'f':
            speed = 5
        elif speed == 'm':
            speed = 100
        elif speed == 's':
            speed = 500
        elif speed == 'vs':
            speed = 2000

    allObstacles = []

    for obstacles in tempScenario[3:]:
        allObstacles.append(obstacles)

    board = Board(tempScenario[0], tempScenario[1], tempScenario[2])
    board.createBoard()
    addObstacles(board, allObstacles)
    if isGui:
        draw = Draw(board)
        a_star = A_star(board, draw, type_of_search, speed)

    else:
        a_star = A_star(board, False, type_of_search, None)
    start = clock()
    a_star.mainLoop()
    stop = clock()
    print round((stop - start) * 1000, 2), "ms"
    if isGui:
        draw.mainloop()
示例#3
0
文件: gac.py 项目: perchrib/NTNU
def main():
    variables, rows, cols, gui_draw = gui.getVariables()
    node = gui.Node(None, variables)

    csp = CSP(node)
    csp.initialice(node.variables)

    while not csp.isFinish():
        #csp.initialice(node.variables)
        a_star = A_star('astar', node, csp)
        print "Astar Started: "
        a_star.mainLoop()

    finishedRows = []
    for key in csp.variables:
        variable = variables[key]
        if 'row' in key:
            finishedRows.append(variable)
            if variable.index[1] > 9:
                print "key: ", variable.index, "domain: ", variable.domain, " len: ", len(
                    variable.domain), "fill: ", variable.fill
            else:
                print "key: ", variable.index, " domain: ", variable.domain, " len: ", len(
                    variable.domain), "fill: ", variable.fill

        else:
            if variable.index[1] > 9:
                print "key: ", variable.index, "domain: ", variable.domain, " len: ", len(
                    variable.domain), "fill: ", variable.fill
            else:
                print "key: ", variable.index, " domain: ", variable.domain, " len: ", len(
                    variable.domain), "fill: ", variable.fill

    finishedRows.reverse()
    for variable in finishedRows:
        for i in range(cols):

            gui_draw.canvas.itemconfig(
                'a' + str(variable.index[1]) + '-' + str(i),
                fill=gui.setColor(variable.domain[0][i]))

    gui_draw.after(5, gui_draw.update())
    gui_draw.mainloop()