Kod nie pokazuje się po uruchomieniu, nie działa.

1

Dzień dobry, mam pilny problem, robię na infromatykę zadanie, grę wisielca, i mam taki kod, lecz nie działa, nie pokazuje się żaden błąd, tylko po prostu po uruchomieniu nic się nie pokazuje i kod się kończy, proszę o pomoc

from random import choice

def gra():
    dane = ["żyrafa","słoń","nosorożec","szympans","aligator"]
    haslo = choice(dane)
    odg = "#" * len(haslo)
    proby = 10
    while odg != haslo and proby > 0:
        print("Zgadnij hasło:", odg)
        print("Pozostalo prób:", proby)
        wisielec(proby)
        odp = input("Podaj literę:")

        if odp in haslo:
            for i in range(len(haslo)):
                if odp == haslo[i]:
                    odg = odg[:i] + odp + odg[i + 1]
        else:
            proby -= 1

        
        if haslo == odg:
            print("Gratulacje, haslo to-", haslo)
        else:
            print("Nie odgadnięto hasla:(", haslo)
            wisielec(0)


    def wisielec(proba):
        if proba == 9:
            print("===========")
        elif proba == 8:
            print("|")
            print("|")
            print("|")
            print("|")
            print("|")
            print("==========")
        elif proba == 7:
            print("+===+")
            print("|")
            print("|")
            print("|")
            print("|")
            print("|")
            print("==========")
        elif proba == 6:
            print("+===+")
            print("|   |")
            print("|")
            print("|")
            print("|")
            print("|")
            print("==========")
        elif proba == 5:
            print("+===+")
            print("|   |")
            print("|   0")
            print("|")
            print("|")
            print("|")
            print("==========")
        elif proba == 4:
            print("+===+")
            print("|   |")
            print("|   0")
            print("|   |")
            print("|")
            print("|")
            print("==========")
        elif proba == 3:
            print("+===+")
            print("|   |")
            print("|   0")
            print("|  /|")
            print("|")
            print("|")
            print("==========")
        elif proba == 2:
            print("+===+")
            print("|   |")
            print("|   0")
            print("|  /|\\")
            print("|  /")
            print("|")
            print("==========")
        elif proba == 1:
            print("+===+")
            print("|   |")
            print("|   0")
            print("|  /|\\")
            print("|  /")
            print("|")
            print("==========")
        elif proba == 0:
            print("+===+")
            print("|   |")
            print("|   0")
            print("|  /|\\")
            print("|  / \\")
            print("|")
            print("==========")
            
        print(gra())
1

na początek wykasuj spacje przed print(gra()) i zobacz czy pomoże

0

wykasowałem, coś ruszyło do przodu ale takie wyskakuje w konsoli
nie wiem co jest nie tak z linią 11 --------

Zgadnij hasło: ####
Pozostalo prób: 10
Traceback (most recent call last):
  File "/home/main.py", line 104, in <module>
    print(gra())
  File "/home/main.py", line 11, in gra
    wisielec(proby)
UnboundLocalError: local variable 'wisielec' referenced before assignment


...Program finished with exit code 1
Press ENTER to exit console.
1

ach ok wszystko od def wisielec(proba) musi być przesunięte w lewo o cztery spacje. Wciąż ciało funkcji ma być wcięte, ale we wszystkich liniach musi ubyć cztery spacje. Zaczynając od def wisielec(proba).

0
from random import choice

def gra():
    dane = ["żyrafa","słoń","nosorożec","szympans","aligator"]
    haslo = choice(dane)
    odg = "#" * len(haslo)
    proby = 10
    while odg != haslo and proby > 0:
        print("Zgadnij hasło:", odg)
        print("Pozostalo prób:", proby)
        wisielec(proby)
        odp = input("Podaj literę:")

        if odp in haslo:
            for i in range(len(haslo)):
                if odp == haslo[i]:
                    odg = odg[:i] + odp + odg[i + 1]
        else:
            proby -= 1


        if haslo == odg:
            print("Gratulacje, haslo to-", haslo)
        else:
            print("Nie odgadnięto hasla:(", haslo)
            wisielec(0)


def wisielec(proba):
	if proba == 9:
		print("===========")
	elif proba == 8:
		print("|")
		print("|")
		print("|")
		print("|")
		print("|")
		print("==========")
	elif proba == 7:
		print("+===+")
		print("|")
		print("|")
		print("|")
		print("|")
		print("|")
		print("==========")
	elif proba == 6:
		print("+===+")
		print("|   |")
		print("|")
		print("|")
		print("|")
		print("|")
		print("==========")
	elif proba == 5:
		print("+===+")
		print("|   |")
		print("|   0")
		print("|")
		print("|")
		print("|")
		print("==========")
	elif proba == 4:
		print("+===+")
		print("|   |")
		print("|   0")
		print("|   |")
		print("|")
		print("|")
		print("==========")
	elif proba == 3:
		print("+===+")
		print("|   |")
		print("|   0")
		print("|  /|")
		print("|")
		print("|")
		print("==========")
	elif proba == 2:
		print("+===+")
		print("|   |")
		print("|   0")
		print("|  /|\\")
		print("|  /")
		print("|")
		print("==========")
	elif proba == 1:
		print("+===+")
		print("|   |")
		print("|   0")
		print("|  /|\\")
		print("|  /")
		print("|")
		print("==========")
	elif proba == 0:
		print("+===+")
		print("|   |")
		print("|   0")
		print("|  /|\\")
		print("|  / \\")
		print("|")
		print("==========")

print(gra())

0
Radosław Głębicki napisał(a):
from random import choice

def gra():
    dane = ["żyrafa","słoń","nosorożec","szympans","aligator"]
    haslo = choice(dane)
    odg = "#" * len(haslo)
    proby = 10
    while odg != haslo and proby > 0:
        print("Zgadnij hasło:", odg)
        print("Pozostalo prób:", proby)
        wisielec(proby)
        odp = input("Podaj literę:")

        if odp in haslo:
            for i in range(len(haslo)):
                if odp == haslo[i]:
                    odg = odg[:i] + odp + odg[i + 1]
        else:
            proby -= 1


        if haslo == odg:
            print("Gratulacje, haslo to-", haslo)
        else:
            print("Nie odgadnięto hasla:(", haslo)
            wisielec(0)


def wisielec(proba):
	if proba == 9:
		print("===========")
	elif proba == 8:
		print("|")
		print("|")
		print("|")
		print("|")
		print("|")
		print("==========")
	elif proba == 7:
		print("+===+")
		print("|")
		print("|")
		print("|")
		print("|")
		print("|")
		print("==========")
	elif proba == 6:
		print("+===+")
		print("|   |")
		print("|")
		print("|")
		print("|")
		print("|")
		print("==========")
	elif proba == 5:
		print("+===+")
		print("|   |")
		print("|   0")
		print("|")
		print("|")
		print("|")
		print("==========")
	elif proba == 4:
		print("+===+")
		print("|   |")
		print("|   0")
		print("|   |")
		print("|")
		print("|")
		print("==========")
	elif proba == 3:
		print("+===+")
		print("|   |")
		print("|   0")
		print("|  /|")
		print("|")
		print("|")
		print("==========")
	elif proba == 2:
		print("+===+")
		print("|   |")
		print("|   0")
		print("|  /|\\")
		print("|  /")
		print("|")
		print("==========")
	elif proba == 1:
		print("+===+")
		print("|   |")
		print("|   0")
		print("|  /|\\")
		print("|  /")
		print("|")
		print("==========")
	elif proba == 0:
		print("+===+")
		print("|   |")
		print("|   0")
		print("|  /|\\")
		print("|  / \\")
		print("|")
		print("==========")

print(gra())

przesunięte, ale coś takiego wyskakuje, początek normalny, a potem już nie, i wywala kod ---------
Zgadnij hasło: #### Pozostalo prób: 10 Podaj literę:k Nie odgadnięto hasla:( słoń +===+ | | | 0 | /|
| /
| ========== Zgadnij hasło: #### Pozostalo prób: 9 =========== Podaj literę:

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.