0

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

Code

# 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[0]
        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 by pyTony: text format fix

3
Contributors
2
Replies
28
Views
2 Years
Discussion Span
Last Post by juanpa_2510
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.