π
<-

News 2024
August (1)
July (2)
June (2)
May (1)
April (1)
March (1)

News 2023
August (4)
July (2)
June (3)
May (2)
April (4)
March (2)

News 2022
August (2)
July (8)
June (4)
May (7)
April (9)
March (10)

News 2021
August (7)
July (8)
June (2)
May (6)
April (11)
March (10)

News 2020
August (4)
July (11)
June (6)
May (4)
April (8)
March (3)

News 2019
August (1)
July (3)
June (3)
May (5)
April (1)
March (2)

News 2018
August (4)
July (1)
June (5)
May (9)
April (13)
March (5)

News 2017
August (4)

MINEHUNT, le démineur des HP 48/49/50 sur ta NumWorks

New postby Admin » 03 Jul 2020, 13:54

Schraf se propose aujourd'hui de t'accompagner pas à pas dans la création en Python d'un jeu de type démineur pour ta calculatrice NumWorks.

Mais pas n'importe quel démineur, et sans doute pas celui auquel tu penses... ;)

5550Remontons à l'aube des calculatrices graphiques. Rentrée 1990, Hewlett Packard sort sa légendaire HP 48SX, calculatrice graphique munie d'un moteur de calcul littéral, d'un port infrarouge pour communication sans fil avec une autre calculatrice ou périphérique, ainsi que de 2 ports d'extension pour cartes RAM ou ROM.

La calculatrice supportait des applications, qui pouvaient aussi bien être stockées dans la mémoire interne de la calculatrice que sur carte RAM ou ROM enfichable. Les cartes ROM, non réinscriptibles, étaient en fait un support de commercialisation et distribution des applications.

Une carte ROM directement produite par le constructeur était la HP Solve Equation Library. A l'époque chez Hewlett Packard, on admettait volontiers le rôle épanouissant des jeux dans le contexte scolaire. La HP Solve Equation Library incluait en effet entre autres MINEHUNT, un jeu de démineur.

Venant donc sur une carte ROM payante à acheter séparément, MINEHUNT n'était initialement pas destiné à devenir une référence.

Mais tout change à la rentrée 1993, Hewlett Packard faisant le choix d'intégrer directement MINEHUNT dans le firmware des modèles successeurs HP 48GX et HP 48G.

Et l'histoire est très loin de s'arrêter là, puisque à l'exception de la HP 49G à la rentrée 1999, MINEHUNT fut intégré de façon similaire sur tous les autres modèles successeurs jusqu'à la sortie de la HP Prime à la rentrée 2013 :
  • HP 48G+ (rentrée 1998)
  • HP 48GII (rentrée 2003)
  • HP 49G+ (rentrée 2003)
  • HP 50G (rentrée 2008)

MINEHUNT sur calculatrices HP diffère de la version du démineur qui sera popularisée par la suite par Microsoft Windows. Ici tu n'as pas la liberté de choisir n'importe quelle case de la grille, car tu dois littéralement traverser le champ de mines à l'aide des flèches directionnelles, partant du coin supérieur gauche pour atteindre le coin inférieur droit.

12612C'est donc le démineur version HP / MINEHUNT, la référence de toute une communauté, que Schraf se propose aujourd'hui d'adapter en Python pour ta NumWorks :

Installation : https://workshop.numworks.com/python/schraf/demineur

Crédits images : MINEHUNT sur HP 50G

Un morpion / tic-tac-toe pour ta NumWorks

New postby Admin » 01 Jul 2020, 12:55

12610C'est l'été, enfin, il est grand temps de t'amuser. Voici aujourd'hui un nouveau jeu Python par Afyu.

Retrouve dès maintenant sur ta NumWorks et en couleurs, toutes les sentations des parties endiablées de morpion disputées pendant le confinement avec ton animal de compagnie ! :bj:

Dans cette édition pour deux joueurs, les cases sont choisies intuitivement à l'aide du pavé numérique de ta calculatrice.

Sauras-tu cette fois-ci gagner le jeu ? ;)


Lien : https://workshop.numworks.com/python/fl ... rd/morpion
Link to topic: Un morpion / tic-tac-toe pour ta NumWorks (Comments: 3)

Bêta-test public NumWorks version 14.2.0

New postby Admin » 29 Jun 2020, 21:59

12534Dans un article précédent, nous t'annoncions le lancement d'un bêta-test public accessible à tous de la prochaine version 14 de ta calculatrice NumWorks, plus précisément alors en version 14.0.0.

La prochaine version 14 de la NumWorks t'apportera de formidables nouveautés.

En Python déjà, nous passons sur la nouvelle version 1.12 de MicroPython. :)

La NumWorks devient de plus le premier modèle à disposer d'un assistant d'aide à la saisie Python ! :D

Il prend la forme d'une fonctionnalité d'auto-complétion, une exclusivité sur calculatrices Python à ce jour. Mais c'est bien plus creusé que ce que tu pourrais croire, il y a un véritable assistant d'aide à la saisie derrière. :)

A peine commences-tu à taper un nom de fonction ou variable dans l'éditeur Python, que la calculatrice est désormais capable de te faire une suggestion, affichée en grisé directement au sein de l'éditeur. Si la suggestion te convient, tu peux alors la valider d'une seule touche en tapant
OK
ou
. :bj:

Et si jamais la suggestion ne te convient pas, tu peux soit poursuivre ta saisie avec les caractères suivant en espérant mieux, soit demander de suite d'autres suggestions d'une simple touche,
var
. :bj:

Les quelques points faibles du module Python matplotlib.pyplot que nous avions pointés il y a quelques semaines à l'occasion d'un test comparatif dans le contexte de la sortie d'un module similaire chez Casio ont été corrigés. :bj:
  • Les paramètres de couleurs sont désormais acceptés et fonctionnels ! Plus d'erreur de syntaxe donc quand tu réutilises des scripts en provenance d'autres plateformes, et de plus fonctionnels !
  • Conformément au standard les paramètres de couleurs peuvent être optionnels (fonction plot) ou nommés (fonctions scatter, bar, hist, et arrow).
  • Le paramètre nommé head_width est dorénavant géré par la fonction arrow(), et permettra dé régler la taille de la flèche.

De façon similaire, les quelques faiblesses du module turtle pointées à la même occasion ont toutes été soigneusement traitées et corrigées. Cela fait plaisir de voir que nous sommes lus en détails sans a priori négatif, et qui plus est avec une telle réactivité ! :D
  • La fonction write() permettant d'écrire du texte à la position de la tortue a été rajoutée.
  • La fonction colormode() permettant de choisir l'unité de coordonnées couleur RGB (nombres flottants entre 0 et 1, ou nombres entiers entre 0 et 255) a été rajoutée, pour compatibilité avec les plateformes n'ayant pas fait le même choix par défaut et notamment le standard.
  • La fonction circle() accepté désormais comme le standard un paramètre de rayon négatif, afin d'inverser le sens de tracé.

Hors Python maintenant, l'application Calculs affiche désormais lorsque possible les résultats sur la même ligne que le calcul associé, une fonctionnalité qui nécessitait jusqu'à présent d'installer des firmwares tiers comme Omega.

Plus besoin de t'embêter à installer des firmwares tiers, tu vas enfin pouvoir visualiser sans défilement bien plus que les seuls 2 derniers calculs, et avoir donc une bien meilleure vue d'ensemble de ta résolution des problèmes ! :bj:

Lors d'une saisie de quotient en écriture naturelle, il devient enfin possible de récupérer un élément de l'historique de calculs au dénominateur.

Les formidables résultats complémentaires introduits dans la version 13, littéralement équivalents à de mini-programmes d'étude qui sortaient pour d'autres modèles et désormais inutilisables en mode examen, sont étendus dans le contexte des résultats utilisant les unités.

Si l'unité choisie automatiquement pour le résultat ne te convient pas, tu trouveras désormais d'autres suggestions dans les résultats complémentaires. Et si jamais cela ne te convenait toujours pas, tu conserves la possibilité de demander manuellement une conversion vers l'unité de ton choix.

Dans l'application Régressions un nouveau modèle linéaire est disponible, y=ax.

Le modèle géométrique a de plus été corrigé pour être en adéquation avec son usage scolaire.



Enfin, deux langues ont été rajoutées, le Néerlandais et l'Italien.

Ce n'est pas une surprise dans le contexte tout récent de l'acceptation de la NumWorks sur les listes officielles de modèles autorisés aux examens aux Pays-Bas et en Italie, c'était la moindre des choses.

12608Après un passage par la version 14.1.0 nouvelle étape franchie aujourd'hui pour la future version 14 : la version à bêta-tester passe en 14.2.0. :)

Envie de découvrir et profiter de tout ça en avant-première ?

C'est possible, il te suffit juste de t'inscrire comme bêta-testeur à partir de ton compte NumWorks. L'inscription est prise en compte automatiquement pour un accès donc immédiat ! :bj:

Une fois inscrit, tu auras le choix sur la page de mise à jour de ta calculatrice :
  • le bouton que tu connais pour installer la dernière version stable
  • et un nouveau bouton pour installer la dernière version bêta

Inscription : https://workshop.numworks.com/user/beta
Mise à jour : https://workshop.numworks.com/devices/ (bêta disponible uniquement après inscription)
Source : https://workshop.numworks.com/firmwares
Crédits captures d'écran v14 : NumWorks
Link to topic: Bêta-test public NumWorks version 14.2.0 (Comments: 0)

Bêta-test public NumWorks version 14.1.0

New postby Admin » 20 Jun 2020, 10:54

12534Dans un article précédent, nous t'annoncions le lancement d'un bêta-test public accessible à tous de la prochaine version 14 de ta calculatrice NumWorks, plus précisément alors en version 14.0.0.

La prochaine version 14 de la NumWorks t'apportera de formidables nouveautés.

En Python déjà, nous passons sur la nouvelle version 1.12 de MicroPython. :)

La NumWorks devient de plus le premier modèle à disposer d'un assistant d'aide à la saisie Python ! :D

Il prend la forme d'une fonctionnalité d'auto-complétion, une exclusivité sur calculatrices Python à ce jour. Mais c'est bien plus creusé que ce que tu pourrais croire, il y a un véritable assistant d'aide à la saisie derrière. :)

A peine commences-tu à taper un nom de fonction ou variable dans l'éditeur Python, que la calculatrice est désormais capable de te faire une suggestion, affichée en grisé directement au sein de l'éditeur. Si la suggestion te convient, tu peux alors la valider d'une seule touche en tapant
OK
ou
. :bj:

Et si jamais la suggestion ne te convient pas, tu peux soit poursuivre ta saisie avec les caractères suivant en espérant mieux, soit demander de suite d'autres suggestions d'une simple touche,
var
. :bj:

Les quelques points faibles du module Python matplotlib.pyplot que nous avions pointés il y a quelques semaines à l'occasion d'un test comparatif dans le contexte de la sortie d'un module similaire chez Casio ont été corrigés. :bj:
  • Les paramètres de couleurs sont désormais acceptés et fonctionnels ! Plus d'erreur de syntaxe donc quand tu réutilises des scripts en provenance d'autres plateformes, et de plus fonctionnels !
  • Conformément au standard les paramètres de couleurs peuvent être optionnels (fonction plot) ou nommés (fonctions scatter, bar, hist, et arrow).
  • Le paramètre nommé head_width est dorénavant géré par la fonction arrow(), et permettra dé régler la taille de la flèche.

De façon similaire, les quelques faiblesses du module turtle pointées à la même occasion ont toutes été soigneusement traitées et corrigées. Cela fait plaisir de voir que nous sommes lus en détails sans a priori négatif, et qui plus est avec une telle réactivité ! :D
  • La fonction write() permettant d'écrire du texte à la position de la tortue a été rajoutée.
  • La fonction colormode() permettant de choisir l'unité de coordonnées couleur RGB (nombres flottants entre 0 et 1, ou nombres entiers entre 0 et 255) a été rajoutée, pour compatibilité avec les plateformes n'ayant pas fait le même choix par défaut et notamment le standard.
  • La fonction circle() accepté désormais comme le standard un paramètre de rayon négatif, afin d'inverser le sens de tracé.

Hors Python maintenant, l'application Calculs affiche désormais lorsque possible les résultats sur la même ligne que le calcul associé, une fonctionnalité qui nécessitait jusqu'à présent d'installer des firmwares tiers comme Omega.

Plus besoin de t'embêter à installer des firmwares tiers, tu vas enfin pouvoir visualiser sans défilement bien plus que les seuls 2 derniers calculs, et avoir donc une bien meilleure vue d'ensemble de ta résolution des problèmes ! :bj:

Lors d'une saisie de quotient en écriture naturelle, il devient enfin possible de récupérer un élément de l'historique de calculs au dénominateur.

Les formidables résultats complémentaires introduits dans la version 13, littéralement équivalents à de mini-programmes d'étude qui sortaient pour d'autres modèles et désormais inutilisables en mode examen, sont étendus dans le contexte des résultats utilisant les unités.

Si l'unité choisie automatiquement pour le résultat ne te convient pas, tu trouveras désormais d'autres suggestions dans les résultats complémentaires. Et si jamais cela ne te convenait toujours pas, tu conserves la possibilité de demander manuellement une conversion vers l'unité de ton choix.

Dans l'application Régressions un nouveau modèle linéaire est disponible, y=ax.

Le modèle géométrique a de plus été corrigé pour être en adéquation avec son usage scolaire.



Enfin, deux langues ont été rajoutées, le Néerlandais et l'Italien.

Ce n'est pas une surprise dans le contexte tout récent de l'acceptation de la NumWorks sur les listes officielles de modèles autorisés aux examens aux Pays-Bas et en Italie, c'était la moindre des choses.

La version bêta 14.0.0 disposait toutefois d'un défaut, lorsque l'on importait un script sur la calculatrice le premier caractère était systématiquement perdu, ce qui générait donc des erreurs.

12562Aujourd'hui nouvelle étape franchie version la future version 14, la version à bêta-tester passe en 14.1.0 et corrige ce dernier problème bien embêtant. :)

Envie de découvrir et profiter de tout ça en avant-première ?

C'est possible, il te suffit juste de t'inscrire comme bêta-testeur à partir de ton compte NumWorks. L'inscription est prise en compte immédiatement ! :bj:

Une fois inscrit, tu auras le choix sur la page de mise à jour de ta calculatrice :
  • le bouton que tu connais pour installer la dernière version stable
  • et un nouveau bouton pour installer la dernière version bêta

Inscription : https://workshop.numworks.com/user/beta
Lien : https://workshop.numworks.com/devices/ (après inscription)
Source : https://workshop.numworks.com/firmwares
Crédits captures d'écran v14 : NumWorks
Link to topic: Bêta-test public NumWorks version 14.1.0 (Comments: 13)

NumWorks v14: exploration turtle + tests compatibilité

New postby Admin » 13 Jun 2020, 15:57

12534NumWorks vient de lancer le bêta-test public de sa prochaine version 14, avec un menu pantégruélique.

Nous nous attardons aujourd'hui plus en détail sur les ajouts apportés au module Python turtle.

Lors d'un précédent test comparatif à l'occasion de la dernière mise à jour Casio, nous y avions en effet remarqué quelques faiblesses.








1) Exploration turtle

Go to top

À l'aide de notre script explmod.py, commençons par fouiller le module turtle à la recherche de nouveautés.

Nous avions pour référence jusqu'à présent 38 à 60 éléments en comptant les sous-éléments.
Code: Select all
def getplatform():
  id=-1
  try:
    import sys
    try:
      if sys.platform=='nspire':id=0
      if sys.platform.startswith('TI-Python') or sys.platform=='Atmel SAMD21':id=4
    except:id=3
  except:
    try:
      import kandinsky
      id=1
    except:
      try:
        if chr(256)==chr(0):id=5+(not ("HP" in version()))
      except:
        id=2
  return id

platform=getplatform()
#lines shown on screen
#plines=[29,12,  7, 9,11,0,0]
plines=[29,16,  7, 9,11,0,0]
#max chars per line
#(error or CR if exceeded)
pcols =[53,99,509,32,32,0,0]

unsafe = ((), (), (), ('sys.argv', 'sys.path'), (), (), ())

if platform>=0:
  curline=0
  _p = print
  nlines=plines[platform]
  ncols=pcols[platform]
  def print(*ls):
    global curline
    st=""
    for s in ls:
      if not(isinstance(s,str)):
        s=str(s)
      st=st+s
    stlines=1+int(len(st)/ncols)
    if curline+stlines>=nlines:
      input("Input to continue:")
      curline=0
    _p(st)
    curline+=stlines

def sstr(obj):
  try:
    s=obj.__name__
  except:
    s=str(obj)
    a=s.find("'")
    b=s.rfind("'")
    if a>=0 and b!=a:
      s=s[a+1:b]
  return s

def isExplorable(obj):
  for k in done:
    try:
      if isinstance(obj, eval(k)):
        t, done[k] = done[k], True
        return not t
    except: pass
  if str(obj).startswith("<module"): return False
  l = ()
  try: l = dir(obj)
  except: pass
  return len(l)

done = {'str':False, 'list':False, 'tuple':False, 'dict':False, 'complex':False, 'set':False, 'frozenset': False}

def explmod(pitm, pitmsl=[], reset=True):
  global curline
  spitm=sstr(pitm)
  if(reset):
    curline=0
    pitmsl=[spitm]
    for k in done: done[k] = False
  hd="."*(len(pitmsl)-1)
  c,c2=0,0
  l = sorted(dir(pitm))
  for i in range(len(l)):
    l[i] = (l[i], getattr(pitm, l[i]))
  try:
    if not isinstanceof(pitm, str):
      for i in range(len(pitm)):
        l.append((spitm+'['+str(i)+']',pitm[i]))
  except: pass
  for itm in l:
    c,c2=c+1,c2+1
    isUnsafe = platform >= 0 and '.'.join(pitmsl + [itm[0]]) in unsafe[platform]
    try:
      if isUnsafe: raise Exception
      print(hd+itm[0]+"="+str(itm[1]))
    except:
      print(hd+itm[0])
    if not isUnsafe and isExplorable(itm[1]) and itm[1] != pitm and itm[0] not in pitmsl:
      pitmsl2=pitmsl.copy()
      pitmsl2.append(itm[0])
      c2=c2+explmod(itm[1], pitmsl2, False)[1]
  if c>0 and reset:
    print(hd+"Total: "+str(c)+" 1st level item(s)")
    if c2>0 and c2!=c:
      print(hd+"       "+str(c2)+" item(s)")
  return [c,c2]

1254612545Nous avons donc désormais de 40 à 62 éléments, avec les deux ajouts suivants :
  • fonction colormode()
  • fonction write()

Nous allons bien évidemment en expliciter l'intérêt, mais en attendant petit bilan au sujet de la richesse des différentes solutions Python sur calculatrices :
Casio Graph
35+E II
90+E
NumWorks
TI-83PCE
Ed. Python
builtins
array
collections
cmath
gc
math
matplotlib
matplotlib.pyplot
micropython
os
random
sys
time
turtle
uerrno
84-197
.
.
.
.
25-47
.
.
.
.
8-30
.
.
.
.
97-1581
3-363
.
13-428
9-404
42-602
.
.
10-410
.
.
17-977
.
.
25-1277
89-211
.
.
12-34
.
41-63
3-25
11-33
6-28
.
9-31
.
3-25
40-62
.
92-211
2-24
2-24
.
7-29
28-50
.
.
.
.
8-30
15-93
4-26
.
.
spécifiquecasioplot:6-28prime:3-368ion:48-162
kandinsky:8-30
ti_graphics:30-75
ti_hub:?
ti_plotlib:49-84
ti_system:12-34
ti_rover:66-92
Modules491113
Eléments123-302219-6042269-703315-772

  1. 315-772 éléments : TI-83 Premium CE Edition Python
  2. 269-703 éléments : NumWorks
  3. 219-6042 éléments : HP Prime (version alpha)
  4. 123-302 éléments : Casio Graph 90+E / 35+E II
Casio Graph
35+E II
90+E
CasioPython
Casio Graph
35+E II
35+E/USB
75/85/95
MicroPython
TI-Nspire
TI-Python
TI-83PCE
Ed. Python
builtins
array
collections
cmath
gc
math
matplotlib
matplotlib.pyplot
micropython
os
random
sys
time
turtle
uerrno
84-197
.
.
.
.
25-47
.
.
.
.
8-30
.
.
69-126
.
91-230
2-28
.
12-38
7-33
41-67
.
.
6-32
.
8-34
12-38
.
.
24-108
93-218
2-28
.
12-38
7-33
41-67
.
.
3-29
.
.
15-86
.
.
.
92-212
2-24
2-24
.
7-29
28-50
.
.
.
.
8-30
15-93
4-26
.
.
93-214
2-25
2-25
12-35
7-30
41-64
.
.
6-29
15-38
8-31
15-99
8-33
.
.
92-211
2-24
2-24
.
7-29
28-50
.
.
.
.
8-30
15-93
4-26
.
.
spécifiquecasioplot:6-28
matplotl:25-68
nsp:3-10board:22
storage:7-47
ce_box:5-32
ce_chart:8-67
ce_quivr:5-41
ce_turtl:?
ti_graphics:30-75
ti_hub:?
ti_plotlib:49-84
ti_system:12-34
ti_rover:66-92
Modules69891317
Eléments217-496203-608176-509158-488238-692333-912

  1. 322-912 éléments : TI-83 Premium CE Edition Python
  2. 269-703 éléments : NumWorks
  3. 238-692 éléments : TI-83 Premium CE + TI-Python (firmware tiers)
  4. 219-6042 éléments : HP Prime (version alpha)
  5. 217-496 éléments : Casio Graph 90+E / 35+E II / fx-CG50 / fx-9750/9860GIII
  6. 203-608 éléments : Casio Graph 75/85/95 / 35+E/USB / 35+E II / fx-9750GII/GIII / fx-9860G/GII/GIII (appli CasioPython)
  7. 176-509 éléments : TI-Nspire (appli MicroPython)
  8. 158-488 éléments : TI-83 Premium CE + TI-Python

NumWorks conforte ainsi sa 2nde place niveau richesse de sa solution Python.

Mais la richesse ne fait pas tout, il faut également voir la compatibilité, et nous y venons de suite.




2) compatibilité turtle

Go to top

Commençons déjà par tester les déplacements relatifs de la tortue. Voici par exemple avec la construction d'une rosace par rotation d'un polygone régulier :
Graph 35+E IIGraph 90+ENumWorksordi
Code: Select all
from turtle import *

def rosap(n1=12, n2=8, l=30):
  d1, d2 = 360//n1, 360//n2
  for i in range(n1):
    left(d1)
    for i in range(n2):
      forward(l)
      left(d2)

speed(0)
rosap()

La tortue travaillant en pixels, le code aurait besoin d'être adapté pour l'écran Graph 35+E II à plus faible définition. Mais à part cela, le code passe ici sans problème sur Casio, NumWorks et ordinateur. :)

Complexifions un petit peu la chose avec la fractale de Koch. Rajoutons également un levé de crayon (penup), un déplacement absolu (goto), ainsi que l'utilisation d'une des couleurs prédéfinies :
Graph 35+E IIGraph 90+ENumWorksordi
Code: Select all
from turtle import *

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

pencolor('blue')
penup()
goto(-180, -50)
pendown()
koch(4, 360)

Ici pareil, compatibilité totale ! :)

Allons bien plus loin niveau couleurs avec maintenant un soleil :
Code: Select all
from math import exp
from turtle import *

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))
  pencolor([red, green, blue])
  for i in range(1, 5):
    forward(60)
    right(90)
    right(10)

Problème ici sur NumWorks, qui a fait le choix de ne pas utiliser le même système de coordonnées que le standard pour les composantes de couleurs RVB :
  • nombres flottants de 0.0 à 1.0 sur Casio et ordinateur
  • nombres entiers de 0 à 255 sur NumWorks et TI-83 Premium CE Edition Python
Mais nous disposons donc sur NumWorks de la nouvelle fonction colormode() pour choisir le système de coordonnées. Il suffira donc tout simplement de rajouter un appel colormode(1.) à tout script compatible Casio ou ordinateur pour le rendre également fonctionnel sur NumWorks ! :bj:

Par contre, chez Casio cette fonction certes inutile ici n'est pas présente. Il nous faut donc sécuriser son appel en interceptant toute erreur éventuelle.
Graph 35+E IIGraph 90+ENumWorksordi
Code: Select all
from math import exp
from turtle import *

try: colormode(1.)
except: pass

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))
  pencolor([red, green, blue])
  for i in range(1, 5):
    forward(60)
    right(90)
    right(10)

Poursuivons avec une coquille d'escargot en appliquant la même astuce, et l'appel à la fonction de tracé de cercle circle() :
Graph 35+E IIGraph 90+ENumWorksordi
Code: Select all
from turtle import *
from math import *

try: colormode(1.)
except: pass

penup()
goto(0, -20)
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))
  mypencolor([red,green,blue])
  circle(50-i)
  right(10)

Sous réserve de cette toute petite astuce donc, compatibilité totale. :)

Faisons maintenant neiger quelques flocons de Koch, en faisant variant l'épaisseur du crayon avec pensize() :
Graph
35+E II
Graph
90+E
NumWorks
ordi
Code: Select all
from turtle import *

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

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

try: colormode(1.)
except: pass

l=80

penup()
goto(105,3)
left(120)
pendown()
pencolor((0, 0, 0))
flock(3, l)
left(120)

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

pensize(2)
penup()
goto(5,45)
right(60)
pendown()
pencolor((0, 0, 1))
flock(2, l)
right(60)

penup()
goto(-100,17)
left(120)
pendown()
pencolor((1, 0, 0))
flock(0, l)
left(120)

pensize(3)
penup()
goto(-100,-5)
right(60)
pendown()
pencolor((0, 1, 0))
flock(1, l)
right(60)

penup()
forward(400)

Les réglages d'épaisseur du crayon via pensize() semblent hélas totalement ignorés chez Casio.


Passons maintenant à une rosace construite par rotation d'un cercle, avec une écriture de texte via la fonction write().

Cette fonction standard n'était jusqu'à présent pas disponible dans le module turtle de NumWorks.

Mais maintenant c'est le cas alors voyons ce que ça donne :
Graph 35+E IIGraph 90+ENumWorksordi
12544
Code: Select all
from turtle import *

def rosac(r=50,n=10):
  d=360//n
  for k in range(n):
    circle(r)
    left(d)

r=50
rosac(r)
penup()
left(40)
fd(2.1*r)
right(40)
write('Rosace')

Petit écart chez Casio, avec le texte qui est écrit en prenant la position de la tortue comme coin supérieur gauche, alors que le standard la prend comme coin inférieur gauche.



Passons maintenant au script de démo dédié à la Casio Graph 90+E, avec inversion du sens de tracé des cercles.

Il suffisait pour cela de passer un rayon négatif à la fonction circle(), ce qui n'était hélas pas géré chez NumWorks et ignoré.

Mais maintenant apparemment désormais c'est bon : :bj:
Graph 35+E IIGraph 90+ENumWorksordi
12547
Code: Select all
from turtle import *

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

Juste pour le plaisir, un dernier exemple avec les triangles de Sierpiński :
Graph
35+E II
Graph
90+E
Num
Works
ordi
Code: Select all
from turtle import *

def sierp(n, l):
    if n == 0:
        for i in range (0, 3):
            fd(l)
            left(120)
    if n > 0:
        sierp(n-1, l/2)
        fd(l/2)
        sierp(n-1, l/2)
        bk(l/2)
        left(60)
        fd(l/2)
        right(60)
        sierp(n-1, l/2)
        left(60)
        bk(l/2)
        right(60)

try: colormode(1.)
except: pass
penup()
backward(109)
left(90)
backward(100)
right(90)
pendown()
pencolor((1, 0, 0))
sierp(6, 217)
penup()
forward(400)




Conclusion

Go to top

Nous ne pouvons que saluer l'exceptionnelle réactivité de NumWorks, qui s'est empressé de colmater les quelques petites faiblesses que nous avions constatées dans son module turtle.

Nous obtenons ainsi sur la NumWorks version 14 un module turtle en excellente adéquation avec le standard et bénéficiant ainsi d'une non moins excellente compatibilité avec les scripts conçus pour le standard ou pour les plateformes visant à le respecter.
Une compatibilité peut-être un poil meilleure que celle de Casio.

Mais bref dans les deux cas, nous avons donc d'excellentes solutions qui permettront de concevoir et exécuter des scripts Python turtle dans une classe équipée de différents modèles avec un effort très minimal ! :bj:

Liens :

-
Search
-
Social TI-Planet
-
Featured topics
Grand Concours 2024-2025 - Programmation Python
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
639 utilisateurs:
>610 invités
>22 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)