Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Weiterlesen.

Battlefield2, World of Tanks, Die Sims4 und Freedom Force sind nur einige der Tausenden von fantastischen Spielen, die mit Python entwickelt wurden.

Tkinter, die Standard-Python-Schnittstelle zum Tk-GUI-Toolkit, ist ein leistungsstarkes Modul, das das Erstellen grafischer Benutzeroberflächen einfach und unterhaltsam macht. Nutzen Sie dieses Modul, um ein verblüffendes Farbspiel zu entwickeln. Lernen Sie dabei auch, wie Sie das Modul verwenden.

Was ist das Farbspiel?

Beim Farbspiel zeigt das Programm den Namen einer Farbe auf dem Bildschirm an, jedoch in einer anderen Schriftfarbe. Beispielsweise zeigt es das Wort an Gelb Verwenden Sie eine rote Schriftfarbe und der Spieler muss die Farbe des Textes eingeben.

Diese Nichtübereinstimmung von Informationen zusammen mit dem Timer schafft eine Vielzahl von Verwirrung und schafft ein unterhaltsames Spielerlebnis.

instagram viewer

Das Tkinter- und Random-Modul

Um das Farbspiel zu erstellen, verwenden Sie die tkinter Modul und die willkürlich Modul. Tkinter ist ein plattformübergreifendes, einfaches und benutzerfreundliches GUI-Modul, mit dem Sie schnell grafische Benutzeroberflächen erstellen können.

Es verfügt über einige nützliche Tools wie das Label- und Entry-Widget sowie Layout-Manager wie Pack, Grid und Place. Die bereitgestellten Funktionen sind ziemlich einfach und machen es Programmieranfängern leicht, Apps ohne großen Aufwand zu entwerfen. Um tkinter in Ihrem System zu installieren, führen Sie den folgenden Befehl im Terminal aus:

pip installiere tkinter

Das Zufallsmodul ist eine eingebaute Bibliothek, mit der Sie Zufallsauswahlen generieren können. Mit diesem Modul Sie können Hand-Cricket-Spiele entwickeln, Zahlenratespiele, magische Achtballspiele, Zufällige Passwortgeneratoren, und viele mehr.

So erstellen Sie ein Farbspiel mit Python

Der Quellcode des Farbspiels ist in a verfügbar GitHub-Repository und steht Ihnen unter der MIT-Lizenz kostenlos zur Verfügung.

Beginnen Sie mit dem Importieren von tkinter und dem random-Modul. Speichern Sie die Namen der Farben als Liste von Zeichenfolgen und initialisieren Sie die Punktzahl Variable auf 0 und verbleibende Zeit bis 60.

aus tkinter importieren *
importieren willkürlich

Farben = ['Rot', 'Grün', 'Blau', 'Schwarz', 'Rosa', 'Weiss', 'Lila', 'Gelb', 'Braun']
Punktzahl = 0
verbleibende Zeit = 60

Definieren Sie eine Funktion namens beginGame() das macht Fall als Eingabeargument. Die Funktion führt zwei Aufgaben aus. Zunächst wird geprüft, ob die verbleibende Zeit gleich 60. Wenn ja, ruft es die auf und führt sie aus Countdown() Funktion. Zweitens ruft es die nächste Farbe () Funktion, die zufällig mischt und die Farbe und den Punktestand anzeigt, wenn das Spiel läuft.

defstartGame(Fall):
Wenn verbleibende Zeit == 60:
Countdown()
nächsteFarbe()

Definieren Sie eine Funktion namens nächsteFarbe() und die Variablen global referenzieren. Wenn die verbleibende Zeit größer als 0 ist, setzen Sie mit den Fokus auf das Eingabefeld focus_set() Methode auf dem Eintragslabel (gespeichert in variable e) in der späteren Hälfte des Codes definiert.

Verwenden Sie die erhalten() -Methode, um den aktuellen Text des Eintrags als Zeichenfolge abzurufen und ihn in Kleinbuchstaben umzuwandeln, um eine Nichtübereinstimmung der Groß- und Kleinschreibung zu vermeiden. Wenn dies der auf dem Bildschirm angezeigten Farbe entspricht, erhöhen Sie die Punktzahl um eins. Verwenden Sie die löschen() Funktion von 0 bis zum letzten Index im Eintrags-Widget, um den Inhalt zu löschen.

defnächsteFarbe():
global Punktzahl
global verbleibende Zeit
Wenn verbleibende Zeit > 0:
e.focus_set()
Wenn e.get().lower() == Farben[1].untere():
Punktzahl += 1
e.löschen(0, ENDE)

Verwenden Sie die Mischen() Funktion, um Elemente in der Liste neu anzuordnen und das Farbetikett mit dem Text als erste Farbe in der Liste und der Schriftfarbe als zweite Farbe in der Liste anzuzeigen. Verwenden Sie die config() Funktion an PunktzahlLabel (das Sie auffordert, die Eingabetaste zu drücken), um die Punktzahl anzuzeigen, während das Spiel in der Sitzung ist.

 random.shuffle (Farben)
label.config (fg=str (Farben[1]), text=str (Farben[0]))
scoreLabel.config (text="Punktzahl: " + Str (Punktzahl))

Definieren Sie eine Funktion namens Countdown() die auf die verbleibende Zeitvariable verweist und sie um eins dekrementiert. Verwenden Sie die config() Funktion auf der timeLabel um die verbleibende Zeit auf dem Bildschirm anzuzeigen und die nach() Funktion zum Rückruf Countdown Funktion nach einer Verzögerung von 1000 Millisekunden oder einer Sekunde.

defCountdown():
global verbleibende Zeit
Wenn verbleibende Zeit > 0:
verbleibende Zeit -= 1
timeLabel.config (text="Übrige Zeit: " + str (verbleibende Zeit))
timeLabel.after(1000, Countdown)

Initialisieren Sie die tkinter-Instanz und zeigen Sie das Root-Fenster an. Legen Sie den Titel, die Abmessungen in Pixel und die Hintergrundfarbe des Fensters fest.

Wurzel = Tk()
root.title("Farbspiel mit einem Twist")
root.geometry("750 x 450")
root.configure (Hintergrund='Orange')

Verwenden Sie die Etikett Widget, um den Spieler über die Spielanleitung zu informieren. Es akzeptiert das übergeordnete Fenster, in dem Sie es platzieren würden. Der Text sollte die Schriftart und -größe zusammen mit der Hintergrundfarbe des Etiketts anzeigen. Verwenden Sie die Pack() Funktion, um das Etiketten-Widget in Blöcken zu organisieren, bevor sie im übergeordneten Widget platziert werden.

Definieren Sie auf ähnliche Weise die Partiturbezeichnung, um den Benutzer anzuweisen, zu drücken Eingeben um das Spiel zu beginnen, sowie ein Zeitlabel, um die verbleibende Zeit anzuzeigen. Stellen Sie sicher, dass alle Etiketten eine orangefarbene Hintergrundfarbe haben, damit sie sich in den Hintergrund einfügen. Definieren Sie ein leeres Etikett, das die Farbnamen in der enthält nächsteFarbe() Funktion.

Anweisungen = Bezeichnung (Stamm, Text="Geben Sie die Farbe des Wortes ein, nicht den Text ;)", Schriftart=('Arial', 24), bg="orange")
Anweisungen.pack()
scoreLabel = Bezeichnung (root, text="Drücken Sie die Eingabetaste, um zu beginnen", Schriftart=('Arial', 24), bg="orange")
scoreLabel.pack()
timeLabel = Bezeichnung (root, text=„Verbleibende Zeit:“ + str (verbleibende Zeit), Schriftart=('Arial', 24), bg="orange")
timeLabel.pack()
label = Label (root, font=('Arial', 90), bg="orange")

Verwenden Sie, wie bereits erwähnt, das Eingabe-Widget, um die Antwort des Spielers zu erfassen. Ein wichtiger Schritt besteht darin, die Eingabetaste mit einem Ereignis im Tkinter-Fenster zu verknüpfen, sodass eine bestimmte Funktion ausgeführt wird, wenn der Spieler darauf drückt.

Um dies zu erreichen, passieren Sie die Schlüssel und die beginGame() Funktion als Parameter für die binden() Funktion. Verwenden Sie zusätzlich die Pack() Und focus_set() Methoden zum Organisieren und Fokussieren der Eingabebezeichnung, sobald Sie die Eingabetaste drücken.

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

Der Hauptschleife() Die Funktion weist Python an, die tkinter-Ereignisschleife auszuführen und auf Ereignisse (z. B. Tastendrücke) zu warten, bis Sie das Fenster schließen.

root.mainloop()

Setzen Sie den gesamten Code zusammen, und Sie haben das Farbspiel mit einem Twist, der zum Spielen bereit ist.

Ausgabe des Farbspiels mit Python

Beim Ausführen des Color Game-Programms erscheint ein Fenster auf dem Bildschirm. Beim Drücken der Eingabetaste beginnt der Countdown und der Spieler muss mit der Eingabe der Farbe des Wortes beginnen. Für jede richtige Antwort erhöht sich die Punktzahl um eins und zeigt am Ende die Endpunktzahl an.

Spiele entwickeln mit Python

Python ist eine fantastische Sprache für die Spieleentwicklung. Die Sprache ist nicht nur einfach zu verstehen und zu verwenden, sondern ermöglicht es auch Spieleentwicklern aller Erfahrungsstufen, atemberaubende Spielwelten zu schaffen, die interessant und unterhaltsam sind.

Darüber hinaus haben Entwickler dank der verschiedenen auf dem Markt verfügbaren Spieleentwicklungsplattformen wie PyGame oder Kivy eine Vielzahl von Optionen, wenn es darum geht, Ideen zum Leben zu erwecken.