Kontrollige oma kognitiivseid võimeid, ehitades seda mälumängu.

Mäluplaat või sobitusmäng on suurepärane ja lõbus viis kognitiivsete võimete suurendamiseks, mälu parandamiseks ja keskendumisvõime parandamiseks. Mängus on plaatide komplekt, mida tuleb ükshaaval ümber pöörata, meelde jätta ja valida sobivad. Kui sobitate kõik klotsid õigesti, võidate mängu.

Niisiis, kuidas saate Pythoni abil seda hämmastavat mängu arendada?

Tkinteri ja juhuslikud moodulid

Mäluplaadimängu saate ehitada moodulite Tkinter ja Random abil. Tkinter võimaldab teil luua töölauarakendusi. See pakub mitmesuguseid vidinaid, nagu nupud, sildid ja tekstikastid, mis muudavad selle hõlpsamaks arendada selliseid rakendusi nagu kalendrid, kalkulaatorid ja ülesannete nimekirjad. Tkinteri installimiseks avage terminal ja käivitage:

pip install tkinter

Juhuslik moodul on sisseehitatud Pythoni moodul, mida kasutatakse pseudojuhuslike arvude genereerimiseks. Seda kasutades, saate luua juhusliku parooligeneraatori, täringuviske simulatsioonirakendus või loendi segaja. Lisaks saate ka

instagram viewer
arendage huvitavaid mänge, nagu käsikriket ja numbrite äraarvamise mängud.

Kuidas Pythoni abil mäluplaatide mängu üles ehitada

Sellest leiate Pythoni abil mäluplaadi mängu loomise lähtekoodi GitHubi hoidla.

Alustage Tkinteri ja Random mooduli importimisega. Initsialiseerige juuraken ning määrake pealkiri ja mõõtmed pikslites.

alates tkinter importida *
importida juhuslik
alates tkinter importida sõnumikast

juur = Tk()
root.title("Mäluplaatide mäng")
root.geometry("760x550")

Määratlege kaks globaalset muutujat ja lähtestage võitja muutuja nulliks. Deklareerige plaatidele kuvatavate üksuste loend. Järjestage loend ümber juhuslike moodulite abil segamine () meetod. Määrake juuraknas raam ja lisage vertikaalsuunas polster 10.

Muutke loendusmuutuja väärtuseks 0 ja deklareerige vastavalt vastuste loend ja sõnastik.

globaalne võitja, vasted
võitja = 0
vasted = ["õun","õun","banaan","banaan", "oranž","oranž", "mustikas","mustikas","mooruspuu","mooruspuu", "viinamarjad","viinamarjad"]
random.shuffle (vastab)
my_frame = raam (juur)
minu_raam.pakk (pady=10)
arv = 0
vastuste_loend = []
answer_dict = {}

Määratlege funktsioon, reset(). Määrake sildi tekst tühjaks stringiks, kasutades nuppu config() funktsiooni. Määrake nuppude loend, üks iga plaadi jaoks. Itereerige loendit ja määrake nupupaanil olev tekst tühjaks stringiks, taustavärviks vaikimisi (SystemButtonFace) ja olek normaalseks.

deflähtestada():
my_label.config (text="")
nuppude_loend = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
jaoks nuppu sisse button_list:
button.config (text=" ", bg="SystemButton Face", olek="tavaline")

Määratlege funktsioon, võit (). Määrake võitnud sõnum sildi tekstiparameetris, kasutades config() funktsiooni. Määratlege nuppude loend nagu varem ja korrake seda, et määrata paani taustavärv heleroheliseks.

defvõita():
my_label.config (text=„Palju õnne! Sina võidad!")
nuppude_loend = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
jaoks nuppu sisse button_list:
button.config (bg="#90EE90")

Määratlege funktsioon, button_click() mis võtab sisendparameetriteks nupu ja selle numbri. Viidake globaalsetele muutujatele, loendile ja sõnastikule. Kui nupu tekst võrdub tühikuga ja arv on väiksem kui kaks, sisestage ja kuvage nupu tekst. Lisage nupu number vastuste loendisse ja nimi vastuste sõnastikku. Suurendage loenduse muutujat ühe võrra.

defbutton_click(b, number):
globaalne count, vastuste_loend, vastuse_dikteerimine, võitja
kui b["tekst"] == ' 'ja loe < 2:
b["tekst"] = vastab[number]
answer_list.append (number)
vastus_dikt[b] = vastab[number]
loe += 1

Kui vastuste loendi pikkus on kaks, tähendab see, et kasutaja on valinud kaks paani. Kui esimese paani tekst ühtib teise paani tekstiga, konfigureerige silt nii, et see näitaks, et need mõlemad kattuvad õigesti. Lülitage nupu olek keelatud. Määrake loendur nulli ning tühjendage loend ja sõnastik. Suurendage võitja muutujat ühe võrra ja kui see muutub kuueks, kutsuge varem deklareeritud win funktsioon.

kui len (vastuste_loend) == 2:
kui vasted[vastuste_loend[0]] == vasted[answer_list[1]]:
my_label.config (text="See on matš!")
jaoks võti sisse answer_dict:
võti["osariik"] = "puuetega"
arv = 0
vastuste_loend = []
answer_dict = {}
võitja += 1
kui võitja == 6:
võit ()

Muul juhul lähtestage loendusmuutuja ja loend. Kuvage sõnumikast pealkirja ja sisuga, mis kujutab seda vale vastena. Korrake vastuste loendit ja määrake paani tekstiks tühik. Lähtestage silt ja tühjendage sõnastik. See tagab, et pärast seda, kui kasutaja on valinud valed paanid, nupul ja sildil pole nähtavat teksti.

muidu:
arv = 0
vastuste_loend = []
messagebox.showinfo("Vale!", "Vale")
jaoks võti sisse answer_dict:
võti["tekst"] = " "
my_label.config (text=" ")
answer_dict = {}

Määrake 12 nuppu. Määrake ülemaken, kuhu soovite need paigutada, nende kuvatav tekst, fondi stiil, kõrgus ja laius ning klõpsamisel käivitatav käsk. Ärge unustage kasutada lambda funktsiooni andmete edastamiseks seadmele button_click() funktsiooni. Määrake kergendust parameeter kuni soon 3-D sügavusefekti loomiseks nupu ümber.

b0 = nupp (minu_raam, tekst=' ', font=("Helvetica", 20), kõrgus=4, laius=8, käsk=lambda: button_click (b0, 0), kergendus="soon")
b1 = nupp (minu_raam, tekst=' ', font=("Helvetica", 20), kõrgus=4, laius=8, käsk=lambda: button_click (b1, 1), kergendus="soon")
b2 = nupp (minu_raam, tekst=' ', font=("Helvetica", 20), kõrgus=4, laius=8, käsk=lambda: button_click (b2, 2), kergendus="soon")
b3 = nupp (minu_raam, tekst=' ', font=("Helvetica", 20), kõrgus=4, laius=8, käsk=lambda: button_click (b3, 3), kergendus="soon")
b4 = nupp (minu_raam, tekst=' ', font=("Helvetica", 20), kõrgus=4, laius=8, käsk=lambda: button_click (b4, 4), kergendus="soon")
b5 = nupp (minu_raam, tekst=' ', font=("Helvetica", 20), kõrgus=4, laius=8, käsk=lambda: button_click (b5, 5), kergendus="soon")
b6 = nupp (minu_raam, tekst=' ', font=("Helvetica", 20), kõrgus=4, laius=8, käsk=lambda: button_click (b6, 6), kergendus="soon")
b7 = nupp (minu_raam, tekst=' ', font=("Helvetica", 20), kõrgus=4, laius=8, käsk=lambda: button_click (b7, 7), kergendus="soon")
b8 = nupp (minu_raam, tekst=' ', font=("Helvetica", 20), kõrgus=4, laius=8, käsk=lambda: button_click (b8, 8), kergendus="soon")
b9 = nupp (minu_raam, tekst=' ', font=("Helvetica", 20), kõrgus=4, laius=8, käsk=lambda: button_click (b9, 9), kergendus="soon")
b10 = nupp (minu_raam, tekst=' ', font=("Helvetica", 20), kõrgus=4, laius=8, käsk=lambda: button_click (b10, 10), kergendus="soon")
b11 = nupp (minu_raam, tekst=' ', font=("Helvetica", 20), kõrgus=4, laius=8, käsk=lambda: button_click (b11, 11), kergendus="soon")

Korraldage nupud tabelivormingus, mis koosneb kolmest reast ja neljast veerust, kasutades Tkinteri ruudustikuhaldurit. Selleks helistage grid() meetodit ja edastage rida koos veeru numbriga, kuhu soovite selle paigutada.

b0.grid (rida=0, veerg=0)
b1.grid (rida=0, veerg=1)
b2.grid (rida=0, veerg=2)
b3.grid (rida=0, veerg=3)
b4.grid (rida=1, veerg=0)
b5.grid (rida=1, veerg=1)
b6.grid (rida=1, veerg=2)
b7.grid (rida=1, veerg=3)
b8.grid (rida=2, veerg=0)
b9.grid (rida=2, veerg=1)
b10.grid (rida=2, veerg=2)
b11.grid (rida=2, veerg=3)

Määrake silt, mis näitab tühja stringi, ja lisage vertikaalsuunas täidis 20. Määrake juuraknas ülataseme menüü ja kinnitage see, keerates nuppu rebimine parameeter kuni Vale. Lisage alammenüü üksus, Valikud kasutades add_cascade parameeter.

Lisage kaks menüüelementi koos käskudega, mida nad peaksid käivitama, kui klõpsate alammenüüs nimega Mängu lähtestamine ja Välju mängust. Lisage nende vahele eraldaja piiritlemiseks.

my_label = Silt (juur, tekst="")
minu_silt.pakk (pady=20)

my_menu = Menüü (juur)
root.config (menu=minu_menüü)
option_menu = Menüü (minu_menüü, tearoff=Vale)
my_menu.add_cascade (silt="Valikud", menüü=valikumenüü)
option_menu.add_command (silt="Lähtesta mäng", käsk=reset)
option_menu.add_separator()
option_menu.add_command (silt="Välju mängust", käsk=root.quit)

The mainloop() funktsioon käsib Pythonil käivitada Tkinteri sündmusetsükli ja kuulata sündmusi, kuni sulgete akna.

root.mainloop()

Pange kogu kood kokku. Nüüd on mäluplaadimäng mängimiseks valmis.

Mäluplaadi mängu väljund

Programmi käivitamisel kuvatakse 12 nuppu tühja tekstiga koos Valikud menüü. Klõpsates Mängu lähtestamine, kuvatakse aken samal viisil.

Kahe sobiva plaadi valimisel näivad nupud keelatud ja silt näitab, et valik on õige.

Kui valite kaks paani, mis ei ühti, kuvatakse teatekast, mis näitab, et valik oli vale. Nupud ja silt naasevad esialgsesse tühja olekusse.

Kõigi valikute edukal sobitamisel muudab programm kõik plaadid roheliseks ja kuvab võidusõnumi.

Mängud, mida saate Pythoni abil luua

Python pakub mängude loomiseks erinevaid mooduleid. Lihtsate sõna- või valikupõhiste mängude (nt Hangman, Tic-Tac-Toe või Rock Paper Scissors) loomiseks saate kasutada mooduleid Tkinter ja Random. Rohkem graafikat vajavate mängude arendamiseks võite kasutada Pygame'i.

Pygame on Pythoni moodulite komplekt, mis töötab kõigil platvormidel. See sisaldab arvutigraafikat ja heliteeke, mis muudavad mängud interaktiivsemaks. Mõned mängud, mida saate Pygame'i abil ehitada, hõlmavad Snake'i mängu, mälumängu ja Sudoku.