Lesere som deg er med på å støtte MUO. Når du foretar et kjøp ved å bruke lenker på nettstedet vårt, kan vi tjene en tilknyttet provisjon. Les mer.

Battlefield2, World of Tanks, The Sims4 og Freedom Force er noen av de tusenvis av fantastiske spillene som ble utviklet med Python.

Tkinter, standard Python-grensesnitt til Tk GUI-verktøysettet, er en kraftig modul som gjør det enkelt og morsomt å lage grafiske brukergrensesnitt. Bruk denne modulen til å utvikle et tankevridende fargespill. Lær også hvordan du bruker modulen underveis.

Hva er fargespillet?

I fargespillet viser programmet navnet på en farge på skjermen, men i en annen skriftfarge. For eksempel viser den ordet Gul ved å bruke en rød skriftfarge og spilleren må skrive inn fargen på teksten.

Denne mismatchen av informasjon sammen med tidtakeren skaper en mengde forvirring og skaper en underholdende spillopplevelse.

Tkinter og Random-modulen

For å bygge fargespillet bruker du tkinter modul og tilfeldig modul. Tkinter er en enkel og brukervennlig GUI-modul på tvers av plattformer som du kan bruke til å lage grafiske brukergrensesnitt raskt.

instagram viewer

Den har noen nyttige verktøy som etikett- og oppføringswidgeter og layoutadministratorer som pakke, rutenett og sted. Funksjonene som tilbys er ganske enkle, noe som gjør det enkelt for nybegynnerprogrammerere å designe apper uten mye innsats. For å installere tkinter i systemet ditt, kjør følgende kommando i terminalen:

pip installer tkinter

Den tilfeldige modulen er et innebygd bibliotek som du kan bruke til å generere tilfeldige valg. Ved å bruke denne modulen, du kan utvikle håndcricket-spill, gjettespill, magiske åtteballspill, tilfeldige passordgeneratorer, og mange flere.

Hvordan bygge et fargespill ved hjelp av Python

Kildekoden til fargespillet er tilgjengelig i en GitHub-depot og er gratis for deg å bruke under MIT-lisensen.

Start med å importere tkinter og den tilfeldige modulen. Lagre navnet på fargene som en liste over strenger og initialiser score variabel til 0 og time_restering til 60.

fra tkinter import *
import tilfeldig

farger = ['Rød', 'Grønn', 'Blå', 'Svart', 'Rosa', 'Hvit', 'lilla', 'Gul', 'Brun']
score = 0
time_restering = 60

Definer en funksjon kalt beginGame() som tar begivenhet som et input-argument. Funksjonen utfører to oppgaver. Først sjekker den om time_restering tilsvarer 60. Hvis ja, kaller den og utfører nedtelling() funksjon. For det andre kaller det nextcolor() funksjon som tilfeldig blander og viser fargen og poengsummen når spillet pågår.

defbegynne spillet(begivenhet):
hvis time_restering == 60:
nedtelling()
nextColour()

Definer en funksjon kalt nextColour() og referer til variablene globalt. Hvis gjenværende tid er større enn 0, sett fokus på inntastingsfeltet ved å bruke fokus_sett() metode på oppføringsetiketten (lagret i variabel e) definert i den senere halvdelen av koden.

Bruke få() metode for å hente oppføringens gjeldende tekst som en streng og gjøre den om til små bokstaver for å unngå uoverensstemmelse mellom store og små bokstaver. Hvis dette tilsvarer fargen som vises på skjermen, øker du poengsummen med én. Bruke slett() funksjon fra 0 til siste indeks på oppføringswidgeten for å fjerne innholdet.

defneste farge():
global score
global time_restering
hvis time_restering > 0:
e.focus_set()
hvis e.get().lower() == farger[1].Nedre():
score += 1
e.delete(0, SLUTT)

Bruke tilfeldig rekkefølge() funksjon for å omorganisere elementer i listen og vise fargeetiketten med teksten som den første fargen i listen og skriftfargen som den andre fargen i listen. Bruke config() funksjon på scoreLabel (som ber om å trykke Enter) for å vise poengsummen mens spillet er i gang.

 random.shuffle (farger)
label.config (fg=str (farger[1]), text=str (farger[0]))
scoreLabel.config (tekst="Score: " + str (poengsum))

Definer en funksjon kalt nedtelling() som refererer til variabelen for gjenværende tid og reduserer den med én. Bruke config() funksjon på tidsmerke for å vise tiden som er igjen på skjermen og etter() funksjon for å ringe tilbake nedtelling funksjon etter en forsinkelse på 1000 millisekunder eller ett sekund.

defnedtelling():
global time_restering
hvis time_restering > 0:
time_restering -= 1
timeLabel.config (tekst="Tid igjen: " + str (tid som gjenstår))
timeLabel.after(1000, nedtelling)

Initialiser tkinter-forekomsten og vis rotvinduet. Angi tittel, dimensjoner i piksler og bakgrunnsfarge for vinduet.

root = Tk()
root.title("Fargespill med en vri")
root.geometry("750 x 450")
root.configure (bakgrunn='Oransje')

Bruke Merkelapp widget for å instruere spilleren om spillinstruksjonen. Den godtar det overordnede vinduet du vil plassere det i. Teksten skal vise skrifttype og størrelse sammen med bakgrunnsfargen på etiketten. Bruke pakke() funksjon for å organisere etikettmodulen i blokker før du plasserer dem i overordnet widget.

På samme måte definerer du poengetiketten for å instruere brukeren om å trykke Tast inn for å starte spillet samt en tidsetikett for å vise gjenværende tid. Sørg for at alle etikettene har en oransje bakgrunnsfarge, slik at de smelter inn i bakgrunnen. Definer en tom etikett som vil inneholde fargenavnene i nextColour() funksjon.

instruksjoner = Etikett (root, tekst="Skriv inn fargen på ordet ikke teksten ;)", font=('Arial', 24), bg="oransje")
instruktioner.pack()
scoreLabel = Etikett (root, text="Trykk Enter for å begynne", font=('Arial', 24), bg="oransje")
scoreLabel.pack()
timeLabel = Etikett (root, text="Gjenstående tid: " + str (tid som gjenstår), font=('Arial', 24), bg="oransje")
timeLabel.pack()
label = Etikett (root, font=('Arial', 90), bg="oransje")

Som nevnt tidligere, bruk inngangswidgeten til å fange opp spillerens svar. Et viktig trinn er å binde Enter-tasten med en hendelse i tkinter-vinduet slik at når spilleren trykker på den, vil en bestemt funksjon utføres.

For å oppnå dette, passerer du nøkkelen og beginGame() fungere som parametere til binde() funksjon. Bruk i tillegg pakke() og fokus_sett() metoder for å organisere og sette fokus på inndataetiketten når du trykker på Enter-tasten.

e = Entry (font=20)
root.bind('', begynn spillet)
e.pack()
e.focus_set()

De mainloop() funksjonen forteller Python å kjøre tkinter-hendelsesløkken og lytte etter hendelser (for eksempel knappetrykk) til du lukker vinduet.

root.mainloop()

Sett all koden sammen, og du har fargespillet med en vri klar til å spille på fingertuppene.

Utdata fra fargespill ved hjelp av Python

Når du kjører Color Game-programmet, vises et vindu på skjermen. Når du trykker på Enter, begynner nedtellingen, og spilleren må begynne å skrive fargen på ordet. For hvert riktig svar øker poengsummen med én, og til slutt viser den den endelige poengsummen.

Utvikle spill ved hjelp av Python

Python er et fantastisk språk for spillutvikling. Språket er ikke bare enkelt å forstå og bruke, men det gjør også spillutviklere på alle erfaringsnivåer i stand til å skape fantastiske spillverdener som er interessante og underholdende.

I tillegg har skapere et stort utvalg av alternativer når det gjelder å bringe ideer til live, takket være de forskjellige spillutviklingsplattformene som er tilgjengelige på markedet, som PyGame eller Kivy.