ProblĂšme Tkinter, Python

  • Auteur de la discussion Bambi-sauvage
  • Date de dĂ©but

Quelqu’un s’y connais en python ici ?


  • Nombre total d'Ă©lecteurs
    8
G
Grana padano
Anonyme
Bah en gros Ă  chaque nouvelle gĂ©nĂ©ration je supprime tout ce qu’il y a dans mon canvas et je refait les cellules une Ă  une de la bonne couleur
Ah oki 👍
moi je fais un motif et j’essaie que ça tienne le plus possible mon record en faisant ça c’est 163 gĂ©nĂ©rations je crois
 
B
Bambi-sauvage
Anonyme
Ah oki 👍
moi je fais un motif et j’essaie que ça tienne le plus possible mon record en faisant ça c’est 163 gĂ©nĂ©rations je crois
😂 il y a des motifs infini
Si tu fait 3 case horizontales.
‱‱‱
AprÚs ça devient
‱
‱
‱
et puis
‱‱‱
Et à l’infini
 
G
Grana padano
Anonyme
Hello đŸ‘‹đŸ»
J’ai rencontrĂ© un problĂšme dans un de mes scripts python derniĂšrement, dans ce script je reproduis le cĂ©lĂšbre jeu de la vie et j’utilise Tkinter pour l’interface graphique.

Le jeu de la vie (Game of life pour les pros 🙃):

On peut dĂ©crire ça comme une simulation de la vie en extrĂȘmement simplifiĂ©e.

LĂ  oĂč dans la vie on retrouve une multitude de lois physique et chimique, on trouve ici 3 rĂšgles simple.

Le monde est en deux dimensions et ressemble drÎlement à un plateau de dames infini, seulement chaque case de la grille est appelée une cellule.

Et chaque cellule peut ĂȘtre dans deux Ă©tat, soit morte (case noire) soit vivante (case blanche).
Maintenant les 3 rĂšgles s’appliquent, chaque rĂšgles Ă  chaque nouvelle actualisation du jeu (appelĂ© gĂ©nĂ©ration) vas ĂȘtre vĂ©rifiĂ© pour chaque cellules.

Voici les rĂšgles:

  • Si une cellule morte (case noire) possĂšde exactement trois cellules voisines vivantes elle devient vivante (case blanche).
  • Si une cellule vivante possĂšde soit 2 soit 3 voisinĂ©s vivantes exactement elle le reste vivante.
  • Si une cellule vivante possĂšde moins de 2 ou plus de 3 elle meurt

Et au fur et Ă  mesure que les gĂ©nĂ©rations passent les cellules changent, forment des ensembles de cellules intĂ©ressant tel que les planeurs qui sont une configuration de cellules qui se dĂ©placent Ă  l’infini dans une direction.
VoilĂ  j’espĂšre avoir bien expliquĂ© mais je vous invite Ă  aller dĂ©couvrir ça.


Tkinter:
Tkinter est un module python assez vieux mais trĂšs simple d’utilisation qui vas aller demander Ă  l’OS de crĂ©er des Ă©lĂ©ments.

À ma connaissance des fenĂȘtres, comme lorsque votre ordinateur vous dis qu’il reste 10% ou autre message.

LĂ  on vas utiliser ce module pour demander Ă  l’ordinateur de gĂ©nĂ©rer une fenĂȘtre avec les informations qu’on lui dit de mettre dedans.

Dans mon code on vas parler de Canvas.
En gros d’aprĂšs mes connaissance il s’agit d’un cadre en quelques sort qu’on place dans la fenĂȘtre.
Et ce cadre permet de dessiner par exemples.

Voilà je m’y connais pas trop alors j’espùre que ce que je dis est correct et relativement complet.

Mon script:

Je ne l’ai pas avec moi malheureusement, mais voici comment je l’ai construit:

Tout d’abord je crĂ©e la fenĂȘtre, le canvas qui contient les cellules et deux listes.
La premiùre liste (map) vas contenir les informations de chaque cellules (le monde n’est pas infini ici).
0 pour une cellule morte et 1 pour une cellule vivante.

À chaque gĂ©nĂ©ration j’ai une fonction qui vas d’abord sauvegarder ma liste actuelle (map) dans une autre, puis vas appliquer les rĂšgles pour chaque cellules en allant voir dans la liste qui cert de sauvegarde les diffĂ©rents Ă©tats et vas changer ou non leur Ă©tat dans la liste map.

AprÚs je vais venir effacer le contenu du canvas (donc toutes les anciennes cellules) et en remettre en regardant avec un index i chaque élément de la liste map.
Si c’est 0 alors je dessine un carrĂ© noir sinon un carrĂ© blanc.

Et je crée une boucle avec fen.after(la fonction)


Mon problĂšme:

Le problĂšme c’est que au fur et Ă  mesure des gĂ©nĂ©rations tout se ralentit, comme si il y avait de l’accumulation.
On dirait que l’ordinateur commence à prendre plus de temps à calculer.
Ça viens forcĂ©ment de mon script mais je ne trouve aucun moment qui pourrait crĂ©er une accumulation de tache đŸ€·đŸ»â€â™‚ïž.

Si vous ĂȘtes arrivĂ© jusque lĂ  merci dĂ©jĂ , et si vous vous y connaissez un peu avez vous besoin du script ?
Donc du coup tu as réussi ou pas ?
 
B
Bambi-sauvage
Anonyme
Il me semble que c’était un truc comme ça, j’ai pas mis les calculs car flemme et je suis pas sur des syntaxes des fois mais bon ce qui compte c’est que tu comprennes la structure.

Python:
from Tkinter import *

def newgeneration():
    # flemme de refaire tous les calculs
   save[]=map[]
    #lĂ  les calculs

    drawmap()

def drawmap():
    x=1
    y=1
    Plateau.delete("ALL")
    for i in range(0,100,10):
        Plateau.create_suqare(x,y,x+9,y+9)
        x+=10
        y+=10
        if x>100:
            x=1
            y-=10
   
    Fen.after(newgeneration)

#init
map = []
save = []
Fen = Tk()
Fen.title("The Game of life")
Plateau = Canvas(fen, fill="gray", width=401, heigt=401)
for i in range(100):
    map.append(0)
   
newgeneration()

fen.mainloop()
 
DerniĂšre Ă©dition:
Heiwa
Passionné
Messages
3 981
Age
16
Fofocoins
86 478
Personnalisation du groupe
Badge : 100k messages Foforum 💯
Ombre sur pseudo
Personnalisation pseudo
Genre
Fille
Hello đŸ‘‹đŸ»
J’ai rencontrĂ© un problĂšme dans un de mes scripts python derniĂšrement, dans ce script je reproduis le cĂ©lĂšbre jeu de la vie et j’utilise Tkinter pour l’interface graphique.

Le jeu de la vie (Game of life pour les pros 🙃):

On peut dĂ©crire ça comme une simulation de la vie en extrĂȘmement simplifiĂ©e.

LĂ  oĂč dans la vie on retrouve une multitude de lois physique et chimique, on trouve ici 3 rĂšgles simple.

Le monde est en deux dimensions et ressemble drÎlement à un plateau de dames infini, seulement chaque case de la grille est appelée une cellule.

Et chaque cellule peut ĂȘtre dans deux Ă©tat, soit morte (case noire) soit vivante (case blanche).
Maintenant les 3 rĂšgles s’appliquent, chaque rĂšgles Ă  chaque nouvelle actualisation du jeu (appelĂ© gĂ©nĂ©ration) vas ĂȘtre vĂ©rifiĂ© pour chaque cellules.

Voici les rĂšgles:

  • Si une cellule morte (case noire) possĂšde exactement trois cellules voisines vivantes elle devient vivante (case blanche).
  • Si une cellule vivante possĂšde soit 2 soit 3 voisinĂ©s vivantes exactement elle le reste vivante.
  • Si une cellule vivante possĂšde moins de 2 ou plus de 3 elle meurt

Et au fur et Ă  mesure que les gĂ©nĂ©rations passent les cellules changent, forment des ensembles de cellules intĂ©ressant tel que les planeurs qui sont une configuration de cellules qui se dĂ©placent Ă  l’infini dans une direction.
VoilĂ  j’espĂšre avoir bien expliquĂ© mais je vous invite Ă  aller dĂ©couvrir ça.


Tkinter:
Tkinter est un module python assez vieux mais trĂšs simple d’utilisation qui vas aller demander Ă  l’OS de crĂ©er des Ă©lĂ©ments.

À ma connaissance des fenĂȘtres, comme lorsque votre ordinateur vous dis qu’il reste 10% ou autre message.

LĂ  on vas utiliser ce module pour demander Ă  l’ordinateur de gĂ©nĂ©rer une fenĂȘtre avec les informations qu’on lui dit de mettre dedans.

Dans mon code on vas parler de Canvas.
En gros d’aprĂšs mes connaissance il s’agit d’un cadre en quelques sort qu’on place dans la fenĂȘtre.
Et ce cadre permet de dessiner par exemples.

Voilà je m’y connais pas trop alors j’espùre que ce que je dis est correct et relativement complet.

Mon script:

Je ne l’ai pas avec moi malheureusement, mais voici comment je l’ai construit:

Tout d’abord je crĂ©e la fenĂȘtre, le canvas qui contient les cellules et deux listes.
La premiùre liste (map) vas contenir les informations de chaque cellules (le monde n’est pas infini ici).
0 pour une cellule morte et 1 pour une cellule vivante.

À chaque gĂ©nĂ©ration j’ai une fonction qui vas d’abord sauvegarder ma liste actuelle (map) dans une autre, puis vas appliquer les rĂšgles pour chaque cellules en allant voir dans la liste qui cert de sauvegarde les diffĂ©rents Ă©tats et vas changer ou non leur Ă©tat dans la liste map.

AprÚs je vais venir effacer le contenu du canvas (donc toutes les anciennes cellules) et en remettre en regardant avec un index i chaque élément de la liste map.
Si c’est 0 alors je dessine un carrĂ© noir sinon un carrĂ© blanc.

Et je crée une boucle avec fen.after(la fonction)


Mon problĂšme:

Le problĂšme c’est que au fur et Ă  mesure des gĂ©nĂ©rations tout se ralentit, comme si il y avait de l’accumulation.
On dirait que l’ordinateur commence à prendre plus de temps à calculer.
Ça viens forcĂ©ment de mon script mais je ne trouve aucun moment qui pourrait crĂ©er une accumulation de tache đŸ€·đŸ»â€â™‚ïž.

Si vous ĂȘtes arrivĂ© jusque lĂ  merci dĂ©jĂ , et si vous vous y connaissez un peu avez vous besoin du script ?
Euh, je pense pas pouvoir t’aider dĂ©solĂ©e
 ;-;’
 
Sujets similaires RĂ©ponses Date
ProblĂšme avec ma copine 4
ProblĂšme avec SDF 3
ProblĂšme avec mon beau pĂšre .. 4
ProblĂšme humiliant 4
ProblĂšme de crush 10

đŸš« Alerte AdBlock !

Vous avez activĂ© le mode Ninja, et il cache toutes les pubs ! 😆 Un petit coup de pouce pour notre site serait super apprĂ©ciĂ© si vous pouvez le dĂ©sactiver. 🙏

đŸŠžâ€â™‚ïž J'ai DĂ©sactivĂ© AdBlock !