Ha szórakoztató figyelemelterelésre vágyik, a szózavar jó választás játékhoz és programozáshoz egyaránt. A Python Tkinter moduljával megépítheted és játszhatod ezt a gyerekkori játékot egy kényelmes grafikus felhasználói felületen.
A program megjelenít egy összevissza szót, amelyet át kell rendeznie az eredeti formájába. Ha elakad, a Tipp gombra kattintva egyszerre csak egy betűt jeleníthet meg. Találd ki a szót helyesen, és nyerj nagyot!
A véletlenszerű és Tkinter modul
A Random modul egy beépített Python modul, amelyet pszeudo-véletlen számok generálására használnak. Ezzel véletlenszerű számokat generálhat, véletlenszerű elemeket választhat ki a listából, keverheti a listák tartalmát stb.
Ez a modul segíthet többféle alkalmazás létrehozásában, beleértve a kockadobás szimulációját, a listakeverőt vagy egy véletlenszerű jelszógenerátor. Használhatja olyan játékok létrehozására is, mint a kézi tücsök és a számkitalálás.
A Tkinter lehetővé teszi az asztali alkalmazások létrehozását. Számos widgetet kínál, például gombokat, címkéket és szövegdobozokat, amelyek megkönnyítik az alkalmazások fejlesztését. A Tkinter telepítéséhez nyisson meg egy terminált, és futtassa:
pip install tkinter
Hogyan készítsünk Word Jumble játékot Python használatával
A Word Jumble Game forráskódját a Python segítségével találja meg ebben GitHub adattár.
Importálja a Tkinter és a Random modulokat. Inicializálja a Tkinter-példányt, és jelenítse meg a gyökérablakot. Állítsa be az ablak méretét pixelben, címét és háttérszínét.
tól től tkinter import *
tól től véletlen import választás
tól től véletlen import keverés
gyökér = Tk()
root.title("Szózavaró játék")
root.geometry("700x500")
root.configure (background="víz")
Határozzon meg egy címke widgetet az összekevert szó megjelenítéséhez. Adja meg a szülőablakot, amelybe el szeretné helyezni, a megjelenítendő szöveget, a betűtípus stílusát és a háttérszínt. Rendszerezze a widgetet, és adjon hozzá néhány kitöltést.
Határozzon meg egy függvényt, kertelő. Állítsa be a tippcímkét úgy, hogy kezdetben egy üres karakterlánc jelenjen meg, és állítsa nullára a globális tippváltozót. Töröljön minden tartalmat a program korábbi végrehajtása miatt, és jelenítsen meg helyette egy beviteli karakterláncot.
my_label = Címke (gyökér, szöveg="", font=("Arial", 48), bg="víz")
my_label.pack (pady=20)
defkertelő():
hint_label.config (text='')
globális hint_count
hint_count = 0
entry_answer.delete(0, VÉGE)
answer_label.config (text='', bg="víz")
Határozza meg azoknak a szavaknak a listáját, amelyek adatkészletként szolgálnak a szózavaros játékhoz. Válasszon ki egy véletlenszerű szót a listából, és készítsen listát az egyes betűiről. Keverje össze a listát, és reformálja meg a szót úgy, hogy ismételje meg, és tárolja egy karakterláncban. Jelenítse meg a zavaros szót a képernyőn megjelenő címkén keresztül.
gyümölcsök = ['alma', 'banán', 'eper', 'görögdinnye', 'kiwi']
globális szó
szó = választás (gyümölcs)
break_apart_word = lista (szó)
keverés (szak_szó)
globális kevert_szó
kevert_szó = ''számára levél ban ben break_apart_word:
kevert_szó += betű
my_label.config (szöveg=kevert_szó)
Próbáljon meg szavakat betölteni egy fájlból a projekt kiterjesztéseként. A szótárfájl – /usr/share/dict/words Linux/macOS rendszeren – kiváló szóforrás.
Határozzon meg egy függvényt, válasz. Ha a szó megegyezik a felhasználó által megadott értékkel, akkor zöld színben jelenítsen meg egy nyertes üzenetet. Ellenkező esetben piros színnel jelenítse meg, hogy rossz válasz volt.
defválasz():
ha szó == entry_answer.get():
answer_label.config (text="Helyes válasz!", bg="víz", fg='zöld')
más:
answer_label.config (text="Rossz válasz, próbáld újra.", bg="víz", fg='piros')
Határozzon meg egy függvényt, célzás, a globális hint_count ellenőrzéséhez. Ha a szám kisebb, mint a szó hossza, jelenítse meg a helyes válasz következő betűjét. Növelje a tipp betűk számát, hogy a függvény legközelebbi futásakor a program a következő betűt jelenítse meg.
defcélzás(számol):
globális hint_count
hint_count = szám
szó_hossza = len (szó)
ha count < szó_hossza:
hint_label.config (text=f'{hint_label["szöveg"]}{szavak száma]}', bg="víz")
hint_count += 1
Határozzon meg egy Bejegyzés widgetet, amely fogadja a felhasználó bemeneti adatait. Adja meg azt a szülőablakot, amelybe el szeretné helyezni ezt a widgetet, a betűstílusával együtt, és rendezze úgy, hogy elegendő helyet biztosít.
Határozzon meg egy keretet a gombokhoz. A keret tárolóként működik, amely irányítja a többi widget elhelyezését. Elrendezi az elrendezést, és a képernyő téglalap alakú részeinek segítségével párnázást biztosít. Állítsa be a szülőablakot, amelybe a keretet el szeretné helyezni, a háttérszínnel együtt.
entry_answer = Bejegyzés (gyökér, font=("Arial", 24))
entry_answer.pack (pady=20)
button_frame = Keret (gyökér, bg="víz")
button_frame.pack (pady=20)
Jelöljön ki három gombot: az egyik a helyes válasz megjelenítéséhez, az egyik egy másik szó kiválasztásához, a másik pedig a tippek megjelenítéséhez. Adja meg azt a keretet, amelybe az egyes gombokat el szeretné helyezni, és azt a szöveget, amelyet meg kell jelenítenie. Adja át a funkciót, hogy a felhasználó rákattintva fusson, a háttér színét, szélességét és betűméretét.
Használja a rács() kezelője, hogy ezeket a gombokat egy sorban és három különböző oszlopban helyezze el. Megadhatja a kitöltést, hogy helyet adjon a gombok között.
answer_button = Gomb (button_frame, text="Válasz", parancs=válasz, bg='narancs', szélesség=8, font=10)
answer_button.grid (sor=0, oszlop=0, padx=10)my_button = Gomb (button_frame, text="Válassz másik szót", command=shuffler, bg='narancs', szélesség=15, font=10)
my_button.grid (sor=0, oszlop=1, padx=10)
hint_button = Gomb (button_frame, text="Célzás", parancs=lambda: tipp (hint_count), bg='narancs', szélesség=5, font=10)
hint_button.grid (sor=0, oszlop=2, padx=10)
Hozzon létre címkéket a válaszhoz és a tipphez. Adja meg a szülőablakot, amelybe el szeretné helyezni a címkéket, a megjelenítendő szöveget és a betűtípus stílusát, és rendezze csomag(). Adjon meg egy kitöltési értéket, pady, a címkék jobb elhelyezése érdekében.
answer_label = Címke (gyökér, szöveg='', font=("Arial", 22))
answer_label.pack (pady=20)
hint_label = Címke (gyökér, szöveg='', font=("Arial", 22), bg="víz")
hint_label.pack (pady=10)
Hívja a shuffler() függvényt a játék beállításához. Akkor hívj mainloop() a Tkinter eseményhurok futtatásához és az események (például gombnyomások) figyeléséhez, amíg be nem zárja az ablakot.
kertelő()
root.mainloop()
Helyezze össze az összes kódot, és játsszon a Word Jumble Game-vel bármikor, bárhol.
Példa a Word Jumble Game kimenetére
A program futtatásakor egy kevert szót jelenít meg a Válasz, a Válassz másik szót és a Tipp gombokkal együtt. A gombra kattintva Célzás gombot, a program egyenként megjeleníti a helyes válasz betűit. A helyes válasz megadása esetén a program zöld színnel jeleníti meg a nyertes üzenetet.
Ha rossz választ talál, a program kéri, hogy próbálja újra piros színnel.
Szójátékok Python használatával
A Python segítségével szójátékok széles és izgalmas skáláját fejlesztheti ki. Ilyenek például a Scrabble, a Hangman, a keresztrejtvények, a Mad Libs és az anagrammák. Ezek a szójátékok lehetnek terminálalapúak vagy grafikus felhasználói felület alapúak, amint azt itt láthatta.
A Tkinter segítségével nagyon egyszerűen készíthet GUI játékokat. Mindössze annyit kell tennie, hogy importálja a modult, létrehoz egy ablakot, hozzáadja a widgeteket, és futtatja az eseményhurkot. Fejlettebb játékokhoz felfedezheti a Pygame, Kivy és Panda 3D modulokat.