Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

Battlefield2, World of Tanks, The Sims4 og Freedom Force er nogle af de tusindvis af fantastiske spil, der blev udviklet med Python.

Tkinter, standard Python-grænsefladen til Tk GUI-værktøjssættet, er et kraftfuldt modul, der gør det nemt og sjovt at skabe grafiske brugergrænseflader. Benyt dette modul til at udvikle et tankevækkende farvespil. Lær også at bruge modulet undervejs.

Hvad er farvespillet?

I farvespillet viser programmet navnet på en farve på skærmen, men i en anden skriftfarve. For eksempel viser den ordet Gul ved at bruge en rød skriftfarve, og spilleren skal indtaste tekstens farve.

Denne uoverensstemmelse mellem information og timeren skaber en mængde forvirring og skaber en underholdende spilleoplevelse.

Tkinter og Random-modulet

For at bygge farvespillet skal du bruge tkinter modul og tilfældig modul. Tkinter er et enkelt og brugervenligt GUI-modul på tværs af platforme, som du kan bruge til hurtigt at skabe grafiske brugergrænseflader.

instagram viewer

Det har nogle nyttige værktøjer såsom etiket- og indgangswidgets og layoutadministratorer såsom pakke, gitter og sted. De tilvejebragte funktioner er ret ligetil, hvilket gør det nemt for nybegyndere at designe apps uden stor indsats. For at installere tkinter i dit system skal du køre følgende kommando i terminalen:

pip installer tkinter

Det tilfældige modul er et indbygget bibliotek, som du kan bruge til at generere tilfældige valg. Ved at bruge dette modul, du kan udvikle håndcricketspil, tal-gættespil, magiske otte-bold spil, tilfældige adgangskodegeneratorer, og mange flere.

Sådan bygger du et farvespil ved hjælp af Python

Kildekoden til farvespillet er tilgængelig i en GitHub-depot og er gratis for dig at bruge under MIT-licensen.

Start med at importere tkinter og det tilfældige modul. Gem navnet på farverne som en liste over strenge og initialiser score variabel til 0 og resterende tid til 60.

fra tkinter importere *
importere tilfældig

farver = ['Rød', 'Grøn', 'Blå', 'Sort', 'Lyserød', 'Hvid', 'lilla', 'Gul', 'Brun']
score = 0
time_restering = 60

Definer en funktion med navn startGame() der tager begivenhed som input-argument. Funktionen udfører to opgaver. Først tjekker den, om resterende tid svarer til 60. Hvis ja, kalder den og udfører nedtælling() fungere. For det andet kalder det næste farve() funktion, der tilfældigt blander og viser farven og scoren, når spillet er i gang.

defbegynde spil(begivenhed):
hvis resterende tid == 60:
nedtælling()
næste farve()

Definer en funktion med navn næste farve() og referer til variablerne globalt. Hvis den resterende tid er større end 0, skal du indstille fokus på inputfeltet ved hjælp af fokus_sæt() metode på indtastningsetiketten (gemt i variabel e) defineret i den senere halvdel af koden.

Brug få() metode til at hente postens aktuelle tekst som en streng og omdanne den til små bogstaver for at undgå uoverensstemmelse mellem store og små bogstaver. Hvis dette svarer til den farve, der vises på skærmen, skal du øge scoren med én. Brug slet() funktion fra 0 til det sidste indeks på indtastningswidgetten for at rydde indholdet.

defnæste farve():
global score
global resterende tid
hvis resterende tid > 0:
e.focus_set()
hvis e.get().lower() == farver[1].nederste():
score += 1
e.delete(0, SLUT)

Brug blande() funktion til at omarrangere elementer på listen og vise farveetiketten med teksten som den første farve på listen og skriftfarven som den anden farve på listen. Brug config() funktion på scoreLabel (der beder om at trykke på Enter) for at vise resultatet, mens spillet er i gang.

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

Definer en funktion med navn nedtælling() der refererer til den resterende variabel og formindsker den med én. Brug config() funktion på tidsmærke for at vise den resterende tid på skærmen og efter() funktion til at ringe tilbage nedtælling funktion efter en forsinkelse på 1000 millisekunder eller et sekund.

defnedtælling():
global resterende tid
hvis resterende tid > 0:
resterende tid -= 1
timeLabel.config (text="Tid tilbage: " + str (tid_resterende))
timeLabel.after(1000, nedtælling)

Initialiser tkinter-forekomsten og vis rodvinduet. Indstil vinduets titel, dimensioner i pixels og baggrundsfarve.

root = Tk()
root.title("Farvespil med et twist")
root.geometry("750x450")
root.configure (baggrund='Orange')

Brug Etiket widget til at instruere spilleren om spilinstruktionen. Det accepterer det overordnede vindue, hvor du vil placere det. Teksten skal vise skrifttype og -størrelse sammen med etikettens baggrundsfarve. Brug pakke() funktion til at organisere etiket-widgetten i blokke, før de placeres i den overordnede widget.

På samme måde skal du definere nodemærkaten for at instruere brugeren om at trykke Gå ind for at starte spillet samt en tidslabel for at vise den resterende tid. Sørg for, at alle etiketterne har en orange baggrundsfarve, så de falder ind i baggrunden. Definer en tom etiket, der vil indeholde farvenavnene i næste farve() fungere.

instruktioner = Etiket (rod, tekst ="Skriv farven på ordet ikke teksten ;)", skrifttype=('Arial', 24), bg="orange")
instruktioner.pack()
scoreLabel = Etiket (rod, tekst="Tryk på Enter for at begynde", skrifttype=('Arial', 24), bg="orange")
scoreLabel.pack()
timeLabel = Label (rod, tekst="Resterende tid: " + str (resterende tid), font=('Arial', 24), bg="orange")
timeLabel.pack()
label = Label (rod, skrifttype=('Arial', 90), bg="orange")

Som nævnt tidligere, brug indtastningswidgetten til at fange spillerens svar. Et vigtigt trin er at binde Enter-tasten med en begivenhed i tkinter-vinduet, så når afspilleren trykker på den, vil en bestemt funktion udføres.

For at opnå dette skal du bestå nøglen og startGame() fungere som parametre til binde() fungere. Brug desuden pakke() og fokus_sæt() metoder til at organisere og sætte fokus på inputetiketten, når du trykker på Enter-tasten.

e = Indtastning (font=20)
root.bind('', startGame)
e.pack()
e.focus_set()

Det mainloop() funktion fortæller Python at køre tkinter event loop og lytte efter begivenheder (såsom knaptryk), indtil du lukker vinduet.

root.mainloop()

Sæt al koden sammen, og du har farvespillet med et twist klar til at spille lige ved hånden.

Output af farvespil ved hjælp af Python

Når du kører programmet Color Game, vises et vindue på skærmen. Når du trykker på Enter, begynder nedtællingen, og spilleren skal begynde at skrive farven på ordet. For hvert korrekt svar stiger scoren med én, og i sidste ende viser den den endelige score.

Udvikling af spil ved hjælp af Python

Python er et fantastisk sprog til spiludvikling. Sproget er ikke kun enkelt at forstå og bruge, men det gør det også muligt for spiludviklere på alle oplevelsesniveauer at skabe fantastiske spilverdener, der er interessante og underholdende.

Derudover har skabere en bred vifte af muligheder, når det kommer til at bringe ideer ud i livet, takket være de forskellige spiludviklingsplatforme, der er tilgængelige på markedet, såsom PyGame eller Kivy.