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()
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()
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()