
Kitaláló
Kitaláló
kitalalo.pyDigitális kulúra
1. Szavak tárolása
szavak = [
"fuvola", "csirke", "adatok", "asztal", "fogoly", "bicska",
"farkas", "almafa", "babona", "gerinc", "dervis", "bagoly",
"ecetes", "angyal", "boglya"
]
Mit csinál?
- Egy listában tároljuk a 15 szót, amelyek közül a rejtett szó véletlenszerűen kiválasztásra kerül.
- Az összes szó kisbetűs és pontosan hat karakter hosszú, ahogy a feladat előírja.
2. Véletlenszerű szó kiválasztása és kezdőállapot beállítása
rejtett_szo = random.choice(szavak)
megfejtett = ["." for _ in range(6)] # A szó betűinek kitalálásához
tippek_szama = 0 # Tippelések száma
Mit csinál?
- random.choice(szavak):
- A Python random moduljának choice függvénye segítségével kiválasztunk egy véletlenszerű szót a szavak listából.
- Minden szónak azonos esélye van a kiválasztásra.
- megfejtett:
- Létrehozunk egy listát, amely hat darab pontot tartalmaz ([".", ".", ".", ".", ".", "."]).
- Ez reprezentálja a rejtett szó kitalált és még meg nem talált betűit.
- tippek_szama:
- Egy változó, amely számolja a felhasználói tippeket.
3. Játék indítása és bemutatás a játékosnak
print("Kezdődik a betűkitaláló játék!")
print("A szó pontosan hatbetűs. Írd be a tipped vagy add meg a 'stop' szót a játék leállításához!")
Mit csinál?
- Üdvözli a játékost, és tájékoztatja őt a játék menetéről.
- Emlékezteti a játékost, hogy hatbetűs szavakat adjon meg, vagy használja a "stop" szót a játék befejezéséhez.
4. A felhasználói tippek kezelése
while True:
tipp = input("Tipp: ").strip().lower()
if tipp == "stop":
break # Játék leállítása
if len(tipp) != 6:
print("Csak hatbetűs szavakat adhatsz meg!")
continue # Helytelen hosszúságú szó esetén visszalépés
Mit csinál?
- Tipp bekérése:
- A játékos beír egy szót.
- Az inputból eltávolítjuk a felesleges szóközöket (strip()), és kisbetűssé alakítjuk (lower()).
- "Stop" szó ellenőrzése:
- Ha a játékos a "stop" szót írja, a játék leáll.
- Hossz ellenőrzése:
- Ha a bekért szó nem hat betűből áll, a játékos hibaüzenetet kap, és visszatérhet egy új tippel.
5. Visszajelzés a tippre
tippek_szama += 1 # Tippelés számlálása
valasz = ""
for i in range(6):
if tipp[i] == rejtett_szo[i]:
megfejtett[i] = tipp[i] # Helyes betű
valasz += megfejtett[i]
if megfejtett[i] != "." else "."
print("Válasz:", valasz)
Mit csinál?
- Tippek számának növelése:
- Minden helyes tippelés esetén növeli a tippek_szama változót.
- Betűk ellenőrzése:
- Egy for ciklus segítségével végigmegy a rejtett szó karakterein (0-tól 5-ig).
- Ha a tipp aktuális betűje megegyezik a rejtett szó ugyanazon helyen lévő betűjével:
- Az adott helyre rögzíti a megtalált betűt a megfejtett listában.
- Ha nem egyezik, az adott helyen továbbra is pont (.) marad.
- Válasz összeállítása:
- Az aktuális állapotot (megfejtett) karakterláncként (valasz) állítja össze.
Válasz kiírása:
- Kiírja a játékosnak a jelenlegi állapotot, pl.: "b....a".
6. Győzelem ellenőrzése
if "".join(megfejtett) == rejtett_szo:
print(f"Gratulálok! Kitaláltad a szót {tippek_szama} tippeléssel.")
break
Mit csinál?
- Ellenőrzi, hogy a játékos minden betűt kitalált-e:
- "".join(megfejtett): Összefűzi a megfejtett listát szöveggé.
- Ha az így kapott szöveg megegyezik a rejtett szóval, a játékos nyert.
- Ha nyert, megjelenik egy gratuláló üzenet a tippelések számával együtt.
- A játék véget ér.
Példa futtatás bontásban:
Példemenet:
- Tipp: "fogoly"
- Helyes betűk: nincs.
- Válasz: "......".
- Tipp: "bicska"
- Helyes betűk: az összes.
- Válasz: "bicska".
Kimenet:
Kezdődik a betűkitaláló játék!
A szó pontosan hatbetűs. Írd be a tipped vagy add meg a 'stop' szót a játék leállításához!
Tipp: fogoly
Válasz: ......
Tipp: bicska
Válasz: bicska
Gratulálok! Kitaláltad a szót 2 tippeléssel.
A KÓD:
import random
szavak = [
"fuvola", "csirke", "adatok", "asztal", "fogoly", "bicska",
"farkas", "almafa", "babona", "gerinc", "dervis", "bagoly",
"ecetes", "angyal", "boglya"
]
rejtett_szo = random.choice(szavak)
megfejtett = ["." for _ in range(6)]
tippek_szama = 0
print("Kezdődik a betűkitaláló játék!")
print("A szó pontosan hatbetűs. Írd be a tipped vagy add meg a 'stop' szót a játék leállításához!")
while True:
tipp = input("Tipp: ").strip().lower()
if tipp == "stop":
break
if len(tipp) != 6:
print("Csak hatbetűs szavakat adhatsz meg!")
continue
tippek_szama += 1
valasz = ""
for i in range(6):
if tipp[i] == rejtett_szo[i]:
megfejtett[i] = tipp[i]
valasz += megfejtett[i]
if megfejtett[i] != "."
else "."
print("Válasz:", valasz)
if "".join(megfejtett) == rejtett_szo:
print(f"Gratulálok! Kitaláltad a szót {tippek_szama} tippeléssel.")
break