Construisez ce jeu de numérologie amusant en Python pour pratiquer la manipulation de chaînes et en savoir plus sur Tkinter.

FLAMES est un jeu amusant pour les enfants représentant Amis, Amoureux, Affectueux, Mariage et Ennemis. Le jeu prend les noms de deux personnes et, avec une série d'étapes, détermine leur relation. Pour jouer à FLAMES, notez les noms des deux personnes, éliminez les lettres correspondantes et obtenez le nombre de caractères restants.

Itérez sur les lettres du mot FLAMMES en utilisant le décompte et supprimez cette lettre. Par exemple, si le compte est de quatre, supprimez la lettre M. Le décompte recommence à partir de E. Répétez ce processus jusqu'à ce qu'il ne reste qu'une seule lettre, ce qui indique le statut de la relation.

Le module Tkinter

Pour construire le jeu FLAMES, vous utiliserez le module Tkinter. Tkinter est un module multiplateforme, simple et convivial que vous pouvez utiliser pour créer rapidement des interfaces utilisateur graphiques. Certaines des applications que vous pouvez créer en tant que débutant à l'aide de Tkinter incluent un

instagram viewer
Lecteur de musique, Calendrier, Outil de conversion de poids, et un Jeu de fouillis de mots.

Pour installer tkinter sur votre système, exécutez la commande suivante dans le terminal :

pip installer tkinter

Comment construire le jeu FLAMES en utilisant Python

Vous pouvez trouver le code source du jeu FLAMES en utilisant Python dans ce Référentiel GitHub.

Importez le module Tkinter. Définir une fonction, remove_match_char() qui accepte deux listes en entrée. Utilisez une boucle for imbriquée pour parcourir les deux listes. Vérifiez s'il y a un caractère correspondant; s'il y en a, supprimez-le des deux listes et créez une troisième liste qui concatène les deux listes avec un astérisque entre les deux. L'astérisque sert de délimiteur.

Renvoie la troisième liste avec la correspondance trouvée comme True. Si aucune lettre ne correspond, renvoyez la liste telle que créée ci-dessus.

depuis tkinter importer *

définitivementremove_match_char(liste1, liste2):
pour je dans plage (len (list1)):
pour j dans plage (len (list2)):
si liste1[i] == liste2[j] :
c = liste1[i]
liste1.remove (c)
liste2.remove (c)
liste3 = liste1 + ["*"] + liste2
retour [liste3, Vrai]
liste3 = liste1 + ["*"] + liste2
retour [liste3, FAUX]

Définir une fonction, tell_status(). Récupérer le nom de la personne que l'utilisateur a saisi à l'aide de la obtenir() méthode sur le widget Entrée. Convertissez toutes les lettres en minuscules et éliminez les espaces entre les deux. Convertissez le nom en une liste de caractères. Répétez cette opération avec le nom de la deuxième personne et définissez le procéder variable à Vrai.

définitivementtell_status():
p1 = Person1_field.get()
p1 = p1.inférieur()
p1.replace(" ", "")
p1_list = liste (p1)
p2 = Person2_field.get()
p2 = p2.inférieur()
p2.replace(" ", "")
p2_list = liste (p2)
continuer = Vrai

Jusqu'à ce que la valeur de procéder soit vraie, appelez le remove_match_char() fonction et passez les deux listes que vous venez de créer. Stockez la liste concaténée et l'état de l'indicateur reçu de la fonction. Trouvez l'index de l'astérisque que vous avez inséré et découpez les chaînes en deux listes avant et après.

Comptez le nombre de caractères dans les deux listes et définissez une liste qui stocke les différents statuts qu'une relation peut avoir selon le jeu FLAMES.

alors que procéder:
ret_list = remove_match_char (p1_list, p2_list)
con_list = ret_list[0]
continuer = ret_list[1]
star_index = con_list.index("*")
p1_list = con_list[: star_index]
p2_list = con_list[étoile_index + 1:]

compte = len (p1_list) + len (p2_list)
résultat = ["Amis", "Aimer", "Affection", "Mariage", "Ennemi", "Frères et sœurs"]

Jusqu'à ce que les lettres de la liste de résultats ne soient pas nulles, stockez la valeur d'index à partir de laquelle vous devez effectuer le découpage. Si l'index est supérieur ou égal à zéro, découpez les listes en deux parties et stockez la chaîne concaténée avec la partie droite ajoutée en premier dans l'ordre. Cela garantit que vous pouvez compter dans le sens inverse des aiguilles d'une montre.

Insérez le résultat dans le champ d'état à la première position de caractère pour afficher l'état de la relation.

alors que len (résultat) > 1:
split_index = (count % len (résultat) - 1)

si split_index >= 0:
droite = résultat[split_index + 1:]
gauche = résultat[: split_index]
résultat = droite + gauche
autre:
résultat = résultat[: len (résultat) - 1]

Status_field.insert(0, résultat[0])

Définir une fonction, tout effacer(). Utilisez la fonction delete() du premier index au dernier sur les trois champs de saisie pour effacer le contenu affiché à l'écran. Utilisez la méthode focus_set() sur le premier champ de saisie pour l'activer et indiquer à l'utilisateur d'y saisir des valeurs.

définitivementtout effacer():
Person1_field.delete(0, FIN)
Person2_field.delete(0, FIN)
Status_field.delete(0, FIN)
Person1_field.focus_set()

Initialisez l'instance de Tkinter et affichez la fenêtre racine en la passant à la classe. Définissez la couleur de fond de votre choix, la taille et le titre de votre application.

racine = Tk()
root.configure (arrière-plan='#A020F0')
root.geometry("700x200")
racine.titre("Jeu FLAMMES")

Définissez trois étiquettes pour désigner les deux personnes et leur statut relationnel. Définissez la fenêtre parente dans laquelle vous souhaitez les placer, le texte qu'elle doit afficher, la couleur de police, la couleur d'arrière-plan et les styles de police. Ajoutez du rembourrage dans le sens horizontal.

label1 = Libellé (racine, texte="Nom 1: ", fg='#ffffff',bg='#A020F0', police=("arial",20,"gras"), padx='20')
label2 = Libellé (racine, text="Nom 2: ", fg='#ffffff',bg='#A020F0', police=("arial",20,"gras"), padx='20')
label3 = Libellé (racine, texte="Statut de la relation: ", fg='#ffffff', bg='#A020F0',police=("arial",20,"gras"), padx='20')

Utilisez le gestionnaire de grille pour organiser les trois widgets dans la première colonne. Placez la première étiquette dans la deuxième rangée, la deuxième étiquette dans la troisième rangée et la troisième étiquette dans la quatrième rangée.

label1.grid (ligne=1, colonne=0)
label2.grid (ligne=2, colonne=0)
label3.grid (ligne=4, colonne=0)

Définissez trois widgets d'entrée pour obtenir les valeurs des deux personnes et afficher leur statut. Définissez la fenêtre parente dans laquelle vous souhaitez placer les widgets et les styles de police qu'elle doit avoir.

Person1_field = Entrée (racine, font=("arial", 15, "gras"))
Person2_field = Entrée (racine, font=("arial", 15, "gras"))
Status_field = Entrée (racine, font=("arial",15,"gras"))

De même, utilisez le gestionnaire de grille pour organiser les widgets dans la deuxième colonne. Utilisez le ipad x propriété pour définir le nombre de pixels à remplir à l'intérieur des bordures du widget.

Person1_field.grid (ligne=1, colonne=1, ipadx="50")
Person2_field.grid (ligne=2, colonne=1, ipadx="50")
Status_field.grid (ligne=4, colonne=1, ipadx="50")

Définir deux boutons, Soumettre et Clair. Définissez la fenêtre parente dans laquelle vous souhaitez les placer, le texte qu'elle doit afficher, la couleur d'arrière-plan, la couleur de la police, les fonctions qu'elles doivent exécuter lorsqu'elles sont cliquées et les styles de police.

Utilisez le gestionnaire de grille pour placer les boutons respectivement dans la quatrième et la sixième rangée de la deuxième colonne.

button1 = Bouton (racine, text="Soumettre", bg="#00ff00", fg="noir", command=tell_status, font=("arial",13,"gras") )
button2 = Bouton (racine, text="Clair", bg="#00ff00", fg="noir", commande=clear_all, police=("arial",13,"gras"))
bouton1.grid (ligne=3, colonne=1)
bouton2.grid (ligne=5, colonne=1)

Le boucle principale() La fonction indique à Python d'exécuter la boucle d'événements Tkinter et d'écouter les événements jusqu'à ce que vous fermiez la fenêtre.

root.mainloop()

Rassemblez tout le code et préparez-vous à jouer au jeu FLAMES à portée de main.

Exemple de résultat du jeu FLAMES

Lors de l'exécution du programme ci-dessus, le programme affiche l'application de jeu FLAMES avec trois étiquettes, trois champs de saisie et deux boutons disposés dans une grille. En entrant les noms "Tony Stark" et "Pepper Potts", le programme affiche leur statut de relation comme "Amour".

Jeux que vous pouvez créer avec Python

Pygame, Arcade, Panda3D, PyOpenGL et Pyglet sont des modules utiles avec lesquels vous pouvez créer des jeux Python. En utilisant Pygame, vous pouvez créer des jeux 2D comme Super Mario Bros, Flappy Bird et Snake. En utilisant Arcade, vous pouvez créer un clone Pac-Man, Asteroids ou Breakout.

Panda3D peut vous aider à créer des jeux 3D comme Toontown Online, Pirates des Caraïbes en ligne et Disney's Virtual Magic Kingdom.