Seuls les membres ayant 30 points peuvent parler sur le chat.
Menu
Calculatrices
Graph 35 à 100 (CFX)
Graph 25/25+ (Pro) (fx-7400)
Graph 35+USB/75/85/95 (SD)
Graph 100/100+ (AFX)
ClassPad 300/330
Fx-CG 10/20
Fx-CP 400
Graph 90+E
Liens
¤ Vous cherchez une fonction ?
Utilitaires >> Graph 90+E >> Graphisme >> Fourmi de langton Python
Fourmi de langton Python
Version : 1.0 Taille : 360 octets Ajouté le : 2020-10-23 02:48 Modifié le : 2020-10-23 02:50
Auteur et posteur :
OskarHors ligneMembrePoints: 136 Défis: 0 Message
Planète Casio - Programme Casio de graphisme - Fourmi de langton Python - oskar - Calculatrices
Nombre de visites sur cette page : 153
Score au progrank : 15
Pas encore de note !

Vous devez être inscrit(e) et avoir 20 points ou plus pour noter.
25 téléchargements | Soumettre un test

Ce programme est dans le domaine public.


Description :

La célèbre fourmi de Langton

La fourmi de Langton est une simulation informatique.
Elle se base sur une fourmi virtuelle qui se déplace sur une grille de pixels noirs ou blancs. A chaque étape, elle change la couleur du pixel sur lequel elle se trouve, et bouge en suivant ces règles :

- si le pixel sur lequel elle est est noir, elle tourne à droite et avance d'une case
- si le pixel sur lequel elle est est blanc, elle tourne à gauche et avance d'une case

Avec ces règles simplistes, il ne semble pas y avoir beaucoup de choses à faire, mais on reparque que au bout d'un certain temps (quelques milliers d'étapes), la fourmi se met à construire une autoroute, c'est-à-dire qu'elle avance en ligne droite (enfin presque, faites tourner le programme et vous comprendrez) et en laissant derrière elle une trace (l'autoroute justement).


Commentaires :


OskarHors ligneMembrePoints: 136 Défis: 0 Message
Posté le 23-10-2020 à 03:11 | #
Alors voilà, j'ai un petit problème avec ce programme, et je sais pas si ça valait le coup d'ouvrir un topic juste pour ça (d'ailleurs je crois que j'ai pas assez de points) :

Quand je fait tourner le programme, la vitesse de calcul des générations diminue peu à peu (j'ai d'abord imaginé que la VRAM se remplissait), mais au bout d'un moment il revient d'un seul coup à la vitesse maximale, puis redescend lentement etc.

quelqu'un à une explication ? généralement, mon prof de maths dit que le bug est entre la calculatrice et la chaise.
LephenixnoirHors ligneAdministrateurPoints: 18801 Défis: 142 Message
Posté le 23-10-2020 à 09:52 | #
C'est marrant cet effet de vitesse. La VRAM ne se «remplit» pas plus que ton écran ne se «remplit». Le blanc et le noir prennent tous les deux la même place. À vue de nez, rien dans ton code ne justifie cet effet.

Par contre il se peut que le tas de Python se remplisse au fur et à mesure et qu'il le nettoie périodiquement... auquel cas la lenteur serait celle des allocations et des libérations. Mais je mets une réserve sur cette interprétation, je ne sais pas exactement comment la durée de vie des variables MicroPython est gérée.

Protip pour gagner un peu de vitesse : créer le tuple (0,0,0) et le tuple (255,255,255) à chaque tour est vraiment lent (et consomme du tas), stocke-les dans des variables à la place !

Autre astuce : %4 peut devenir &3, je sais pas si ça change quoi que ce soit en perfs globales mais localement ça aide (en C ça serait 30 à 60 fois plus rapide x3).
OskarHors ligneMembrePoints: 136 Défis: 0 Message
Posté le 23-10-2020 à 14:02 | #
ok, bah merci beaucoup !
j'ai testé tes 2 optimisations ! Pour le % en &, j'ai à peine vu la différence (après c'est pas ce qui prenait le plus de temps...), mais en stockant les tuples dans des variables, on obtient un résultat très étrange: la période des changements de vitesse augmente (dans ta proposition, le tas mettrai plus de temps avant d'être vidé). C'est encore plus bizarre ! Après j'avais déjà eu des gros bugs dans les premières versions de micro python (genre des erreurs qui sont localisées à des lignes vides....), et puis c'est un truc récent, donc c'est plutôt normal ce genre de trucs (enfin j'imagine...)
LephenixnoirHors ligneAdministrateurPoints: 18801 Défis: 142 Message
Posté le 23-10-2020 à 14:03 | #
Puisque tu alloues moins dans le tas, si le tas se fait GC quand il devient trop gros, alors c'est normal que la période augmente. En fait je soupçonne que c'est le tas de Casio qui fait ça, il est connu pour avoir ce genre de détails... indésirables.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2020 | Il y a 63 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd