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
B
Bambi-sauvage
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 ?
 
Bridget
LĂ©gende
Messages
8 441
Fofocoins
38 108
Changement de pseudo
Plantation d'un arbre via Reforestaction 🌳
Ombre sur pseudo
Personnalisation pseudo
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 ?
OULAAA je ne vais pas pouvoir t'aider 😅
DĂ©solĂ©e đŸ„Č✚
 
Chuisbibi
Mythe
Messages
18 234
Age
17
Fofocoins
55 134
Changement de pseudo
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 ?
o_O
J'aime bien programmer mais là c'est au dessus de mes compétences
 
Chuisbibi
Mythe
Messages
18 234
Age
17
Fofocoins
55 134
Changement de pseudo
C’est trĂšs simple en vĂ©ritĂ©, j’ai tout appris en autodidacte.
On dirait que c’est compliquĂ© mais c’est trĂšs logique
Oui j'imagine mais toutes ses expressions me font mal Ă  la tĂȘte, yen a trooop 😂
J'ai dĂ©jĂ  retenu le minimum, ça me suffit pour l'instant đŸ€§
 
đŸŒ»
đŸŒ»SunflowerđŸŒ»
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 ?
Euuuuuuh dĂ©solĂ©e mais je ne peux pas t'aider lĂ  dessus 😭
 
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 ?
A mon avis il faut que tu optimises plus ton programme. Par exemple, si tu ne l’as pas deja fait tu peux utiliser les variables locales pour Ă©viter de dire trop de rĂ©pĂ©tition. Évite les test inutiles. Essaie de bidouiller pour Ă©viter les nombres Ă  virgule flottantes. AprĂšs je sais pas Ă  quoi ressemble ton programme mais plus cÂŽest simple plus ça seffectje facileme t ^^
 
B
Bambi-sauvage
Anonyme
tu peux utiliser les variables locales pour éviter de dire trop de répétition.
Was ist das ?
Essaie de bidouiller pour Ă©viter les nombres Ă  virgule flottantes.
Rien Ă  virgule dans mon code
AprĂšs je sais pas Ă  quoi ressemble ton programme
J’essayerais peut-ĂȘtre si j’ai le temps de le re Ă©crire mais j’ai rien pour l’exĂ©cuter donc que de tĂȘte.
Sinon je rentre dimanche donc lundi matin je l’ai
 
G
Grana padano
Anonyme
Was ist das ?
Les variables dĂ©finies dans une fonction sont appelĂ©es variables locales. Elles sont utilisĂ©es que localement donc qu'Ă  l'intĂ©rieur de la fonction qui les a dĂ©finies. Mais attention, appeler une variable locale alors qu’on est Ă  l'extĂ©rieur de la fonction qui l'a dĂ©finie provoque une erreur.
 
B
Bambi-sauvage
Anonyme
Les variables dĂ©finies dans une fonction sont appelĂ©es variables locales. Elles sont utilisĂ©es que localement donc qu'Ă  l'intĂ©rieur de la fonction qui les a dĂ©finies. Mais attention, appeler une variable locale alors qu’on est Ă  l'extĂ©rieur de la fonction qui l'a dĂ©finie provoque une erreur.
Ah oui, oui je connais mais j’en utilise pas.
J’ai 0 variables
 
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 !