Infotanar.eu - Akasztófa játék

Kód

# Akasztófa játék
# YT: https://www.youtube.com/watch?v=bsEVmO-dg5g

import random

# Előre megadott szólista
szavak = ["alma", "iskola", "körte", "szilva", "kert", "lakás", "osztály", "asztal", "ablak", "tégla"]

# Véletlenszerűen kiválasztunk egy szót a listából
kivalasztott_szo = random.choice(szavak)

# A felhasználónak megjelenő üres karakterek (pl. _ _ _ _ _)
kitalalando = ["_"] * len(kivalasztott_szo) # létrehozunk egy listát, amiben annyi _ van, ahány karakterből áll a szó maga
max_probalkozas = 10
probalkozasok_szama = 0
tippelt_betuk = set()

print("Akasztófa játék indul!")
print(" ".join(kitalalando))

# Amíg vannak próbálkozási lehetőségek és nem találták ki a szót
while probalkozasok_szama < max_probalkozas and "_" in kitalalando:
    tipp = input("Tippelj egy betűt: ").lower()

    # Ellenőrizzük, hogy a tippet még nem adta-e meg korábban
    if tipp in tippelt_betuk:
        print("Ezt a betűt már próbáltad, tippelj egy másikat!")
        continue
    else:
        tippelt_betuk.add(tipp)

    # Ha a tippelt betű benne van a szóban
    if tipp in kivalasztott_szo:
        print("Talált!")
        # Frissítjük a kitalált betűk listáját
        for index, betu in enumerate(kivalasztott_szo):
            if betu == tipp:
                kitalalando[index] = tipp
    else:
        print("Nem talált.")
        probalkozasok_szama += 1
        print(f"Próbálkozások száma: {probalkozasok_szama}/{max_probalkozas}")

    # Megjelenítjük az aktuális állapotot
    print(" ".join(kitalalando))

# Játék vége: ha kitalálták a szót
if "_" not in kitalalando:
    print(f"Gratulálok, eltaláltad! A szó: {kivalasztott_szo}")
else:
    print(f"Vesztettél! A keresett szó: {kivalasztott_szo}")