I have to complete a project which have an text file and finds path between 2 actors(kevin bacin game) that you input by going through the movies in the text file.
For example if the text file is:
Apollo13 Kevin Bacon Tom Hanks Gary sinise HollowMan Elisabeth Shue Kevin Bacon Josh Brolin AFewGoodMen Tom Cruise Demi Moore Jack Nicholson Kevin Bacon OneCrazySummer John Cusack Demi Moore DaVinciCode Tom Hanks Ian McKellen Audrey Tautou
# Class for node class node: slots = ('movie','neighbor') # Node constructor def mkNode(name): n = node() n.name = name n.neighbor =  return n # Find if node is in the graph def findNode(nodelist, name): for n in nodelist: if n.name == name: return n #Creates graph def loadGraphFile(file): graph =  for line in file: contents = line.split() movieName = contents actorNames = [contents[i]+ " " + contents[i+1] for i in range(1, len(contents), 2)] movieNode = findNode(graph, movieName) if movieNode == None: movieNode = mkNode(movieName) graph.append(movieNode) for actorName in actorNames: actorNode = findNode(graph,actorName) if actorNode == None: actorNode = mkNode(actorName) graph.append(actorNode) actorNode.neighbor.append(movieNode) movieNode.neighbor.append(actorNode) return graph def loadGraphFileName(file = "C:/Users/******/Desktop"): return loadGraphFile(open(file)) # Searches graph for path def search(start,goal,visited): if start == goal: return [start] else: for n in start.neighbor: content = line.split() for x in range(0,(len(content)-1),2): z = (content[x] + content[x+1]) if not z in visited: visited.append(z) path = search(z,goal,visited) if path != None: return [start] + path visited.append(x)
Edited 2 Years Ago by pyTony: text format fix