Erstellen Sie dieses unterhaltsame Numerologiespiel in Python, um die Manipulation von Zeichenfolgen zu üben und mehr über Tkinter zu erfahren.

FLAMES ist ein lustiges Spiel für Kinder, das für Freunde, Liebhaber, Zärtlich, Ehe und Feinde steht. Das Spiel nimmt die Namen von zwei Personen und bestimmt mit einer Reihe von Schritten ihre Beziehung. Um FLAMES zu spielen, notieren Sie sich die Namen der beiden Personen, eliminieren Sie die übereinstimmenden Buchstaben und erhalten Sie die Anzahl der verbleibenden Zeichen.

Wiederholen Sie die Buchstaben des Wortes FLAMES mit der Zählung und entfernen Sie diesen Buchstaben. Wenn die Zählung beispielsweise vier ist, entfernen Sie den Buchstaben M. Die Zählung beginnt wieder bei E. Wiederholen Sie diesen Vorgang, bis nur noch ein Buchstabe übrig bleibt, der den Beziehungsstatus angibt.

Das Tkinter-Modul

Um das FLAMES-Spiel zu erstellen, verwenden Sie das Tkinter-Modul. Tkinter ist ein plattformübergreifendes, einfaches und benutzerfreundliches Modul, mit dem Sie schnell grafische Benutzeroberflächen erstellen können. Einige der Anwendungen, die Sie als Anfänger mit Tkinter erstellen können, sind a

instagram viewer
Musikspieler, Kalender, Gewichtsumrechnungstool, und ein Wort-Jumble-Spiel.

Um tkinter in Ihrem System zu installieren, führen Sie den folgenden Befehl im Terminal aus:

pip installiere tkinter

So erstellen Sie ein FLAMES-Spiel mit Python

Hier finden Sie den Quellcode des FLAMES-Spiels mit Python GitHub-Repository.

Importieren Sie das Tkinter-Modul. Funktion definieren, remove_match_char() die zwei Listen als Eingabe akzeptiert. Verwenden Sie eine verschachtelte for-Schleife, um beide Listen zu durchlaufen. Überprüfen Sie, ob es ein passendes Zeichen gibt; Wenn ja, entfernen Sie es aus beiden Listen und erstellen Sie eine dritte Liste, die beide Listen mit einem Sternchen dazwischen verkettet. Der Stern dient als Trennzeichen.

Gibt die dritte Liste zusammen mit der gefundenen Übereinstimmung als True zurück. Falls keine Buchstaben übereinstimmen, geben Sie die Liste wie oben erstellt zurück.

aus tkinter importieren *

defremove_match_char(Liste1, Liste2):
für ich In Bereich (len (list1)):
für J In Bereich (len (list2)):
Wenn Liste1[i] == Liste2[j]:
c = Liste1[i]
list1.remove (c)
list2.remove (c)
Liste3 = Liste1 + ["*"] + Liste2
zurückkehren [Liste3, WAHR]
Liste3 = Liste1 + ["*"] + Liste2
zurückkehren [Liste3, FALSCH]

Funktion definieren, tell_status(). Rufen Sie den Namen der Person ab, die der Benutzer mithilfe von eingegeben hat erhalten() -Methode im Eingabe-Widget. Wandeln Sie alle Buchstaben in Kleinbuchstaben um und entfernen Sie alle Leerzeichen dazwischen. Wandeln Sie den Namen in eine Liste von Zeichen um. Wiederholen Sie dies mit dem Namen der zweiten Person und setzen Sie die fortfahren variabel zu WAHR.

deftell_status():
p1 = Person1_field.get()
p1 = p1.lower()
p1.replace(" ", "")
p1_list = Liste (p1)
p2 = Person2_field.get()
p2 = p2.lower()
p2.replace(" ", "")
p2_list = Liste (p2)
fortfahren = WAHR

Rufen Sie die auf, bis der Wert von Continue wahr ist remove_match_char() -Funktion und übergeben Sie die beiden Listen, die Sie gerade erstellt haben. Speichern Sie die verkettete Liste und den von der Funktion empfangenen Flag-Status. Suchen Sie den Index des Sterns, den Sie eingefügt haben, und schneiden Sie die Zeichenfolgen in zwei Listen davor und danach.

Zählen Sie die Anzahl der Zeichen in den beiden Listen und definieren Sie eine Liste, die die verschiedenen Status speichert, die eine Beziehung gemäß dem FLAMES-Spiel haben kann.

während fortfahren:
ret_list = remove_match_char (p1_list, p2_list)
con_list = ret_list[0]
fortfahren = ret_list[1]
star_index = con_list.index("*")
p1_list = con_list[: star_index]
p2_list = con_list[star_index + 1:]

count = len (p1_list) + len (p2_list)
Ergebnis = ["Freunde", "Liebe", "Zuneigung", "Hochzeit", "Feind", "Geschwister"]

Bis die Buchstaben in der Ergebnisliste nicht Null sind, speichern Sie den Indexwert, von dem aus Sie das Slicing durchführen müssen. Wenn der Index größer oder gleich Null ist, teilen Sie die Listen in zwei Teile auf und speichern Sie die verkettete Zeichenfolge, wobei der rechte Teil der Reihe nach zuerst hinzugefügt wird. Dadurch wird sichergestellt, dass Sie gegen den Uhrzeigersinn zählen können.

Fügen Sie das Ergebnis an der ersten Zeichenposition in das Statusfeld ein, um den Beziehungsstatus anzuzeigen.

während len (Ergebnis) > 1:
split_index = (count % len (Ergebnis) - 1)

Wenn split_index >= 0:
rechts = result[split_index + 1:]
left = result[: split_index]
Ergebnis = rechts + links
anders:
Ergebnis = Ergebnis[: len (Ergebnis) - 1]

Status_field.insert(0, Ergebnis[0])

Funktion definieren, alles löschen(). Verwenden Sie die Funktion delete() vom ersten bis zum letzten Index in den drei Eingabefeldern, um den auf dem Bildschirm angezeigten Inhalt zu löschen. Verwenden Sie die Methode focus_set() für das erste Eingabefeld, um es zu aktivieren und den Benutzer anzuweisen, Werte darin einzugeben.

defalles löschen():
Person1_field.delete(0, ENDE)
Person2_field.delete(0, ENDE)
Status_field.delete(0, ENDE)
Person1_field.focus_set()

Initialisieren Sie die Tkinter-Instanz und zeigen Sie das Stammfenster an, indem Sie es an die Klasse übergeben. Legen Sie die Hintergrundfarbe Ihrer Wahl, die Größe und den Titel Ihrer Anwendung fest.

Wurzel = Tk()
root.configure (Hintergrund='#A020F0')
root.geometry("700 x 200")
root.title("FLAMMEN-Spiel")

Definieren Sie drei Labels, um die beiden Personen und ihren Beziehungsstatus zu kennzeichnen. Legen Sie das übergeordnete Fenster fest, in dem Sie sie platzieren möchten, den anzuzeigenden Text, die Schriftfarbe, die Hintergrundfarbe und die Schriftstile. Fügen Sie etwas Polsterung in horizontaler Richtung hinzu.

label1 = Label (Stamm, Text="Name 1: ", fg='#ffffff',bg='#A020F0', Schriftart=("arial",20,"deutlich"), padx='20')
label2 = Label (Stamm, Text="Name 2: ", fg='#ffffff',bg='#A020F0', Schriftart=("arial",20,"deutlich"), padx='20')
label3 = Label (Stamm, Text="Beziehungsstatus: ", fg='#ffffff', bg='#A020F0',Schriftart=("arial",20,"deutlich"), padx='20')

Verwenden Sie den Grid-Manager, um die drei Widgets in der ersten Spalte anzuordnen. Platzieren Sie das erste Etikett in der zweiten Reihe, das zweite Etikett in der dritten Reihe und das dritte Etikett in der vierten Reihe.

label1.grid (Zeile=1, Spalte=0)
label2.grid (Zeile=2, Spalte=0)
label3.grid (Zeile=4, Spalte=0)

Definieren Sie drei Eingabe-Widgets, um die Werte der beiden Personen zu erhalten und ihren Status anzuzeigen. Legen Sie das übergeordnete Fenster fest, in dem Sie die Widgets platzieren möchten, und die Schriftarten, die es haben soll.

Person1_field = Eintrag (root, font=("arial", 15, "deutlich"))
Person2_field = Eintrag (root, font=("arial", 15, "deutlich"))
Status_field = Eintrag (root, font=("arial",15,"deutlich"))

Verwenden Sie auf ähnliche Weise den Grid-Manager, um die Widgets in der zweiten Spalte zu organisieren. Verwenden Sie die ipadx -Eigenschaft, um die Anzahl der Pixel festzulegen, die innerhalb der Ränder des Widgets aufgefüllt werden sollen.

Person1_field.grid (Zeile=1, Spalte=1, ipadx="50")
Person2_field.grid (Zeile=2, Spalte=1, ipadx="50")
Status_field.grid (Zeile=4, Spalte=1, ipadx="50")

Definieren Sie zwei Schaltflächen, Einreichen Und Klar. Legen Sie das übergeordnete Fenster fest, in dem Sie sie platzieren möchten, den anzuzeigenden Text, die Hintergrundfarbe, die Schriftfarbe, die Funktionen, die sie beim Klicken ausführen sollen, und die Schriftstile.

Verwenden Sie den Grid-Manager, um die Schaltflächen jeweils in der vierten und sechsten Reihe der zweiten Spalte zu platzieren.

button1 = Schaltfläche (root, text="Einreichen", bg="#00ff00", fg="Schwarz", command=tell_status, font=("arial",13,"deutlich") )
button2 = Schaltfläche (root, text="Klar", bg="#00ff00", fg="Schwarz", command=clear_all, Schriftart=("arial",13,"deutlich"))
button1.grid (Zeile=3, Spalte=1)
button2.grid (Zeile=5, Spalte=1)

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

root.mainloop()

Setzen Sie den gesamten Code zusammen und machen Sie sich bereit, das FLAMES-Spiel auf Knopfdruck zu spielen.

Beispielausgabe des FLAMES-Spiels

Beim Ausführen des obigen Programms zeigt das Programm die FLAMES-Spielanwendung mit drei Bezeichnungen, drei Eingabefeldern und zwei in einem Raster angeordneten Schaltflächen an. Bei der Eingabe der Namen „Tony Stark“ und „Pepper Potts“ zeigt das Programm deren Beziehungsstatus als „Love“ an.

Spiele, die Sie mit Python erstellen können

Pygame, Arcade, Panda3D, PyOpenGL und Pyglet sind einige nützliche Module, mit denen Sie Python-Spiele erstellen können. Mit Pygame können Sie 2D-Spiele wie Super Mario Bros, Flappy Bird und Snake erstellen. Mit Arcade können Sie einen Pac-Man-, Asteroids- oder Breakout-Klon erstellen.

Panda3D kann Ihnen beim Erstellen von 3D-Spielen wie Toontown Online, Pirates of the Caribbean Online und Disney's Virtual Magic Kingdom helfen.