Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

Battlefield2, World of Tanks, The Sims4 en Freedom Force zijn enkele van de duizenden geweldige games die met Python zijn ontwikkeld.

Tkinter, de standaard Python-interface voor de Tk GUI-toolkit, is een krachtige module die het maken van grafische gebruikersinterfaces eenvoudig en leuk maakt. Maak gebruik van deze module om een ​​breinbrekend kleurenspel te ontwikkelen. Leer onderweg ook hoe u de module gebruikt.

Wat is het kleurenspel?

In de Color Game geeft het programma de naam van een kleur op het scherm weer, maar in een andere letterkleur. Het geeft bijvoorbeeld het woord weer Geel met behulp van een rode letterkleur en de speler moet de kleur van de tekst typen.

Deze mismatch van informatie samen met de timer zorgt voor veel verwarring en zorgt voor een vermakelijke speelervaring.

De Tkinter en willekeurige module

Om het kleurenspel te bouwen, gebruik je de

instagram viewer
tkinter moduul en de willekeurig moduul. Tkinter is een platformonafhankelijke, eenvoudige en gebruiksvriendelijke GUI-module die u kunt gebruiken om snel grafische gebruikersinterfaces te maken.

Het heeft een aantal handige tools zoals de label- en invoerwidgets en lay-outmanagers zoals pack, grid en place. De aangeboden functies zijn vrij eenvoudig, waardoor het voor beginnende programmeurs gemakkelijk is om zonder veel moeite apps te ontwerpen. Om tkinter in uw systeem te installeren, voert u de volgende opdracht uit in de terminal:

pip installeer tkinter

De willekeurige module is een ingebouwde bibliotheek waarmee u willekeurige keuzes kunt genereren. Met behulp van deze module je kunt handcricketspellen ontwikkelen, spellen om het aantal te raden, magische spellen met acht ballen, willekeurige wachtwoordgeneratoren, en nog veel meer.

Hoe een kleurenspel te bouwen met behulp van Python

De broncode van de Color Game is beschikbaar in een GitHub-opslagplaats en is gratis voor u om te gebruiken onder de MIT-licentie.

Begin met het importeren van de tkinter en de willekeurige module. Sla de naam van de kleuren op als een lijst met tekenreeksen en initialiseer de scoren variabel naar 0 en overgebleven tijd tot 60.

van tkinter importeren *
importeren willekeurig

kleuren = ['Rood', 'Groente', 'Blauw', 'Zwart', 'Roze', 'Wit', 'Paars', 'Geel', 'Bruin']
scoren = 0
resterende tijd = 60

Definieer een functie met de naam beginSpel() dat duurt evenement als invoerargument. De functie voert twee taken uit. Eerst wordt gecontroleerd of de overgebleven tijd gelijk aan 60. Zo ja, dan wordt het aangeroepen en uitgevoerd aftellen() functie. Ten tweede roept het de volgendekleur() functie die willekeurig schudt en de kleur en de score weergeeft wanneer het spel bezig is.

defbeginSpel(evenement):
als resterende tijd == 60:
aftellen()
volgendeKleur()

Definieer een functie met de naam volgendeKleur() en verwijs globaal naar de variabelen. Als de resterende tijd groter is dan 0, stelt u de focus in op het invoerveld met behulp van de focus_set() methode op het invoerlabel (opgeslagen in variabele e) gedefinieerd in de tweede helft van de code.

Gebruik de krijgen() methode om de huidige tekst van het item op te halen als een tekenreeks en deze om te zetten in kleine letters om niet-overeenkomende hoofdletters te voorkomen. Als dit gelijk is aan de kleur die op het scherm wordt weergegeven, verhoog dan de score met één. Gebruik de verwijderen() functie van de 0 tot de laatste index op de invoerwidget om de inhoud te wissen.

defvolgendeKleur():
globaal scoren
globaal overgebleven tijd
als resterende tijd > 0:
e.focus_set()
als e.get().lower() == kleuren[1].lager():
scoor += 1
e.verwijderen(0, EINDE)

Gebruik de schudden() functie om items in de lijst opnieuw te ordenen en het kleurlabel weer te geven met de tekst als de eerste kleur in de lijst en de letterkleur als de tweede kleur in de lijst. Gebruik de configuratie() functie aan scoreLabel (die vraagt ​​om op Enter te drukken) om de score weer te geven terwijl het spel bezig is.

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

Definieer een functie met de naam aftellen() die verwijst naar de variabele resterende tijd en deze met één verlaagt. Gebruik de configuratie() functie op de tijdLabel om de resterende tijd op het scherm weer te geven en de na() functie om terug te bellen aftellen functie na een vertraging van 1000 milliseconden of een seconde.

defaftellen():
globaal overgebleven tijd
als resterende tijd > 0:
resterende tijd -= 1
timeLabel.config (tekst="Tijd over: " + str (resterende tijd))
timeLabel.after(1000, aftellen)

Initialiseer de tkinter-instantie en geef het hoofdvenster weer. Stel de titel, afmetingen in pixels en achtergrondkleur van het venster in.

wortel = Tk()
hoofdmap.titel("Kleurenspel met een twist")
root.geometry("750x450")
root.configure (achtergrond='Oranje')

Gebruik de Etiket widget om de speler te instrueren over de spelinstructie. Het accepteert het bovenliggende venster waarin u het zou plaatsen. De tekst moet het lettertype en de grootte weergeven samen met de achtergrondkleur van het label. Gebruik de pak() functie om de labelwidget in blokken te organiseren voordat ze in de bovenliggende widget worden geplaatst.

Definieer op dezelfde manier het scorelabel om de gebruiker te instrueren op te drukken Binnenkomen om het spel te beginnen, evenals een tijdlabel om de resterende tijd weer te geven. Zorg ervoor dat alle labels een oranje achtergrondkleur hebben, zodat ze opgaan in de achtergrond. Definieer een leeg label dat de kleurnamen in het volgendeKleur() functie.

instructies = Label (hoofdmap, tekst="Typ de kleur van het woord, niet de tekst ;)", lettertype=('Arial', 24), bg="oranje")
instructies.pack()
scoreLabel = Label (hoofdmap, tekst="Druk op Enter om te beginnen", lettertype=('Arial', 24), bg="oranje")
scoreLabel.pack()
timeLabel = Label (hoofdmap, tekst="Overgebleven tijd: " + str (resterende tijd), font=('Arial', 24), bg="oranje")
timeLabel.pack()
label = Label (root, font=('Arial', 90), bg="oranje")

Gebruik, zoals eerder vermeld, de invoerwidget om het antwoord van de speler vast te leggen. Een belangrijke stap is het koppelen van de Enter-toets aan een gebeurtenis in het tkinter-venster, zodat wanneer de speler erop drukt, een bepaalde functie wordt uitgevoerd.

Om dit te bereiken, passeer je de sleutel en de beginSpel() functioneren als parameters voor de binden() functie. Gebruik daarnaast de pak() En focus_set() methoden om het invoerlabel te organiseren en de focus erop te zetten zodra u op de Enter-toets drukt.

e = invoer (lettertype=20)
root.bind('', beginSpel)
e.pack()
e.focus_set()

De Hoofdlus() functie vertelt Python om de tkinter-gebeurtenislus uit te voeren en te luisteren naar gebeurtenissen (zoals het indrukken van knoppen) totdat u het venster sluit.

root.mainloop()

Zet alle code bij elkaar en je hebt de Color Game met een twist klaar om te spelen binnen handbereik.

Uitvoer van kleurenspel met behulp van Python

Bij het uitvoeren van het Color Game-programma verschijnt er een venster op het scherm. Door op Enter te drukken, begint het aftellen en moet de speler beginnen met het typen van de kleur van het woord. Voor elk correct antwoord wordt de score met één verhoogd en uiteindelijk wordt de eindscore weergegeven.

Games ontwikkelen met behulp van Python

Python is een fantastische taal voor het ontwikkelen van games. De taal is niet alleen eenvoudig te begrijpen en te gebruiken, maar stelt game-ontwikkelaars van alle ervaringsniveaus ook in staat om verbluffende spelwerelden te creëren die interessant en vermakelijk zijn.

Bovendien hebben makers een breed scala aan opties als het gaat om het tot leven brengen van ideeën, dankzij de verschillende platforms voor game-ontwikkeling die op de markt beschikbaar zijn, zoals PyGame of Kivy.