Bonjour,
J'ai voulu coder un petit jeu sur TI83 avec les modules turtle et la carte microbit
L'idée est d'utilise les boutons A et B de la carte microbit pour contrôler la montée de bas en haut de l'écran de la tortue en évitant de passer par des disques de couleurs (ces disques sont disposés aléatoirement en début de programme)
Il faut donc effectuer la traversée le plus rapidement possible en touchant le moins de disques possibles (toucher un disque entraîne des pénalités différentes suivant les couleurs touchées). Rien d'extraordinaire dans le principe, je le reconnais Voici une image du résultat (j'ai mis 2 scripts en pièce jointe, seul MB_TURT1 fonctionne) :
Pour détecter le passage par des disques de couleur, j'ai tout d'abord voulu utiliser la fonction get_Pixel() de la bibliothèque ti_image. Mais j'ai constaté un problème de mémoire à l'exécution du script (script MB_TURT2)
J'ai ensuite réalisé une autre version qui utilise la fonction getPixel() de la bibliothèque cachée ti_graphics (script MB_TURT1). Je pensais constater le même problème mais ce n'est pas le cas et le script fonctionne. Pourquoi ?
J'aimerai pourtant pouvoir utiliser la bibliothèque ti_image à la place de ti_graphics. Voyez-vous comment faire ?
Aussi, n'hésitez pas à critiquer le codage, je ne demande qu'à apprendre pour faire mieux. Merci.
Fabien
Jeu microbit et turtle
7 posts
• Page 1 of 1
Jeu microbit et turtle
You do not have the required permissions to view the files attached to this post.
-
Fabien59Premium
Niveau 7: EP (Espèce Protégée: geek)- Posts: 54
- Joined: 16 Jul 2020, 21:34
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Jeu microbit et turtle
Merci pour ce partage de cette création fort originale !
ti_draw et ti_image ne sont en gros que des interfaces destinées à faciliter l'utilisation de ti_graphics.
Si tu sais utiliser directement ti_graphics mieux vaut le faire, ça consommera moins de mémoire.
ti_draw et ti_image ne sont en gros que des interfaces destinées à faciliter l'utilisation de ti_graphics.
Si tu sais utiliser directement ti_graphics mieux vaut le faire, ça consommera moins de mémoire.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 42128
- Images: 16453
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Jeu microbit et turtle
Oui .... "originale" et on peut le dire, un peu moche 😂
je fais effectivement le constat de cette différence sur l'utilisation des 2 bibliothèques. Mais pour une utilisations par des élèves, il me serait utile de passer par ti_image.
je fais effectivement le constat de cette différence sur l'utilisation des 2 bibliothèques. Mais pour une utilisations par des élèves, il me serait utile de passer par ti_image.
-
Fabien59Premium
Niveau 7: EP (Espèce Protégée: geek)- Posts: 54
- Joined: 16 Jul 2020, 21:34
- Gender:
- Calculator(s):→ MyCalcs profile
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 42128
- Images: 16453
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Jeu microbit et turtle
Je trouve quelques petites optimisations mais n'arrive pas à faire de miracle pour le moment.
Voici une fonction destinée à estimer la consommation de mémoire de tas (heap) généré par l'importation d'une bibliothèque.
Je ne suis pas parfaitement satisfait de sa fiabilité, c'est pourquoi je ne la mets pas en avant habituellement. Mais elle va quand même permettre de comprendre le problème.
Faisons maintenant :
Et voici ce que ça donne :
(valeurs variant légèrement)
Comme déjà dit plus haut, ti_graphics a une consommation mémoire très raisonnable, dans les 2.6K.
ti_image par contre qui n'apporte rien de plus que de l'interfaçage pour les appels à ti_graphics, c'est déjà dans les 4.1K.
Et ti_draw est une véritable monstruosité avec 14.6K.
Pour rappel, la capacité heap de la TI-83 Premium CE Edition Python, ce n'est pas tout-à-fait 20K...
Ton exemple illustre bien le pire des cas : tu as besoin de plein de bibliothèques différentes, dont plusieurs des plus grosses.
C'est hélas le gros défaut de la TI-83 Premium CE Edition Python. C'est la solution Python la plus riche en possibilités sur calculatrices (bibliothèque tortue standard, riche bibliothèque graphique, connectivité micro:bit, ...), mais la taille absolument ridicule en comparaison du heap condamne une grande partie des projets imaginables. Une fois les importations effectuées, il ne reste en effet plus beaucoup de place pour coder...
C'est extrêmement frustrant et dommage.
Voici une fonction destinée à estimer la consommation de mémoire de tas (heap) généré par l'importation d'une bibliothèque.
- Code: Select all
from gc import mem_alloc, mem_free, collect
def modsize(s):
a1, a2 = mem_alloc(), 0
module = None
collect()
exec('import ' + s + ' as module')
a2 = mem_alloc()
module = None
collect()
return a2 - a1
def print_modsize(s):
print(s, modsize(s))
Je ne suis pas parfaitement satisfait de sa fiabilité, c'est pourquoi je ne la mets pas en avant habituellement. Mais elle va quand même permettre de comprendre le problème.
Faisons maintenant :
- Code: Select all
print_modsize('ti_graphics')
print_modsize('ti_draw')
print_modsize('ti_image')
Et voici ce que ça donne :
(valeurs variant légèrement)
Comme déjà dit plus haut, ti_graphics a une consommation mémoire très raisonnable, dans les 2.6K.
ti_image par contre qui n'apporte rien de plus que de l'interfaçage pour les appels à ti_graphics, c'est déjà dans les 4.1K.
Et ti_draw est une véritable monstruosité avec 14.6K.
Pour rappel, la capacité heap de la TI-83 Premium CE Edition Python, ce n'est pas tout-à-fait 20K...
Ton exemple illustre bien le pire des cas : tu as besoin de plein de bibliothèques différentes, dont plusieurs des plus grosses.
C'est hélas le gros défaut de la TI-83 Premium CE Edition Python. C'est la solution Python la plus riche en possibilités sur calculatrices (bibliothèque tortue standard, riche bibliothèque graphique, connectivité micro:bit, ...), mais la taille absolument ridicule en comparaison du heap condamne une grande partie des projets imaginables. Une fois les importations effectuées, il ne reste en effet plus beaucoup de place pour coder...
C'est extrêmement frustrant et dommage.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 42128
- Images: 16453
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Jeu microbit et turtle
Bonjour,
Merci beaucoup pour cette analyse détaillée. Les résultats sont hallucinants !
C'est biensûr triste d'avoir un heap limité...mais ce n'est pas ce qui me fait tomber de ma chaise ici.
Car finalement, pour des élèves qui débutent en programmation, ce heap permet d'envisager quelques petites réalisations sympas, comme celle-ci. Mais ici, c'est à condition de passer par ti_graphics et non par l'interface prévu par TI pour accéder facilement aux outils ti_graphics...c'est çà qui me dépasse.
Pourquoi cette interface est-elle si gourmande ? Je ne manquerai pas de faire remonter cette interrogation auprès de TI.
Fabien
Merci beaucoup pour cette analyse détaillée. Les résultats sont hallucinants !
C'est biensûr triste d'avoir un heap limité...mais ce n'est pas ce qui me fait tomber de ma chaise ici.
Car finalement, pour des élèves qui débutent en programmation, ce heap permet d'envisager quelques petites réalisations sympas, comme celle-ci. Mais ici, c'est à condition de passer par ti_graphics et non par l'interface prévu par TI pour accéder facilement aux outils ti_graphics...c'est çà qui me dépasse.
Pourquoi cette interface est-elle si gourmande ? Je ne manquerai pas de faire remonter cette interrogation auprès de TI.
Fabien
-
Fabien59Premium
Niveau 7: EP (Espèce Protégée: geek)- Posts: 54
- Joined: 16 Jul 2020, 21:34
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Jeu microbit et turtle
Fabien59 wrote:Aussi, n'hésitez pas à critiquer le codage, je ne demande qu'à apprendre pour faire mieux. Merci.
t'inquiète,ici,on fait que ça critiquer
Maîtrise de TI BASIC
Maîtrise de Python
Maîtrise de Casio BASIC
-
Paper Calc Officiel
Niveau 10: GR (Guide de Référence)- Posts: 63
- Images: 0
- Joined: 19 Sep 2022, 10:35
- Gender:
- Calculator(s):→ MyCalcs profile
7 posts
• Page 1 of 1
Who is online
Users browsing this forum: ClaudeBot [spider] and 0 guests