On 2019-01-09 09:53, jsk...@gmail.com wrote:
I am working on Kevin Bacon game.

I have "movies.txt" text file that looks like:

Apollo 13 (1995);Bill Paxton;Tom Hanks;Kevin Bacon
Begyndte ombord, Det (1937);Aage Schmidt;Valso Holm
Bersaglio mobile (1967);Dana Young;Bebe Drake
Bezottsovshchina (1976);Yelena Maksimova;Lev Prygunov
Dark, The (1979);Angelo Rossitto;William Devane
etc,...

So in first row we have movie name, and in other rows we have actors for that 
movie.

I am trying to make Kevin Bacon game with breath-first search.

My source code (Python 3.X):



class cvor:
     __slots__ = ('ime','susjed')
def kreiranjeCvora(ime):
     n = cvor()
     n.ime = ime
     n.susjed = []
     return n

def pronadiCvor(cvorlist, ime):
     for n in cvorlist:
         if n.ime == ime:
             return n
It would be better if a function that returns a value _always_ explicitly returns a value:

     return None

def ucitajGraf(file):
     graph = []
     for line in file:

These lines:

         imeGlumaca = []
         mojaLinija = line.split(";")
         imeFilma = mojaLinija[0]
         for i in range (1,len(mojaLinija)):
             imeGlumaca.insert(len(imeGlumaca), mojaLinija[i])

do the same as:

         mojaLinija = line.split(";")
         imeFilma = mojaLinija[0]
         imeGlumaca = mojaLinija[1 : ]

         cvorFilm = pronadiCvor(graph, imeFilma)
         if cvorFilm == None:
             cvorFilm = kreiranjeCvora(imeFilma)
             graph.append(cvorFilm)
         for glumac in imeGlumaca:
             glumacCvor = pronadiCvor(graph,glumac)
             if glumacCvor == None:
                 glumacCvor = kreiranjeCvora(glumac)
                 graph.append(glumacCvor)
             glumacCvor.susjed.append(cvorFilm)
             cvorFilm.susjed.append(glumacCvor)
     return graph


def main():

     f = open("movies.txt")
     graf = ucitajGraf(f)

It's recommended to use 'with':

     with open("movies.txt") as f:
         graf = ucitajGraf(f)

because it'll close the file immediately.

     print (graf)
main()


My problem is that when I print graph with "print (graph)" I am getting:

"[<__main__.cvor object at 0x000001475275EBE0>, <__main__.cvor object at 0x000001475275EEF0>, 
<__main__.cvor object at 0x000001475275EFD0>, <__main__.cvor object at 0x000001475275EE80>, <__main__.cvor 
object at 0x000001475275EB70>, <__main__.cvor object at 0x000001475275ED68>,..."

And I know why but I don't know how to fix it and get "name" there.

What would be the best way to perform breath-first search between two entered 
names?

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to