Gra wisielec - nie zatrzymuje się po odgadnięciu hasła

Gra wisielec - nie zatrzymuje się po odgadnięciu hasła
AL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Witam, pytanie poczatkujacego. Tworze minigre wisielec w pythonie i wszystko zdaje sie skladac w calosc . Poza tym , ze po odgadnieciu hasla nie zatrzymuje sie.

Kopiuj
lista = []
print ("Gra wisielec!")

print("Wpisz slowo do odgadniecia: ")
slowo=str(input())

dl = len(slowo)
pustemiejsca = "_"*dl
szanse = 5

print (pustemiejsca, "[", dl, "liter ] , (w tym mozliwa spacja).")
print ("Podaj literki by zgadnąć słowo.\n")



while True:
    print(f"Uzyte dotychczas literki to: {lista}")
    litera = str(input())
    lista.append(litera)

    if litera in slowo:
        for i in range(len(slowo)):

            if litera == slowo[i]:
                pustemiejsca_list = list(pustemiejsca)
                pustemiejsca_list[i] = slowo[i]
                pustemiejsca = "".join(pustemiejsca_list)

            if not "_" in pustemiejsca:
                print(f"Gratuluje! Wygrałeś pozostawiajac {szanse} szans. ")
                break           # dlaczego nie dziala?


    else:

        szanse = szanse - 1
        print ("Zła literka. Tracisz szansę (masz obecnie:", szanse, "szans)")
    print (pustemiejsca)
    if(szanse==0):
        print("Szukanym słowem było: " + slowo)
        break

Wydaje mi sie, ze ten break powinien zastopowac. Z gory dziekuje za pomoc i prosze o wyrozumialosc dla laika ;))

Delor
  • Rejestracja: dni
  • Ostatnio: dni
1

Chcesz przerwać pętlę while z linii 14 czy pętlę for z linii 20?

SE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 318
1
  1. input() nie wymaga rzutowania na str.
  2. można dodać zmienną guessed (odgadnięte)
Kopiuj
guessed = False
while not guessed: #zamiast True
....
           if not "_" in pustemiejsca:
                print(f"Gratuluje! Wygrałeś pozostawiajac {szanse} szans. ")
                guessed = True           # i to wyjdzie z pętli

Opcja 2:

Kopiuj
 if not "_" in pustemiejsca:
     print(f"Gratuluje! Wygrałeś pozostawiajac {szanse} szans. ")
     break           # dlaczego nie dziala?

Nie działa, bo jest w złym miejscu.

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.