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

Vissza