π
<-
Chat plein-écran
[^]

ce_turtl anglais pour TI-84 Plus CE-T + compatibilité turtle

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

ce_turtl anglais pour TI-84 Plus CE-T + compatibilité turtle

Message non lude critor » 29 Oct 2020, 16:41

Texas Instruments nous sort aujourd'hui à son tour une nouvelle version de ce_turtl, son module Python de tracés relatifs à la turtle pour TI-83 Premium CE Edition Python et TI-84 Plus CE-T Python Edition...

... ou pas, car l'appel ce_turtl.version() nous indique que nous sommes toujours en version 1.0.
Pas de nouveauté, l'exploration du module à l'aide de notre script explmod à la recherche d'éléments non listés aux menus donne toujours 65 éléments.

Mais donc, qu'est-ce qui change par rapport à la publication précédente ?

13188En fait, il s'agit ici d'une version non plus en français mais en anglais, et donc mieux adaptée aux utilisateurs du modèle européen TI-84 Plus CE-T Python Edition. Bien évidemment cela ne concerne pas les noms de fonctions mais le menu les présentant, avec les onglets ainsi que les indications sur les valeurs de paramètres.

Nous avons fort peu d'espoir, mais regardons quand même si il y a eu des améliorations de la compatibilité avec le module standard turtle, et comparons cela avec ce que donne la concurrence.

Pour cela, quelques préparatifs. Voici déjà les lignes d'importation à mettre en début de script pour pouvoir profiter d'appels communs entre ce_turtl et le standard turtle :
Code: Tout sélectionner
try: #TI-83 Premium CE
  from ce_turtl import turtle
  turtle.clear()
except ImportError:
  import turtle


Pour permettre aux scripts qui vont suivre de réaliser quand même des tracés partiels malgré les erreurs, anticipons déjà quelques difficultés.

ce_turtl ne définit pas les méthodes turtle.colormode() et turtle.write(), donc prévoyons de quoi ignorer les appels en question :
Code: Tout sélectionner
def try_colormode(m):
  try: turtle.colormode(m)
  except: pass

def try_write(s):
  try: turtle.write(s)
  except: pass


ce_turtle dispose de la méthode turtle.color() mais pas de la méthode turtle.pencolor(). Donc mettons de quoi rediriger les appels :
Code: Tout sélectionner
def try_pencolor(c):
  try: turtle.pencolor(c)
  except: pass
  try: turtle.color(c)
  except: pass


ce_turtl offre la méthode turtle.pensize() mais ce n'est pas le cas de KhiCAS donc prévoyons ici encore une fonction d'appel protégée :
Code: Tout sélectionner
def try_pensize(s):
  try: turtle.pensize(s)
  except: pass


Enfin en fin de script, ce_turtl nécessitera un appel non standard turtle.show() afin de figer l'affichage, ce dernier étant en effet effectué dans le même buffer que celui de la console.

ordi
Graph 90+E
Graph 35+E II
NumWorks
TI-83 Premium CE
TI-84 Plus CE


Code: Tout sélectionner
try: #TI-83 Premium CE
  from ce_turtl import turtle
  turtle.clear()
except ImportError:
  import turtle

from math import exp

def try_colormode(m):
  try: turtle.colormode(m)
  except: pass
def try_pencolor(c):
  try: turtle.pencolor(c)
  except: pass
  try: turtle.color(c)
  except: pass

try_colormode(1)
for i in range(1,37):
  red = exp(-0.5 * ((i - 6) / 12) ** 2)
  green = exp(-0.5 * ((i - 18) / 12) ** 2)
  blue = exp(-0.5 * ((i - 30) / 12) ** 2)
  try_pencolor([red, green, blue])
  for i in range(1, 5):
    turtle.forward(60)
    turtle.right(90)
  turtle.right(10)

try: turtle.show() #TI-83 Premium CE
except: pass

Premier exemple, et premier problème. Du code turtle standard ne permet visiblement pas d'exploiter les couleurs dans le contexte du module ce_turtl.

Le problème vient de la méthode turtle.color() dont les spécifications ne respectent pas le standard : :mj:
  • dans le contexte du module turtle standard elle attend un tuple ou une liste avec les valeurs des 3 composantes rouge-vert-bleu
  • ici avec ce_turtle elle attend 3 paramètres pour décrire chacune des composantes rouge-vert-bleu

ordi
Graph 90+E
Graph 35+E II
NumWorks
TI-83 Premium CE
TI-84 Plus CE


Code: Tout sélectionner
try: #TI-83 Premium CE
  from ce_turtl import turtle
  turtle.clear()
except ImportError:
  import turtle

from math import exp

def try_colormode(m):
  try: turtle.colormode(m)
  except: pass
def try_pencolor(c):
  try: turtle.pencolor(c)
  except: pass
  try: turtle.color(c)
  except: pass

try_colormode(1)
turtle.penup()
turtle.goto(0, -20)
turtle.pendown()
for i in range(1,37):
  red = exp(-0.5 * ((i - 6) / 12) ** 2)
  green = exp(-0.5 * ((i - 18) / 12) ** 2)
  blue = exp(-0.5 * ((i - 30) / 12) ** 2)
  try_pencolor([red, green, blue])
  turtle.circle(50 - i)
  turtle.right(10)

try: turtle.show() #TI-83 Premium CE
except: pass

Là c'est plus embêtant. On demande à la TI-83 Premium CE Edition Python ou TI-84 Plus CE-T Python Edition le tracé d'une coquille d'escargot digne d'une oeuvre d'art, et elle nous sort une sorte de crotte en forme de donut, quelle déception... :#roll#:

Le problème vient ici de la méthode turtle.circle(r) : :bj:
  • avec module turtle standard le cercle tracé passe par la position de la tortue, ce qui est logique
  • ici avec ce_turtle le cercle tracé prend pour centre la position de la tortue

ordi
Graph 90+E
Graph 35+E II
NumWorks
TI-83 Premium CE
TI-84 Plus CE


Code: Tout sélectionner
try: #TI-83 Premium CE
  from ce_turtl import turtle
  turtle.clear()
except ImportError:
  import turtle

def try_pencolor(c):
  try: turtle.pencolor(c)
  except: pass
  try: turtle.color(c)
  except: pass

turtle.forward(40)
turtle.backward(100)
turtle.left(90)
turtle.forward(30)
turtle.right(60)
turtle.forward(60)
turtle.right(30)
turtle.forward(30)
turtle.penup()
turtle.forward(18)
turtle.right(90)
turtle.forward(60)
turtle.pendown()
turtle.right(30)
turtle.backward(30)
turtle.right(60)
turtle.forward(60)
try_pencolor("red")
turtle.penup()
turtle.goto(80,40)
turtle.right(140)
turtle.pendown()
turtle.circle(30)
turtle.penup()
turtle.goto(105,50)
try_pencolor("green")
turtle.pendown()
turtle.circle(-50)
turtle.penup()
try_pencolor("red")
turtle.right(21)
turtle.goto(60,20)
turtle.pendown()
turtle.circle(40,60)
turtle.penup()
try_pencolor("blue")
turtle.goto(-50,15)
turtle.setheading(0)
turtle.pendown()
turtle.write("CASIO")

try: turtle.show() #TI-83 Premium CE
except: pass

Cela ne semble ici pas tourner bien rond chez KhiCAS. Ce n'est certes pas le propos d'aujourd'hui, mais nous pouvons remarquer que la tortue semble se positionner initialement positionnée aux coordonnées (100; 0) et non pas (0; 0).

En tous cas sur TI-83 Premium CE Edition Python et TI-84 Plus CE-T Python Edition avec ce_turtle c'est pire, une erreur se déclenche et nous n'obtenons donc aucun tracé. :mj:
Le problème vient encore de la méthode turtle.circle() qui n'accepte pas ici l'angle de l'arc à tracer en 2ème paramètre.


ordi
Graph 90+E
Graph 35+E II
NumWorks
TI-83 Premium CE
TI-84 Plus CE


Code: Tout sélectionner
try: # TI-83 Premium CE
  from ce_turtl import *
  turtle.clear()
except ImportError:
  import turtle

def try_colormode(m):
  try: turtle.colormode(m)
  except: pass
def try_pencolor(c):
  try: turtle.pencolor(c)
  except: pass
  try: turtle.color(c)
  except: pass
def try_pensize(s):
  try: turtle.pensize(s)
  except: pass

def koch(n, l):
  if n<=0:
    turtle.forward(l)
  else:
    koch(n-1, l/3)
    turtle.left(60)
    koch(n-1, l/3)
    turtle.right(120)
    koch(n-1, l/3)
    turtle.left(60)
    koch(n-1, l/3)

def flock(n, l):
  koch(n, l)
  turtle.right(120)
  koch(n, l)
  turtle.right(120)
  koch(n, l)

try_colormode(1)
l=80
turtle.penup()
turtle.goto(105,3)
turtle.left(120)
turtle.pendown()
try_pencolor((0, 0, 0))
flock(3, l)
turtle.left(120)

turtle.penup()
turtle.goto(105,-10)
turtle.right(60)
turtle.pendown()
try_pencolor((1, .5, 0))
flock(4, l)
turtle.right(60)

try_pensize(2)
turtle.penup()
turtle.goto(5,45)
turtle.right(60)
turtle.pendown()
try_pencolor((0, 0, 1))
flock(2, l)
turtle.right(60)

turtle.penup()
turtle.goto(-100,17)
turtle.left(120)
turtle.pendown()
try_pencolor((1, 0, 0))
flock(0, l)
turtle.left(120)

try_pensize(3)
turtle.penup()
turtle.goto(-100,-5)
turtle.right(60)
turtle.pendown()
try_pencolor((0, 1, 0))
flock(1, l)
turtle.right(60)

turtle.penup()
turtle.forward(400)

try: turtle.show() #TI-83 Premium CE
except: pass

Bon outre le problème de couleur déjà évoqué, avec ce_turtl quelque chose semble également ne pas aller avec l'épaisseur du tracé, trop importante par rapport à la concurrence et au standard.

Tentons de mieux comprendre le fonctionnement de turtle.pensize() à l'aide d'un exemple dédié.


ordi
Graph 90+E
Graph 35+E II
NumWorks
TI-83 Premium CE
TI-84 Plus CE


Code: Tout sélectionner
try: # TI-83 Premium CE
  from ce_turtl import *
  turtle.clear()
except ImportError:
  import turtle

def try_write(s):
  try:
    turtle.write(s)
  except:
    pass

def try_pensize(s):
  try: turtle.pensize(s)
  except: pass

def test(w, n):
  turtle.penup()
  turtle.goto(- w / 2, 0)
  turtle.pendown()

  for k in range(n):
    try_pensize(k)
    try_write(str(k))
    turtle.forward(w / n)

#test(384, 8) # Graph 90+E
#test(128, 8) # Graph 35+E II
test(320, 8)

try: turtle.show() #TI-83 Premium CE
except: pass

Dans le module turtle standard, le paramètre passé à turtle.pensize() est l'épaisseur du tracé en pixels.

En fait, cela ne va chez personne si l'on compare les épaisseurs obtenues en fonction de la valeur du paramètre :
ordi
Graph 90+E
Graph 35+E II
NumWorks
TI-83 Premium CE
TI-84 Plus CE
0
1
1
0
1
1
1
1
1
3
2
2
3
2
5
3
3
3
3
7
4
4
5
4
7
5
5
5
5
7
6
6
5
6
7
7
7
5
7
7
Score
100%
50%
87,5%
25%

Il n'empêche que clairement, c'est de loin sur TI-83 Premium CE Edition Python et TI-84 Plus CE-T Python Edition que le fonctionnement de turtle.pensize() s'éloigne le plus du standard. :mj:


Le module turtle n'est certes pas au programme du lycée mais n'en reste pas moins important en Seconde. Il peut servir à s'appuyer sur les acquis de Scratch du collège pour passer progressivement au Python, particulièrement en Physique-Chimie où la réalisation de tracés est au programme.

Pour une raison fort étrange et que nous ne comprenons pas, Texas Instruments a choisi pour son ce_turtl d'utiliser les mêmes noms que le module turtle standard, mais n'en a ensuite absolument pas respecté le fonctionnement. Nous avons de (trop) nombreux écarts dans les paramètres attendus par ces fonctions ou même leur fonctionnement. :mj:

Sur les exemples que nous avons déroulés ci-dessus, l'argument de devoir faire des écarts pour que la solution tourne sur le matériel assez limité des TI-83 Premium CE Edition Python et TI-84 Plus CE-T Python Edition ne nous semble pas recevable, les corrections à apporter étant pour la plupart tout sauf complexes.
Non non, clairement le respect du standard turtle préexistant, celui mis en avant aux concours de recrutement des enseignants, dans les livres ainsi que dans les documents ressources, n'était pas au cahier des charges du constructeur ou alors en très mauvaise position.

Dans le contexte turtle, il ne sera ici pas possible de faire des allers-retours entre la calculatrice et l'ordinateur-tablette, à moins d'un soin méticuleux de la part de l'enseignant dans la conception des scripts et des diverses astuces de compatibilité dans le genre de celles que nous avons utilisées.
A cause de ce gros défaut, en dehors des enseignants T3 nous doutons très fortement que de nombreux enseignants français veuillent s'embêter à se taper ainsi double travail pour enseigner et faire utiliser le ce_turtl non standard de la TI-83 Premium CE Edition Python.


Téléchargements :
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.4%
 
Messages: 41455
Images: 14353
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: ce_turtl anglais pour TI-84 Plus CE-T + compatibilité tu

Message non lude Lionel Debroux » 29 Oct 2020, 16:55

Ouille. Respect des standards, pfft... c'est bon pour les nuls, pas pour TI :)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6858
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: ce_turtl anglais pour TI-84 Plus CE-T + compatibilité tu

Message non lude critor » 29 Oct 2020, 20:21

Lionel Debroux a écrit:Ouille. Respect des standards, pfft... c'est bon pour les nuls, pas pour TI :)

Ah... donc vu son formidable score de 87,5% sur le dernier exemple, j'en déduis que NumWorks c'est nul ? :troll:
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.4%
 
Messages: 41455
Images: 14353
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: ce_turtl anglais pour TI-84 Plus CE-T + compatibilité tu

Message non lude Afyu » 29 Oct 2020, 20:32

critor a écrit:
Lionel Debroux a écrit:Ouille. Respect des standards, pfft... c'est bon pour les nuls, pas pour TI :)

Ah... donc vu son formidable score de 87,5% sur le dernier exemple, j'en déduis que NumWorks c'est nul ? :troll:


Voilà ! C'est d'ailleurs pour ça que tout le monde veut en gagner une au concours de la rentrée ! :D
Avatar de l’utilisateur
AfyuVIP++
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 89.2%
 
Messages: 339
Images: 18
Inscription: 30 Oct 2019, 19:17
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: plutôt, oui :)

Re: ce_turtl anglais pour TI-84 Plus CE-T + compatibilité tu

Message non lude Adriweb » 19 Nov 2021, 02:37

En parallèle de la sortie de l'OS 5.7 pour CE (changelog FR), TI a sorti ce qui semble être un module Turtle officiel pour CE, et non pas juste une appvar venant de profs T3 (le fameux "ce_turtl" de cet article).

Le modèle est bien plus gros, et semble coller bien davantage avec le Turtle officiel, de la même manière que celui pour Nspire CX II sorti récemment.

Bonne nouvelle, du coup :)

Je me demande même si les scripts vont être compatibles avec ceux Nspire...
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80%
 
Messages: 14599
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: ce_turtl anglais pour TI-84 Plus CE-T + compatibilité tu

Message non lude Fabien59 » 19 Nov 2021, 17:32

Bonjour,
Merci pour cette info, en plus de ce Turtle amélioré, cette nouvelle version 5.7 contient des nouveautés très intéressantes 😊
Avatar de l’utilisateur
Fabien59
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 14.1%
 
Messages: 51
Inscription: 16 Juil 2020, 21:34
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile


Retourner vers News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 36 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
769 utilisateurs:
>747 invités
>18 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)