Kui otsite lõbusat tähelepanu kõrvalejuhtimist, on sõnade segamine hea valik nii mängimiseks kui ka programmeerimiseks. Pythoni Tkinteri mooduli toel saate seda lapsepõlvemängu luua ja mängida mugavas GUI-rakenduses.
Programm kuvab segase sõna, mille peate oma algsel kujul ümber korraldama. Kui olete ummikus, võite klõpsata nupul Vihje, et kuvada üks täht korraga. Arva sõna õigesti ja võida suur!
Juhuslik ja Tkinteri moodul
Juhuslik moodul on sisseehitatud Pythoni moodul, mida kasutatakse pseudojuhuslike arvude genereerimiseks. Selle abil saate genereerida juhuslikke numbreid, valida loendist juhuslikke elemente, segada loendi sisu ja palju muud.
See moodul aitab teil luua mitut tüüpi rakendusi, sealhulgas täringuviske simulatsiooni, loendi segaja või juhusliku parooli generaator. Saate seda kasutada ka selliste mängude loomiseks käsi kriket ja arvu arvamine.
Tkinter võimaldab teil luua töölauarakendusi. See pakub mitmesuguseid vidinaid, nagu nupud, sildid ja tekstikastid, mis muudavad rakenduste arendamise lihtsamaks. Tkinteri installimiseks avage terminal ja käivitage:
pip install tkinter
Kuidas Pythoni abil Wordi segamängu luua
Sellest leiate Pythoni abil Wordi segamismängu lähtekoodi GitHubi hoidla.
Importige moodulid Tkinter ja Random. Initsialiseerige Tkinteri eksemplar ja kuvage juuraken. Määrake mõõtmed pikslites, pealkiri ja akna taustavärv.
alates tkinter importida *
alates juhuslik importida valik
alates juhuslik importida segada
juur = Tk()
root.title("Sõnade segadusmäng")
root.geometry("700x500")
root.configure (background='vesi')
Segatud sõna kuvamiseks määrake sildi vidin. Määrake ülemaken, kuhu soovite selle asetada, kuvatav tekst, fondi stiil ja taustavärv. Korraldage vidin ja lisage sellele polsterdus.
Määratlege funktsioon, segaja. Konfigureerige vihje silt nii, et see kuvaks algselt tühja stringi, ja määrake globaalse vihje muutuja väärtuseks null. Kustutage programmi varasemast käivitamisest tingitud sisu ja kuvage selle asemel sisestusstring.
my_label = Silt (juur, tekst="", font=("Arial", 48), bg='vesi')
minu_silt.pakk (pady=20)
defsegaja():
hint_label.config (text='')
globaalne vihje_arv
vihje_arv = 0
enter_answer.delete(0, LÕPP)
answer_label.config (text='', bg='vesi')
Määratlege sõnade loend, mida kasutatakse sõnade segamängu andmestikuna. Valige loendist juhuslik sõna ja koostage selle üksikute tähtede loend. Segage loend ja reformige sõna, itereerides seda üle ja salvestades selle stringina. Kuvage segane sõna ekraanil oleva sildi kaudu.
puuviljad = ['õun', "banaan", 'maasikas', "arbuus", "kiwi"]
globaalne sõna
sõna = valik (puuviljad)
break_apart_word = loend (sõna)
segama (break_apart_word)
globaalne segatud_sõna
segatud_sõna = ''jaoks kiri sisse break_apart_word:
segatud_sõna += täht
my_label.config (text=segatud_sõna)
Proovige selle projekti laiendusena laadida failist sõnade komplekt. Sõnastikufail – /usr/share/dict/words Linuxis/macOS-is – on suurepärane sõnade allikas.
Määratlege funktsioon, vastama. Kui sõna võrdub kasutaja sisendiga, kuvage võiduteade rohelise värviga. Vastasel juhul kuvage punase värviga, et see oli vale vastus.
defvastama():
kui sõna == enter_answer.get():
answer_label.config (text="Õige vastus!", bg='vesi', fg='roheline')
muidu:
answer_label.config (text="Vale vastus, palun proovi uuesti.", bg='vesi', fg="punane")
Määratlege funktsioon, vihje, et kontrollida globaalset vihjete arvu. Kui arv on sõna pikkusest väiksem, kuvage õige vastuse järgmine täht. Suurendage vihjetähe arvu nii, et järgmisel korral, kui funktsioon käitatakse, kuvab programm järgmise tähe.
defvihje(loenda):
globaalne vihje_arv
hint_count = loendus
sõna_pikkus = len (sõna)
kui arv < sõna_pikkus:
hint_label.config (text=f'{vihje_silt["tekst"]}{sõnade arv]}', bg='vesi')
vihje_arv += 1
Määratlege sisestuse vidin, mis võtab kasutajalt sisendi. Määrake ülemaken, kuhu soovite selle vidina paigutada, koos selle fondi stiiliga ja korraldage see, jättes piisavalt ruumi.
Määrake nuppude jaoks raam. Raam toimib konteinerina, mis suunab teiste vidinate paigutust. See korraldab paigutuse ja pakub ekraanil ristkülikukujulisi sektsioone kasutades polsterdust. Määrake põhiaken, kuhu soovite raami paigutada, koos taustavärviga.
entry_answer = Kirje (juur, font=("Arial", 24))
enter_answer.pack (pady=20)
button_frame = Raam (juur, bg='vesi')
button_frame.pack (pady=20)
Deklareerige kolm nuppu: üks õige vastuse kuvamiseks, üks teise sõna valimiseks ja teine vihjete kuvamiseks. Määrake raam, kuhu soovite iga nupu asetada, ja tekst, mida see kuvama peaks. Samuti edastage funktsioon käivitamiseks, kui kasutaja sellel klõpsab, taustavärv, laius ja fondi suurus.
Kasuta grid() haldur, et paigutada need nupud ühte ritta ja kolme erinevasse veergu. Nuppude vahele ruumi lisamiseks saate määrata polsterduse.
answer_button = Nupp (button_frame, text="Vastus", käsk=vastus, bg='oranž', laius=8, font=10)
answer_button.grid (rida=0, veerg=0, padx=10)my_button = Nupp (button_frame, text="Vali teine sõna", käsk=segaja, bg='oranž', laius=15, font=10)
my_button.grid (rida=0, veerg=1, padx=10)
hint_button = Nupp (button_frame, text="Vihje", käsk=lambda: vihje (vihjete_arv), bg='oranž', laius=5, font=10)
hint_button.grid (rida=0, veerg=2, padx=10)
Looge vastuse ja vihje jaoks sildid. Määrake ülemaken, kuhu soovite sildid paigutada, tekst, mida see peaks kuvama, ja fondi stiil ning korraldage see kasutades pakk (). Andke polsterdusväärtus, pady, siltide paremaks paigutamiseks.
answer_label = Silt (juur, tekst='', font=("Arial", 22))
answer_label.pack (pady=20)
hint_label = Silt (juur, tekst='', font=("Arial", 22), bg='vesi')
hint_label.pack (pady=10)
Mängu seadistamiseks helistage funktsioonile shuffler(). Siis helista mainloop() Tkinteri sündmuste tsükli käivitamiseks ja sündmuste (nt nupuvajutuste) kuulamiseks, kuni akna sulgete.
segaja ()
root.mainloop()
Pange kogu kood kokku ja mängige Wordi segamängu igal ajal ja igal pool.
Sõnade segamängu näidisväljund
Programmi käivitamisel kuvab see segatud sõna koos nuppudega Vastus, Vali teine sõna ja Vihje. Klõpsates Vihje nuppu, kuvab programm ükshaaval õige vastuse tähed. Kui sisestate õige vastuse, kuvab programm võiduteate rohelise värviga.
Kui arvate vale vastuse, palub programm punase värviga uuesti proovida.
Sõnamängud Pythoni abil
Pythoni abil saate arendada laia ja põneva valikut sõnamänge. Näiteks Scrabble, Hangman, ristsõnad, Mad Libs ja anagrammid. Need sõnamängud võivad olla terminalipõhised või GUI-põhised, nagu olete siin näinud.
Tkinteri abil saate teha GUI mänge väga lihtsalt. Kõik, mida pead tegema, on importida moodul, genereerida aken, lisada vidinaid ja käivitada sündmuste tsükkel. Täpsemate mängude jaoks saate uurida Pygame'i, Kivy ja Panda 3D-mooduleid.