B
Anonyme
Ah si 1Ah oui, oui je connais mais j’en utilise pas.
J’ai 0 variables
Ah si 1Ah oui, oui je connais mais j’en utilise pas.
J’ai 0 variables
Comme dirait Macron t’as raison faut pas être dans l’opulence lolAh si 1
comment ça ?Sinon sur quoi ton ord de génération au jeu de la vie ?
Bah juste tu repars d’une grille vierge et tu essaye de faire le plus possible lolcomment ça ?
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 couleurBah juste tu repars d’une grille vierge et tu essaye de faire le plus possible lol
Ah oki 👍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
😂 il y a des motifs infiniAh 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
Donc du coup tu as réussi ou pas ?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 ?
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()
à faire le code ?Donc du coup tu as réussi ou pas ?
uià faire le code ?
Bah oui mon alto marchait bien c’est juste ce problème d’accumulation qui en ralentit de plus en plus au fur et à mesure des générations.
Euh, je pense pas pouvoir t’aider désolée… ;-;’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 ?
Pas grave tkt pasEuh, je pense pas pouvoir t’aider désolée… ;-;’
Sujets similaires | Réponses | Date |
---|---|---|
Un problème urgent | 16 | |
Problème de santé | 107 | |
J'AI UN GROS PROBLÈME | 10 | |
problème de climatiseur mobile | 2 | |
Problème peau du visage | 4 |
🚫 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. 🙏