Accueil Technologie
Jouer au jeu FLAMES avec Python

Jouer au jeu FLAMES avec Python

FLAMES est un jeu amusant pour les enfants qui signifie Amis, Amoureux, Affectueux, Mariage et Ennemis. Le jeu prend les noms de deux personnes et, à l’aide d’une série d’étapes, détermine leur relation. Pour jouer à FLAMES, il faut noter les noms des deux personnes, éliminer les lettres correspondantes et obtenir le nombre de caractères restants.


Itérer sur les lettres du mot FLAMES en utilisant le décompte et supprimer cette lettre. Par exemple, si le compte est de quatre, supprimez la lettre M. Le compte recommence à partir de E. Répétez ce processus jusqu’à ce qu’il ne reste qu’une seule lettre, 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 qui permet de créer rapidement des interfaces graphiques. Parmi les applications que vous pouvez créer en tant que débutant à l’aide de Tkinter, citons un lecteur de musique, un calendrier, un outil de conversion de poids et un jeu de mots.

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

 pip install tkinter 

Comment construire un jeu FLAMES en utilisant Python

Vous pouvez trouver le code source du jeu FLAMES utilisant Python dans ce dépôt GitHub.

Importer le module Tkinter. Définir une fonction, remove_match_char() qui accepte deux listes en entrée. Utilisez une boucle for imbriquée pour itérer sur les deux listes. Vérifiez s’il existe un caractère correspondant ; si c’est le cas, 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.

Renvoyer la troisième liste avec la correspondance trouvée comme True. Si aucune lettre ne correspond, la liste créée ci-dessus est renvoyée.

 from tkinter import *

def remove_match_char(list1, list2):
    for i in range(len(list1)):
        for j in range(len(list2)):
            if list1[i] == list2[j]:
                c = list1[i]
                list1.remove(c)
                list2.remove(c)
                list3 = list1 + ["*"] + list2
                return [list3, True]
    list3 = list1 + ["*"] + list2
    return [list3, False]

Définir une fonction, tell_status(). Récupérer le nom de la personne que l’utilisateur a saisi à l’aide de la fonction get() du widget Entry. Convertir toutes les lettres en minuscules et éliminer les espaces entre elles. 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 la méthode procéder variable à Vrai.

 def tell_status():
    p1 = Person1_field.get()
    p1 = p1.lower()
    p1.replace(" ", "")
    p1_list = list(p1)
    p2 = Person2_field.get()
    p2 = p2.lower()
    p2.replace(" ", "")
    p2_list = list(p2)
    proceed = True

Tant que la valeur de proceed n’est pas vraie, appeler la fonction remove_match_char() et transmettez-lui les deux listes que vous venez de créer. Enregistrez la liste concaténée et l’état du drapeau reçu de la fonction. Trouvez l’indice de l’astérisque que vous avez inséré et découpez les chaînes en deux listes avant et après cet astérisque.

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.

     while proceed:
        ret_list = remove_match_char(p1_list, p2_list)
        con_list = ret_list[0]
        proceed = 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)
    result = ["Friends", "Love", "Affection", "Marriage", "Enemy", "Siblings"]

Tant que les lettres de la liste de résultats ne sont pas nulles, enregistrez la valeur de l’index à partir duquel vous devez effectuer le découpage. Si l’index est supérieur ou égal à zéro, 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. Vous pouvez ainsi compter dans le sens inverse des aiguilles d’une montre.

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

     while len(result) > 1:
        split_index = (count % len(result) - 1)

        if split_index >= 0:
            right = result[split_index + 1:]
            left = result[: split_index]
            result = right + left
        else:
            result = result[: len(result) - 1]

    Status_field.insert(0, result[0])

Définir une fonction, clear_all(). Utilisez la fonction delete() du premier au dernier index 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.

 def clear_all():
    Person1_field.delete(0, END)
    Person2_field.delete(0, END)
    Status_field.delete(0, END)
    Person1_field.focus_set()

Initialisez l’instance Tkinter et affichez la fenêtre racine en la passant à la classe. Définissez la couleur d’arrière-plan de votre choix, la taille et le titre de votre application.

 root = Tk()
root.configure(background='#A020F0')
root.geometry("700x200")
root.title("FLAMES Game")

Définissez trois étiquettes pour indiquer les deux personnes et leur statut relationnel. Définissez la fenêtre parentale dans laquelle vous souhaitez les placer, le texte qu’elle doit afficher, la couleur de la police, la couleur d’arrière-plan et les styles de police. Ajoutez un peu de remplissage dans le sens horizontal.

 label1 = Label(root, text="Name 1: ", fg='#ffffff',bg='#A020F0', font=("arial",20,"bold"), padx='20')
label2 = Label(root, text="Name 2: ", fg='#ffffff',bg='#A020F0', font=("arial",20,"bold"), padx='20')
label3 = Label(root, text="Relationship Status: ", fg='#ffffff', bg='#A020F0',font=("arial",20,"bold"), padx='20')

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

 label1.grid(row=1, column=0)
label2.grid(row=2, column=0)
label3.grid(row=4, column=0)

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

 Person1_field = Entry(root, font=("arial", 15, "bold"))
Person2_field = Entry(root, font=("arial", 15, "bold"))
Status_field = Entry(root, font=("arial",15,"bold"))

De même, utilisez le gestionnaire de grille pour organiser les widgets dans la deuxième colonne. Utilisez le gestionnaire de grille pour organiser les widgets dans la deuxième colonne. ipadx pour définir le nombre de pixels à placer à l’intérieur des bordures du widget.

 Person1_field.grid(row=1, column=1, ipadx="50")
Person2_field.grid(row=2, column=1, ipadx="50")
Status_field.grid(row=4, column=1, ipadx="50")

Définir deux boutons, Soumettre et Effacer. Définissez la fenêtre parentale 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’ils doivent exécuter lorsqu’ils sont cliqués et les styles de police.

Utilisez le gestionnaire de grille pour placer les boutons respectivement sur la quatrième et la sixième ligne de la deuxième colonne.

 button1 = Button(root, text="Submit", bg="#00ff00", fg="black", command=tell_status,font=("arial",13,"bold") )
button2 = Button(root, text="Clear", bg="#00ff00", fg="black", command=clear_all, font=("arial",13,"bold"))
button1.grid(row=3, column=1)
button2.grid(row=5, column=1)

Le mainloop() indique à Python de lancer la boucle d’événements Tkinter et d’écouter les événements jusqu’à ce que vous fermiez la fenêtre.

 root.mainloop() 

Rassemblez tout ce code et préparez-vous à jouer au jeu FLAMES du bout des doigts.

Exemple de sortie du jeu FLAMES

Lorsque le programme ci-dessus est exécuté, il 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 le statut de leur relation comme étant « Amour ».

Sortie du jeu FLAMES

Les jeux que vous pouvez construire avec Python

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

Panda3D peut vous aider à créer des jeux en 3D comme Toontown Online, Pirates of the Caribbean Online et Disney’s Virtual Magic Kingdom.

0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x