Jos etsit hauskaa häiriötekijää, sanasekoitus on hyvä vaihtoehto sekä pelaamiseen että ohjelmointiin. Pythonin Tkinter-moduulin avulla voit rakentaa ja pelata tätä lapsuuspeliä kätevässä GUI-sovelluksessa.
Ohjelma näyttää sekavan sanan, joka sinun on järjestettävä uudelleen alkuperäiseen muotoonsa. Jos olet jumissa, voit napsauttaa Vihje-painiketta paljastaaksesi yhden kirjaimen kerrallaan. Arvaa sana oikein ja voita isosti!
Satunnais- ja Tkinter-moduuli
Random-moduuli on sisäänrakennettu Python-moduuli, jota käytetään pseudosatunnaislukujen luomiseen. Tämän avulla voit luoda satunnaislukuja, valita satunnaisia elementtejä luettelosta, sekoittaa luettelon sisältöä ja paljon muuta.
Tämä moduuli voi auttaa sinua rakentamaan monenlaisia sovelluksia, kuten nopanheiton simulaation, listasekoittimen tai satunnainen salasanageneraattori. Voit myös käyttää sitä luomaan pelejä, kuten käsi kriketti ja numeroiden arvailu.
Tkinterin avulla voit luoda työpöytäsovelluksia. Se tarjoaa erilaisia widgetejä, kuten painikkeita, tarroja ja tekstiruutuja, jotka helpottavat sovellusten kehittämistä. Asenna Tkinter avaamalla pääte ja suorittamalla:
pip asennus tkinter
Word Jumble -pelin rakentaminen Pythonilla
Löydät Word Jumble Gamen lähdekoodin Pythonilla tästä GitHub-arkisto.
Tuo Tkinter- ja Random-moduulit. Alusta Tkinter-instanssi ja näytä juuriikkuna. Aseta mitat pikseleinä, otsikko ja ikkunan taustaväri.
alkaen tkinter tuonti *
alkaen satunnainen tuonti valinta
alkaen satunnainen tuonti sekoita
juuri = Tk()
root.title("Word Jumble Game")
root.geometry("700x500")
root.configure (tausta="vesi")
Määritä tarra-widget, joka näyttää sekava sana. Määritä pääikkuna, johon haluat sijoittaa sen, teksti, jonka sen tulee näyttää, kirjasintyyli ja taustaväri. Järjestä widget ja lisää siihen pehmusteita.
Määritä funktio, sekoitin. Määritä vihjetunniste näyttämään aluksi tyhjä merkkijono ja aseta yleinen vihjemuuttuja nollaan. Poista ohjelman aikaisemmasta suorituksesta johtuva sisältö ja näytä sen sijaan syöttömerkkijono.
my_label = Tunniste (juuri, teksti="", font =("Arial", 48), bg="vesi")
my_label.pack (pady=20)
defsekoitin():
hint_label.config (text='')
maailmanlaajuisesti vihje_määrä
vihje_määrä = 0
entry_answer.delete(0, END)
answer_label.config (text='', bg="vesi")
Määrittele luettelo sanoista, jotka toimivat tietojoukona sanasekapelille. Valitse satunnainen sana luettelosta ja tee luettelo sen yksittäisistä kirjaimista. Sekoita luettelo ja uudista sana iteroimalla sen yli ja tallentamalla se merkkijonoon. Näytä sekava sana näytön tarran kautta.
hedelmät = ['omena', 'banaani', 'mansikka', 'vesimeloni', 'kiivi']
maailmanlaajuisesti sana
sana = valinta (hedelmät)
break_apart_word = luettelo (sana)
sekoita (break_apart_word)
maailmanlaajuisesti sekoitettu_sana
sekoitettu_sana = ''varten kirje sisään break_apart_word:
sekoitettu_sana += kirjain
my_label.config (teksti=sekoitettu_sana)
Yritä ladata sanajoukko tiedostosta tämän projektin laajennukseksi. Sanakirjatiedosto – /usr/share/dict/words Linuxissa/macOS: ssä – on erinomainen sanalähde.
Määritä funktio, vastaus. Jos sana vastaa käyttäjän syöttämää syöttöä, näytä voittoviesti vihreällä värillä. Muussa tapauksessa näytä punaisella värillä, että se oli väärä vastaus.
defvastaus():
jos sana == entry_answer.get():
answer_label.config (text="Oikea vastaus!", bg="vesi", fg='vihreä')
muu:
answer_label.config (text="Väärä vastaus, yritä uudelleen.", bg="vesi", fg='punainen')
Määritä funktio, vihje, tarkistaaksesi maailmanlaajuisen vihjemäärän. Jos määrä on pienempi kuin sanan pituus, näytä oikean vastauksen seuraava kirjain. Kasvata vihjekirjaimen määrää niin, että kun toiminto seuraavan kerran suoritetaan, ohjelma näyttää seuraavan kirjaimen.
defvihje(Kreivi):
maailmanlaajuisesti vihje_määrä
vihje_määrä = määrä
sanan_pituus = len (sana)
jos count < sanan_pituus:
hint_label.config (text=f'{vint_label["teksti"]}{sanamäärä]}', bg="vesi")
vihje_määrä += 1
Määritä Entry-widget vastaanottamaan syötteitä käyttäjältä. Määritä pääikkuna, johon haluat sijoittaa tämän widgetin, sekä sen kirjasintyyli ja järjestä se antamalla täyttöä runsaasti tilaa varten.
Määritä kehys painikkeille. Kehys toimii säiliönä, joka ohjaa muiden widgetien sijoittelua. Se järjestää asettelun ja tarjoaa pehmusteen käyttämällä suorakaiteen muotoisia osia näytöllä. Aseta pääikkuna, johon haluat sijoittaa kehyksen, sekä taustaväri.
entry_answer = Merkintä (juuri, font=("Arial", 24))
entry_answer.pack (pady=20)
button_frame = Kehys (juuri, bg="vesi")
button_frame.pack (pady=20)
Ilmoita kolme painiketta: yksi oikean vastauksen näyttämiseen, toinen toisen sanan valitsemiseen ja toinen vihjeiden näyttämiseen. Määritä kehys, johon haluat sijoittaa kunkin painikkeen, ja teksti, jonka sen tulee näyttää. Välitä myös toiminto suoritettavaksi, kun käyttäjä napsauttaa sitä, taustaväri, leveys ja kirjasinkoko.
Käytä grid() johtaja sijoittaa nämä painikkeet yhdelle riville ja kolmeen eri sarakkeeseen. Voit määrittää täytteen lisäämään tilaa painikkeiden väliin.
answer_button = Painike (button_frame, text="Vastaus", komento=vastaus, bg='oranssi', leveys=8, font=10)
answer_button.grid (rivi=0, sarake=0, padx=10)my_button = Painike (button_frame, text="Valitse toinen sana", komento=sekoitin, bg='oranssi', leveys=15, font=10)
my_button.grid (rivi=0, sarake=1, padx=10)
hint_button = Painike (button_frame, text="Vihje", komento=lambda: vihje (vihjeiden_määrä), bg='oranssi', leveys=5, font=10)
hint_button.grid (rivi=0, sarake=2, padx=10)
Luo tarroja vastaukselle ja vihjeelle. Määritä pääikkuna, johon haluat sijoittaa tunnisteet, teksti, jonka sen tulee näyttää, ja kirjasintyyli ja järjestä se käyttämällä pakkaus(). Anna täytearvo, pady, tarrojen parempi sijoittaminen.
answer_label = Tunniste (juuri, teksti='', font =("Arial", 22))
answer_label.pack (pady=20)
hint_label = Tunniste (juuri, teksti='', font =("Arial", 22), bg="vesi")
hint_label.pack (pady=10)
Aloita peli kutsumalla shuffler()-funktiota. Soita sitten mainloop() suorittaaksesi Tkinterin tapahtumasilmukan ja kuunnellaksesi tapahtumia (kuten painikkeen painalluksia), kunnes suljet ikkunan.
shuffler()
root.mainloop()
Kokoa kaikki koodi yhteen ja pelaa Word Jumble Game -peliä missä ja milloin tahansa.
Esimerkki sanasekoituspelin tulosteesta
Ohjelmaa suoritettaessa se näyttää sekoitettuna sanan sekä Vastaus-, Valitse toinen sana- ja Vihje-painikkeet. Napsauttamalla Vihje -painiketta, ohjelma näyttää oikean vastauksen kirjaimet yksitellen. Jos annat oikean vastauksen, ohjelma näyttää voittoviestin vihreänä.
Jos arvaat väärän vastauksen, ohjelma pyytää sinua yrittämään uudelleen punaisella värillä.
Sanapelit Pythonilla
Pythonilla voit kehittää laajan ja jännittävän valikoiman sanapelejä. Esimerkkejä ovat Scrabble, Hangman, ristisanatehtävät, Mad Libs ja anagrammit. Nämä sanapelit voivat olla päätepohjaisia tai GUI-pohjaisia, kuten olet nähnyt täällä.
Tkinterin avulla voit tehdä GUI-pelejä erittäin helposti. Sinun tarvitsee vain tuoda moduuli, luoda ikkuna, lisätä widgetejä ja suorittaa tapahtumasilmukka. Edistyneempiä pelejä varten voit tutustua Pygamen, Kivyn ja Pandan 3D-moduuleihin.