import random

besede = ('opica', 'ljubljana', 'avto', 'banana')

vislice = (
"""
+=====+
||    |
||
||
||
||        """,

"""
+=====+
||    |
||    O
||
||
||        """,

"""
+=====+
||    |
||    O
||    +
||
||        """,

"""
+=====+
||    |
||    O
||   -+
||
||        """,

"""
+=====+
||    |
||    O
||   -+-
||
||        """,

"""
+=====+
||    |
||    O
||   -+-
||     \\
||        """,

"""
+=====+
||    |
||    O
||   -+-
||   / \\
||        """,)

def zakrito(crke, beseda):
    """Vrni niz, ki prikazuje delno izpolnjeno besedo:
       Argumenti:
       beseda - skrivna beseda, ki jo uganjuje uporabnik
       crke - mnozica crk, ki jih je ze poskusil"""
    z = beseda[0] + ' '
    for i in beseda[1:-1]:
        if not (i in crke):
            z += '_ '
        else:
            z += i + ' '
    z += beseda[-1]
    return z

def je_uganil(crke, beseda):
    """Vrne True, ce je uporabnik s poskusi v mnozici
       crke uganil skrivno besedo beseda."""
    for c in beseda[1:-1]:
        if not (c in crke):
            return False
    return True

def ime_funkcije(x, y):
    # Ta funkcija nicesar ne vrne
    a = x + y
    

# Izberemo naključno besedo
skrivna = random.choice(besede)

pravilne = {skrivna[0], skrivna[-1]} # pravilne crke, ki jih je uganil
nepravilne = set() # nepravilni poskusi

while len(nepravilne) < len(vislice) and not je_uganil(pravilne, skrivna):
    print ('\f{0}\n\n{1}\n\nNeuspešni poskusi: {2}\n'.format(
        vislice[len(nepravilne)],
        zakrito(pravilne, skrivna),
        " ".join(nepravilne)))
    c = input ("Črka: ")
    if c in skrivna[1:-1]:
        pravilne.add(c)
    else:
        nepravilne.add(c)

if je_uganil(pravilne, skrivna):
    print ("Čestitke!")
else:
    print ("HA HA HA HA!")
