Če iščete zabavno motnjo, je mešanje besed dobra možnost, tako za igranje kot za programiranje. S pomočjo Pythonovega modula Tkinter lahko sestavite in igrate to otroško igro v priročni aplikaciji GUI.
Program prikaže zmešano besedo, ki jo morate preurediti v prvotno obliko. Če ste obtičali, lahko kliknete gumb Namig, da odkrijete eno črko naenkrat. Ugani besedo pravilno in veliko zmagaj!
Modul Random in Tkinter
Modul Random je vgrajen modul Python, ki se uporablja za generiranje psevdonaključnih števil. S tem lahko ustvarite naključna števila, izberete naključne elemente s seznama, premešate vsebino seznama in drugo.
Ta modul vam lahko pomaga zgraditi več vrst aplikacij, vključno s simulacijo metanja kocke, mešalnikom seznamov ali generator naključnih gesel. Uporabite ga lahko tudi za ustvarjanje iger, kot je ročni kriket in ugibanje številk.
Tkinter omogoča ustvarjanje namiznih aplikacij. Ponuja različne pripomočke, kot so gumbi, oznake in besedilna polja, ki olajšajo razvoj aplikacij. Če želite namestiti Tkinter, odprite terminal in zaženite:
pip namestite tkinter
Kako zgraditi igro Word Jumble z uporabo Pythona
Tukaj lahko najdete izvorno kodo igre Word Jumble Game z uporabo Pythona Repozitorij GitHub.
Uvozite modula Tkinter in Random. Inicializirajte primerek Tkinter in prikažite korensko okno. Nastavite dimenzije v slikovnih pikah, naslov in barvo ozadja okna.
od tkinter uvoz *
od naključen uvoz izbira
od naključen uvoz premešati
koren = Tk()
root.title('Igra mešanja besed')
root.geometry("700x500")
root.configure (background='aqua')
Določite pripomoček za nalepke za prikaz premešane besede. Določite nadrejeno okno, v katerega ga želite postaviti, besedilo, ki naj bo prikazano, slog pisave in barvo ozadja. Organizirajte pripomoček in mu dodajte nekaj oblazinjenja.
Definirajte funkcijo, shuffler. Konfigurirajte oznako namiga, da na začetku prikaže prazen niz in nastavite globalno spremenljivko namiga na nič. Izbrišite vso vsebino zaradi prejšnjega izvajanja programa in namesto tega prikažite vnosni niz.
my_label = Oznaka (koren, besedilo="", pisava=("Arial", 48), bg='aqua')
moja_oznaka.pack (pady=20)
defshuffler():
hint_label.config (besedilo='')
globalno štetje_namigov
štetje_namigov = 0
vpis_odgovor.delete(0, KONEC)
answer_label.config (text='', bg='aqua')
Določite seznam besed, ki bodo služile kot nabor podatkov za besedno igro. Izberite naključno besedo s seznama in sestavite seznam njenih posameznih črk. Premešajte seznam in preoblikujte besedo tako, da jo ponovite in shranite v niz. Prikaži zmešano besedo prek oznake na zaslonu.
sadje = ['jabolko', 'banana', 'jagoda', 'lubenica', 'kivi']
globalno beseda
beseda = izbira (sadje)
break_apart_word = seznam (beseda)
premešaj (break_apart_word)
globalno premešana_beseda
premešana_beseda = ''za pismo v break_apart_word:
premešana_beseda += črka
my_label.config (besedilo=premešana_beseda)
Poskusite naložiti niz besed iz datoteke kot razširitev tega projekta. Slovarska datoteka – /usr/share/dict/words v sistemu Linux/macOS – je odličen vir besed.
Definirajte funkcijo, odgovor. Če je beseda enaka vnosu uporabnika, se zmagovalno sporočilo prikaže v zeleni barvi. V nasprotnem primeru z rdečo barvo prikažite, da je bil odgovor napačen.
defodgovor():
če beseda == entry_answer.get():
answer_label.config (text="Pravilen odgovor!", bg='aqua', fg='zelena')
drugače:
answer_label.config (text="Napačen odgovor, poskusite znova.", bg='aqua', fg='rdeča')
Definirajte funkcijo, namig, da pregledate globalno število namigov. Če je število manjše od dolžine besede, prikaži naslednjo črko pravilnega odgovora. Povečajte število namigovnih črk, tako da bo program ob naslednjem zagonu funkcije prikazal naslednjo črko.
defnamig(štetje):
globalno štetje_namigov
hint_count = štetje
word_length = len (beseda)
če štetje < dolžina_besede:
hint_label.config (besedilo=f'{hint_label["besedilo"]}{Število besed]}', bg='aqua')
štetje_namigov += 1
Določite pripomoček Entry, da sprejmete vnos od uporabnika. Določite nadrejeno okno, v katerega želite postaviti ta gradnik, skupaj z njegovim slogom pisave in ga organizirajte tako, da dodate nekaj oblazinjenja za dovolj prostora.
Določite okvir za gumbe. Okvir deluje kot vsebnik, ki usmerja postavitev drugih pripomočkov. Ureja postavitev in zagotavlja oblazinjenje z uporabo pravokotnih odsekov na zaslonu. Nastavite nadrejeno okno, v katerega želite postaviti okvir, skupaj z barvo ozadja.
entry_answer = Vnos (koren, pisava=("Arial", 24))
entry_answer.pack (pady=20)
button_frame = Okvir (root, bg='aqua')
gumb_okvir.pack (pady=20)
Označite tri gumbe: enega za prikaz pravilnega odgovora, enega za izbiro druge besede in drugega za prikaz namigov. Določite okvir, v katerega želite postaviti vsak gumb, in besedilo, ki naj bo prikazano. Posredujte tudi funkcijo za zagon, ko jo uporabnik klikne, barvo ozadja, širino in velikost pisave.
Uporabi mreža() upravitelja, da te gumbe postavi v eno vrstico in tri različne stolpce. Določite lahko oblazinjenje, da dodate prostor med gumbi.
answer_button = Gumb (okvir_gumba, besedilo="odgovor", ukaz=odgovor, bg='oranžna', širina=8, pisava=10)
answer_button.grid (vrstica=0, stolpec=0, padx=10)my_button = Gumb (okvir_gumba, besedilo="Izberi drugo besedo", ukaz=mešalnik, bg='oranžna', širina=15, pisava=10)
my_button.grid (vrstica=0, stolpec=1, padx=10)
hint_button = Gumb (okvir_gumba, besedilo="Namig", ukaz=lambda: namig (število_namigov), bg='oranžna', širina=5, pisava=10)
hint_button.grid (vrstica=0, stolpec=2, padx=10)
Ustvarite oznake za odgovor in namig. Določite nadrejeno okno, v katerega želite postaviti oznake, besedilo, ki naj bo prikazano, in slog pisave ter ga organizirajte z paket(). Posredovanje vrednosti oblazinjenja, pady, za boljšo namestitev nalepk.
answer_label = Oznaka (koren, besedilo='', pisava=("Arial", 22))
answer_label.pack (pady=20)
hint_label = Oznaka (koren, besedilo='', pisava=("Arial", 22), bg='aqua')
hint_label.pack (pady=10)
Pokličite funkcijo shuffler(), da nastavite igro. Potem pokliči glavna zanka() da zaženete zanko dogodkov Tkinter in poslušate dogodke (kot so pritiski gumbov), dokler ne zaprete okna.
shuffler()
root.mainloop()
Sestavite vso kodo in igrajte Word Jumble Game kadarkoli in kjer koli.
Primer izhoda igre Word Jumble
Ko program zažene, prikaže premešano besedo skupaj z gumbi Odgovori, Izberi drugo besedo in Namig. Ob kliku na Namig program eno za drugo prikaže črke pravilnega odgovora. Če vnesete pravilen odgovor, program prikaže zmagovalno sporočilo v zeleni barvi.
Če uganete napačen odgovor, vas program v rdeči barvi pozove, da poskusite znova.
Besedne igre z uporabo Pythona
Z uporabo Pythona lahko razvijete široko in vznemirljivo paleto besednih iger. Primeri vključujejo Scrabble, Hangman, križanke, Mad Libs in anagrame. Te besedne igre so lahko terminalske ali GUI, kot ste videli tukaj.
S Tkinterjem lahko zelo preprosto naredite igre z grafičnimi vmesniki. Vse kar morate storiti je, da uvozite modul, ustvarite okno, dodate pripomočke in zaženete zanko dogodkov. Za naprednejše igre lahko raziščete module Pygame, Kivy in Panda 3D.