π
<-
Chat plein-écran
[^]

News 2019
April (1)
March (2)

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

News 2017
August (4)

Firmware 10.1.0 tiers orienté accessibilité

New postby critor » 07 Apr 2019, 16:18

1106011061 avait déjà à son actif diverses modifications du
firmware
NumWorks
:
Cette semaine
Jean-Baptiste
se lancee sur une nouvelle piste d'améliorations, avec le rajout d'options d'accessibilité.

1105811059Tu disposes donc en prime d'un mode inversant les couleurs de l'écran, ce qui te donnera un thème nocturne moins agressif pour tes yeux.

Tu bénéficies également d'un mode d'affichage en zoom x2 pour une meilleure lisibilité. Une fois activé tu contrôleras le quadrant affiché via la touche
shift
suivie d'une touche du pavé numérique utilisé en tant que pavé directionnel.

Enfin, tu as aussi la possibilité d'activer une correction gamma. Là encore un moyen de filtrer entre autres la lumière bleue nocive pour tes yeux.

Ces rajouts arriveront-ils eux aussi à atterrir dans une prochaine version du firmware officiel ? ;)

Téléchargement
:
firmware
10.1.0
précompilé avec ces améliorations
(installable facilement via webdfu_numworks )

Code
:
https://github.com/numworks/epsilon/pull/947
Source
:
viewtopic.php?f=102&t=22484&p=241335#p241306
Link to topic: Firmware 10.1.0 tiers orienté accessibilité (Comments: 12)

Sortie applications NumWorks pour Android et iPhone/iPad

New postby critor » 21 Mar 2019, 21:38

Selon les lycées, il arrive plus ou moins souvent que les élèves n'aient pas leur calculatrice graphique :
  • les premiers jours voir premières semaines après la rentrée en Seconde, parce qu'ils ne l'ont pas encore achetée/reçue
  • parce qu'ils l'ont oubliée, perdue, ou encore qu'on leur a volée
  • parce qu'ils ne l'ont pas rechargée ou n'ont pas changé les piles
  • parce qu'ils l'ont cassée matériellement
    (même si c'est rare tellement les modèles ont majoritairement été conçus pour le contexte hostile du milieu scolaire)
  • parce qu'ils l'ont bloquée/coincée logiciellement
  • ou encore parce qu'ils n'ont aucune envie de faire cette dépense, même si sous la réglementation actuelle il faudra bien qu'ils s'y décident avant leur examen

Dans ces situations, comment peut faire l'enseignant sans s'embêter à aller en salle informatique/multimédia quand il y a besoin de la calculatrice graphique, que ce soit pour une activité de recherche, des travaux pratiques, des projets, de la programmation
Python
, des exercices ou encore des devoirs surveillés ?

10889Et bien
NumWorks
nous apporte une fois de plus la solution à ce problème d'enseignement ! :bj:

En effet, à la différence les élèves disposent à une quasi unanimité d'une tablette ou d'un smartphone, d'ailleurs souvent payé d'une façon ou d'une autre bien plus cher qu'une calculatrice graphique. :p

La calculatrice graphique
NumWorks
est dès ce soir disponible sous la forme d'applications pour
Android
et
iPhone/iPad
! :D

Contrairement à
Texas Instruments
avec son application
TI-Nspire
, l'application
NumWorks
est entièrement gratuite ! :bj:
Et contrairement à
Casio
et
Hewlett Packard
avec leurs applications
Classpad fx-CP400
et , cette gratuité n'implique aucun bridage ! :bj:

NumWorks
t'offre donc gracieusement l'accès à l'ensemble de son écosystème, dont entre autres tout ce qui en fait ses remarquables qualités selon nous :
  • son moteur de calcul littéral
  • sa sous-application de probabilités
  • sa sous-application
    Python


10890A noter que l'application fait actuellement tourner une version
10.0.0
du système
NumWorks
.
Nous ignorons si cela implique des différences de fonctionnalités avec la version
10.1.0
qui vient juste de sortir.


Aussi, c'est assez déroutant d'avoir le menu d'accueil des applications
NumWorks
sur un écran tactile - nous avons le réflexe de vouloir tapoter directement dessus mais la calculatrice n'étant pas tactile ça ne marche pas, il faut tapoter sur les touches du clavier.
Peut-être que le tactile serait pour le coup une fonctionnalité à implémenter sur certains menus de la version application de la calculatrice
NumWorks
? ;)


On peut toutefois regretter que, contrairement à la véritable calculatrice, cette première version de l'application ne dispose pas d'un système de sauvegarde. Si l'application est fermée
(par l'utilisateur, par un économiseur de batterie, par un plantage, ou encore parce que le smartphone a redémarré, a été arrêté ou s'est déchargé...)
, tout ce qui a été saisi ne sera pas retrouvé à son prochain lancement. :(
Particulièrement dérangeant dans le cadre de la saisie de scripts
Python
... :'(


Installation
:
Application
NumWorks
pour
Android
/
iPhone/iPad


Référence
:
https://twitter.com/numworks/status/1109032300849885184

Maj NumWorks 10.1.0 : calcul complexe exact + module turtle

New postby critor » 13 Mar 2019, 14:38

La nouvelle version
10.1.0
pour ta calculatrice
NumWorks
est dès maintenant disponible. Découvrons ensemble les nouveautés :

Image ImageImage Image ImageImage Image



Application Calculs

Go to top

10238Le moteur de calcul a été amélioré dans le contexte des nombres complexes, de quoi ravir les élèves de Terminale S/STI2D/STL.

Le moteur est désormais capable de renvoyer des résultats exacts lorsque l'on passe un argument complexe aux fonctions de module et d'argument ! :bj:

Mais ce n’est pas tout, le moteur simplifie maintenant également correctement les quotients de nombres complexes ! :bj:

Notons que les résultats littéraux faisant apparaître plusieurs termes avec un même symbole sont dorénavant triés par puissances décroissantes de ce symbole. De quoi avoir une présentation bien plus claire des polynômes de Première ! :bj:

Toujours pour plus de clarté à la lecture, l’ajout d’une division en écriture naturelle met maintenant au numérateur du quotient l’ensemble des facteurs précédents éventuels, et non plus le seul dernier d’entre eux. De même en cas d'insertion en milieu d'expression, les facteurs suivants sont eux aussi tous pris en compte au lieu du seul premier d'entre eux, et automatiquement et mis au dénominateur.


Applications Paramètres et Equations

Go to top

Pour rester sur le thème des nombres complexes, l’option
Forme complexe
dans l’application
Paramètres
accueille un nouveau choix,
Reel
, qui devient de plus le choix par défaut.

Lorsque l’utilisateur effectue des manipulations dans un contexte réel
(racine carrée de nombre négatif, polynôme du second degré à coefficients réels de discriminant négatif…)
, si la forme complexe est réglée sur
Reel
, alors la calculatrice répondra dans le contexte des nombres réels au lieu d’aller chercher des nombres complexes.
Une adaptation fort louable au plus près des besoins de chacun des utilisateurs, permettant ainsi de leur fournir une réponse réutilisable en toute confiance, peu importe qu’ils soient en Terminale S/STI2D/STL ou ailleurs ! :bj:


Application Probabilités

Go to top

Notons que l’application
Probabilités
permet désormais de travailler avec des rapports
$mathjax$\frac{\mu}{\sigma}$mathjax$
supérieurs, la valeur limite passant de 1000 à 1000000.


Applications Fonctions et Suites

Go to top

Les applications
Fonctions
et
Suites
partagent pour leur part nombre d’améliorations.

Dès le départ, le projet
NumWorks
avait pour louable ambition d’utiliser le bel espace offert par l’écran 320x240 pixels pour communiquer rigoureusement dans le langage mathématiques, contribuant ainsi à l’apprentissage puis l’usage correct de ce langage par l’utilisateur. Le constructeur poursuit dans cette voie, avec les onglets de définition de suites et de fonctions qui relient désormais correctement avec le symbole égal chaque objet à sa définition.

Les onglets de représentations graphiques bénéficient quant à eux de plusieurs nouveautés :
  • la grille utilise désormais différentes teintes pour bien distinguer les graduations principales et secondaires
  • dans le cas où un axe se situe hors de la fenêtre graphique, les valeurs de ses graduations sont quand même affichées sur le bord de fenêtre adéquat
  • dans le cas où il y a superposition des valeurs de graduations, seules les valeurs extrêmes sont affichées

Notons que le réglage de fenêtre graphique automatique avait le défaut de mettre en évidence à l’extrême de petites approximations de calcul, notamment sur les fonctions constantes comme par exemple la fonction d’expression
$mathjax$f(x)={cos}^2(x)+{sin}^2(x)$mathjax$
. C’est maintenant corrigé.

Lorsque l’on désactive le fenêtrage automatique pour pouvoir préciser ses propres bornes pour l’axe (Oy), la calculatrice se permettait malgré tout de réajuster automatiquement ces bornes à chaque ajout de fonction. C’est corrigé également.

Enfin, les coordonnées communiquées pour les points sur les courbes de fonctions dans la fenêtre graphique tiennent maintenant compte correctement de leur ensemble de définition, comme par exemple avec la fonction d’expression
$mathjax$f(x)=\frac{x}{x}$mathjax$
en x=0.


Application Python

Go to top

10224Comme déjà annoncé grâce au travail de , l’application
Python
bénéficie maintenant d’origine d’un tout nouveau module de dessin importable,
turtle
. Il complète donc les capacités de dessin du module
kandinsky
, en permettant cette fois-ci de concevoir ses scripts en relatif plutôt qu’en absolu.

Y sont disponibles des équivalents pour l'ensemble des fonctions
Scratch
du collège :
1023710236102351023410233102321023110230


10229De quoi tracer facilement aussi bien des objets mathématiques comme des vecteurs que des objets artistiques comme des fleurs ! ;)
Code: Select all
from turtle import *
import kandinsky

def forbackward(d):
  forward(d)
  backward(d)
 
def pf(d=1,gd=-1,nervure=False):
  n=9
  pos=position()
  for j in range(2):
    for k in range(n):
      forward(d)
      right(gd*90/n)
    right(gd*90)
  if nervure:
    right(gd*40)
    forbackward(5*d)
    right(-gd*40)

def fleur(npetales=8,nfeuilles=2,ltige=160,kfeuille=1,c=kandinsky.color(255,255,0)):
  d=ltige/(nfeuilles+1)
  color(0,191,0)
  for j in range(nfeuilles):
    forward(d)
    pf(kfeuille,2*(j%2)-1,True)
  forward(d)
  color((c>>11)<<3,((c>>5)%64)<<2,(c%32)<<3)
  for j in range(npetales):
    pf(kfeuille,-1)
    left(360/npetales)

#example
from math import *

def hsv2color(h,s=1,v=1):
  c=v*s
  x=c*(1-abs((h%120)/60-1))
  m=v-c
  k=int(h/60)
  r=255*(m+x*(k==1 or k==4)+c*(k==5 or k==0))
  g=255*(m+c*(k==1 or k==2)+x*(k==3 or k==0))
  b=255*(m+x*(k==2 or k==5)+c*(k==3 or k==4))
  return kandinsky.color(round(r),round(g),round(b))

def horiz(y,col):
  for x in range(320):
    kandinsky.set_pixel(x,y,col)

for j in range(112):
  horiz(111-j,hsv2color(210,0+1*j/111,1))
  horiz(111+j,hsv2color(30,.1+.9*j/111,.7))

sw=320
sh=222
ymax=sh/2
ymin=ymax-sh+1
xmin=-sw/2
xmax=xmin+sw-1
penup()
goto(0,ymin)
setheading(90)
pendown()
fleur(12,9,ymax-ymin+1-26,3,kandinsky.color(255,255,0))


Une nouveauté qui s’inscrit parfaitement dans l’ère du temps, et pourra donc être utilisée dans maintes situations différentes : :bj:
  • en
    Mathématiques collège
    : pour les quelques élèves et établissements qui font un équipement en calculatrices graphiques
  • en
    Mathématiques Seconde
    : le temps d’une transition entre le langage de programmation visuel
    (Scratch)
    du collège et le langage de programmation textuel interprété du lycée
  • en
    Physique-Chimie Seconde
    : pour le nouveau programme de rentrée 2019 qui demande de coder des représentations des vecteurs, ce qui sera beaucoup plus facilement abordable en réinvestissant les acquis du collège avec les déplacements relatifs de la tortue, plutôt qu’en s’attaquant au problème trigonométrique des coordonnées absolues
  • en
    Mathématiques CAP
    : où, si le projet de nouveau programme 2019 se confirme, l’on poursuit la programmation visuelle du collège
Une fois de plus, le constructeur
NumWorks
nous prouve sa très grande réactivité en n'attendant pas le dernier moment pour nous apporter des solutions ! :bj:


Creusons un petit peu la chose, et explorons ce que renferme ce module à l'aide du script suivant :
Code: Select all
#platforms:
#0: MicroPython / TI-Nspire
#1: MicroPython / NumWorks
#2: MicroPython / G90+E
#3: MicroPython / G35+E/USB / G75/85/95
#4: CircuitPython / TI-Python / 83PCE
#5: Xcas / HP Prime
#6: KhiCAS / Graph 90+E
def getplatform():
  id=-1
  try:
    import sys
    try:
      if sys.platform=='nspire':id=0
      if sys.platform=='TI-Python Adapter':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]
#max chars per line
#(error or new line if exceeded)
pcols =[53,99,509,32,32,0,0]

nlines=plines[platform]
ncols=pcols[platform]
curline=0

def mprint(*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
  print(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):
  s=str(obj)
  return s.startswith("<module '") or s.startswith("<class '")

def explmod(pitm,pitmsl=[],reset=True):
  global curline
  if(reset):
    curline=0
    pitmsl=[sstr(pitm)]
  hd="."*(len(pitmsl)-1)
  spath=".".join(pitmsl)
  c=0
  for itms in sorted(dir(pitm)):
    c=c+1
    try:
      itm=eval(spath+"."+itms)
      mprint(hd+itms+"="+str(itm))
      if isExplorable(itm):
        pitmsl2=pitmsl.copy()
        pitmsl2.append(itms)
        c=c+explmod(itm,pitmsl2,False)
    except:
      mprint(hd+itms)
  if c>0:
    mprint(hd+"Total: "+str(c)+" item(s)")
  return c

10225102261022710228

38
éléments donc, de quoi mettre à jour notre bilan comparatif de la richesse des différentes
pythonnettes
disponibles à ce jour :
NumWorks
Casio
Graph 90+E
module externe
TI-Python
pour
TI-83 Premium CE
builtins218188175204190
array444
collections2
cmath121212
gc777
math4141254128
random8888
sys151215
time34
turtle38
spécifique
10
(nsp)
5
(kandinsky)
Modules
7
7
3
7
8
Éléments
307
295
208
288
258
Compatible
mode examen


D'où le classement suivant :
  1. avec
    7
    modules et
    307
    entrées, hors mode examen
  2. NumWorks
    avec
    7
    modules et
    295
    entrées, même en mode examen
  3. avec
    7
    modules et
    288
    entrées, hors mode examen
  4. module externe
    TI-Python
    pour
    TI-83 Premium CE
    avec
    8
    modules et
    258
    entrées, même en mode examen
  5. Casio Graph 90+E
    avec
    3
    modules et
    208
    entrées, même en mode examen


Précisions enfin que la nouvelle version
10.1.0
occupera désormais 727Kio sur les 1024Kio offerts par la puce Flash de la calculatrice.



Liens
:

Firmware NumWorks 10.0.0 bêta; module turtle Python !

New postby critor » 03 Feb 2019, 15:02

NumWorks
travaille actuellement sur la prochaine mise à jour
10.0.0
de sa calculatrice. Celle-ci est déjà disponible en version bêta, à condition de la compiler à partir du code source officiel.

Mais cette fois-ci, une version compilée de la
10.0.0 bêta
vient d'être diffusée par dans le contexte de son Python amélioré pour les jeux. Profitons-en donc pour découvrir les nouveautés à venir. ;)

10238D'une part, nous notons des améliorations apportées au moteur de calcul.

Il est désormais capable de renvoyer des résultats exacts lorsque l'on passe un argument complexe aux fonctions de module et d'argument ! :bj:

D'autre part, pour la rentrée 2019, selon le nouveau programme de
Physique-Chimie
de la
Seconde Générale et Technologique
, il faudra programmer des tracés en langage
Python
:
  • mouvement plan d'un objet ponctuel
  • nuage de points
  • vecteurs vitesse et variations

La
NumWorks
est certes le seul modèle à ce jour à disposer d'une implémentation
Python
constructeur
(et donc disponible en mode examen)
permettant de dessiner sur l'écran, à l'aide du module
kandinsky
.

Mais le dernier point évoqué, à savoir représenter des vecteurs, c'est-à-dire une direction, un sens et peut-être même la flèche qu'il y a au bout, n'en reste pas moins un problème trigonométrique bien conséquent, qui ne nous semble pas évident à faire résoudre à un niveau Seconde.
A moins bien sûr de distribuer des fonctions Python précodées par l'enseignant, ce qui n'aura alors pas grand intérêt...

10224Une fois de plus, le constructeur
NumWorks
nous prouve sa grande réactivité en n'attendant pas le dernier moment pour apporter une solution, l'inclusion dans son application
Python
du module
turtle
développé par en novembre 2018.

Tracer maintenant un vecteur en coordonnées relatives et non absolues, même avec la flèche au bout, n'a plus du tout la même complexité ! :bj:
C'est doublement une excellente solution à notre problème, puisque c'est également l'occasion de réinvestir les acquis de collège avec le codage de tracés en langage
Scratch
, mais dans le cadre maintenant d'un langage textuel conformément aux programmes du lycée. :bj:

Y sont disponibles des équivalents pour l'ensemble des fonctions
Scratch
du collège :
10237102361023510234
10233102321023110230


10229De quoi tracer facilement des vecteurs ou même encore plus complexe comme des fleurs ! ;)
Code: Select all
from turtle import *
import kandinsky

def forbackward(d):
  forward(d)
  backward(d)
 
def pf(d=1,gd=-1,nervure=False):
  n=9
  pos=position()
  for j in range(2):
    for k in range(n):
      forward(d)
      right(gd*90/n)
    right(gd*90)
  if nervure:
    right(gd*40)
    forbackward(5*d)
    right(-gd*40)

def fleur(npetales=8,nfeuilles=2,ltige=160,kfeuille=1,c=kandinsky.color(255,255,0)):
  d=ltige/(nfeuilles+1)
  color(0,191,0)
  for j in range(nfeuilles):
    forward(d)
    pf(kfeuille,2*(j%2)-1,True)
  forward(d)
  color((c>>11)<<3,((c>>5)%64)<<2,(c%32)<<3)
  for j in range(npetales):
    pf(kfeuille,-1)
    left(360/npetales)

#example
from math import *

def hsv2color(h,s=1,v=1):
  c=v*s
  x=c*(1-abs((h%120)/60-1))
  m=v-c
  k=int(h/60)
  r=255*(m+x*(k==1 or k==4)+c*(k==5 or k==0))
  g=255*(m+c*(k==1 or k==2)+x*(k==3 or k==0))
  b=255*(m+x*(k==2 or k==5)+c*(k==3 or k==4))
  return kandinsky.color(round(r),round(g),round(b))

def horiz(y,col):
  for x in range(320):
    kandinsky.set_pixel(x,y,col)

for j in range(112):
  horiz(111-j,hsv2color(210,0+1*j/111,1))
  horiz(111+j,hsv2color(30,.1+.9*j/111,.7))

sw=320
sh=222
ymax=sh/2
ymin=ymax-sh+1
xmin=-sw/2
xmax=xmin+sw-1
penup()
goto(0,ymin)
setheading(90)
pendown()
fleur(12,9,ymax-ymin+1-26,3,kandinsky.color(255,255,0))

Creusons un petit peu la chose, et explorons ce que renferme ce module à l'aide du script suivant :
Code: Select all
#platforms:
#0: MicroPython / TI-Nspire
#1: MicroPython / NumWorks
#2: MicroPython / G90+E
#3: MicroPython / G35+E/USB / G75/85/95
#4: CircuitPython / TI-Python / 83PCE
#5: Xcas / HP Prime
#6: KhiCAS / Graph 90+E
def getplatform():
  id=-1
  try:
    import sys
    try:
      if sys.platform=='nspire':id=0
      if sys.platform=='TI-Python Adapter':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]
#max chars per line
#(error or new line if exceeded)
pcols =[53,99,509,32,32,0,0]

nlines=plines[platform]
ncols=pcols[platform]
curline=0

def mprint(*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
  print(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):
  s=str(obj)
  return s.startswith("<module '") or s.startswith("<class '")

def explmod(pitm,pitmsl=[],reset=True):
  global curline
  if(reset):
    curline=0
    pitmsl=[sstr(pitm)]
  hd="."*(len(pitmsl)-1)
  spath=".".join(pitmsl)
  c=0
  for itms in sorted(dir(pitm)):
    c=c+1
    try:
      itm=eval(spath+"."+itms)
      mprint(hd+itms+"="+str(itm))
      if isExplorable(itm):
        pitmsl2=pitmsl.copy()
        pitmsl2.append(itms)
        c=c+explmod(itm,pitmsl2,False)
    except:
      mprint(hd+itms)
  if c>0:
    mprint(hd+"Total: "+str(c)+" item(s)")
  return c

10225102261022710228

38
éléments donc, soit de quoi chambouler notre classement de la richesse des implémentations de
pythonnettes
dès la sortie de cette mise à jour ! :bj:
NumWorks
Casio
Graph 90+E
module externe
TI-Python
pour
TI-83 Premium CE
builtins218188175204190
array444
collections2
cmath121212
gc777
math4141254128
random8888
sys151215
time34
turtle38
spécifique
10
(nsp)
5
(kandinsky)
4
(handshake)
Modules
7
7
3
7
9
Éléments
307
295
208
288
262


D'où le classement suivant :
  1. avec
    7
    modules et
    307
    entrées
  2. NumWorks
    avec
    7
    modules et
    295
    entrées
  3. avec
    7
    modules et
    288
    entrées
  4. module externe
    TI-Python
    pour
    TI-83 Premium CE
    avec
    9
    modules et
    262
    entrées
  5. Casio Graph 90+E
    avec
    3
    modules et
    208
    entrées

Attention le firmware
10.0.0
téléchargeable ci-dessous est donc en version bêta non finale. Des problèmes peuvent apparaître même en dehors des points évoqués; il t'est déconseillé de l'installer si tu as de prochains rendez-vous importants
(DS, examens, concours...)
. :#non#:

Téléchargement
:
firmware
10.0.0 bêta
(installable facilement via webdfu_numworks )

Firmware 10.0.0 tiers orienté jeux Python (get_keys)

New postby critor » 02 Feb 2019, 21:31

avait déjà travaillé à une modification du
firmware
NumWorks
afin d'étendre les possibilités graphiques du module
Python kandinsky
, lui rajoutant les fonctions :
  • draw_line(x1,y1,x2,y2,color) pour le tracer de lignes
  • fill_rect(x,y,w,h,color) pour le tracer de rectangles pleins
Dans les deux cas ces fonctions n'étaient pas connectées à la fonction Python setpixel(x,y,color) mais à du code C permettant donc des tracés optimaux, notamment pour le rafraichissement de
sprites
dans des jeux.

Aujourd'hui poursuit son chemin dans le but de nous permettre enfin de coder en
Python
des jeux graphiques jouables, en nous diffusant une nouvelle version de son
firmware
amélioré.

Voyons donc ensemble les dernières nouveautés


9895A première vue, bizarrement,pas de nouveauté
kandinsky
.

L'on note toujours comme seuls et uniques ajouts :
  • draw_line(x1,y1,x2,y2,color)
  • fill_rect(x,y,w,h,color)

Mais histoire d'être sûr, explorons le module
kandinsky
à l'aide du script suivant :
Code: Select all
#platforms:
#0: MicroPython / TI-Nspire
#1: MicroPython / NumWorks
#2: MicroPython / G90+E
#3: MicroPython / G35+E/USB / G75/85/95
#4: CircuitPython / TI-Python / 83PCE
#5: Xcas / HP Prime
#6: KhiCAS / Graph 90+E
def getplatform():
  id=-1
  try:
    import sys
    try:
      if sys.platform=='nspire':id=0
      if sys.platform=='TI-Python Adapter':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]
#max chars per line
#(error or new line if exceeded)
pcols =[53,99,509,32,32,0,0]

nlines=plines[platform]
ncols=pcols[platform]
curline=0

def mprint(*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
  print(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):
  s=str(obj)
  return s.startswith("<module '") or s.startswith("<class '")

def explmod(pitm,pitmsl=[],reset=True):
  global curline
  if(reset):
    curline=0
    pitmsl=[sstr(pitm)]
  hd="."*(len(pitmsl)-1)
  spath=".".join(pitmsl)
  c=0
  for itms in sorted(dir(pitm)):
    c=c+1
    try:
      itm=eval(spath+"."+itms)
      mprint(hd+itms+"="+str(itm))
      if isExplorable(itm):
        pitmsl2=pitmsl.copy()
        pitmsl2.append(itms)
        c=c+explmod(itm,pitmsl2,False)
    except:
      mprint(hd+itms)
  if c>0:
    mprint(hd+"Total: "+str(c)+" item(s)")
  return c

Et bingo, oh que oui il y a des choses, simplement elles ne sont pas listées dans la boîte à outils.

10220Déjà après les sorties graphiques, Jean-Baptise s'attaque maintenant aux entrées clavier en définissant des codes pour l'ensemble des touches du clavier et rajoutant la fonction get_keys() pour connaître la ou les touches pressées ! :bj:
10216102171021810219


10221Mais ce n'est pas tout, nous avons également de nouvelles fonctions de sorties graphiques :
  • get_pixels(x,y,width,data)
  • set_pixels(x,y,width,data)
  • wait_vblank()

10222
Alors, mission remplie ou pas avec tout ça ? Peut-on enfin coder un
Mario
pour la calculatrice
NumWorks
?

Nous te proposons d'aller juger par toi-même en testant la fluidité du jeu
PONG
codé par Jean-Baptiste en exploitant ces nouvelles fonctionnalités, premier jeu
Python
contrôlable au clavier ! :bj:

Attention au fait que le firmware diffusé par Jean-Baptiste dans ce contexte est basé sur l'état actuel du code source public de la calculatrice
NumWorks
, et que celui-ci est actuellement en phase bêta de la future version
10.0.0
. Des problèmes peuvent donc apparaître même en dehors des points évoqués; il t'est déconseillé de l'installer si tu as de prochains rendez-vous importants
(DS, examens, concours...)
. :#non#:


Téléchargement
:
firmware
1.10.0 bêta
précompilé avec ces améliorations
(installable facilement via webdfu_numworks )

Code
:
https://github.com/numworks/epsilon/pull/746
Source
:
viewtopic.php?t=22284&p=239388#p239388

Maj NumWorks 9.2.0: partage+libre nommage vars + module time

New postby critor » 09 Jan 2019, 17:13

La nouvelle version
9.2.0
pour ta calculatrice
NumWorks
est maintenant disponible.

Il y a donc un changement de numérotation, puisque nous sommes passés de
1.8.1
à
1.9.0
et
1.9.1
en bêta, et puis maintenant à
9.2.0
. On pourrait donc qualifier cette version de
1.9.2.0
, mais il va falloir se faire à cette nouvelle numérotation.

Commençons déjà par les améliorations transversales puisque cette version
(1.)9.2.0
introduit de grands changements internes.

Partage des variables entre applications
:

Mise à part l’application
Python
qui pour l’instant reste dans son coin comme chez la concurrence ainsi que l’application
Paramètres
non concernée, toutes les autres applications deviennent enfin capables de partager des données autrement que par une opération de copier/coller. :bj:
On accède à ces données via la touche
var
qui listera maintenant, à chaque fois avec un aperçu de leurs valeurs :
  • les expressions
    (variables numériques et matricielles)
    mais désormais seulement celles définies
    (par ordre d’affectation)
    et non tout l’alphabet comme avant
  • les fonctions et ça c’est nouveau
Oui grâce à cela il devient enfin possible d’utiliser dans l’application
Calculs
des fonctions définies dans l’application
Fonctions
, et même d’y définir directement des fonctions via une simple opération d'affectation ! :bj:

La solution mathématique
NumWorks
franchit ainsi un cap historique. On ne peut plus parler d'un simple agrégat d'applications comme chacun peut s'en faire sur son smartphone; il s'agit désormais d'une suite mathématique intégrée ! :bj:


Libre nommage des variables
:

Mais ce n’est pas tout… les noms de variables et de fonctions peuvent désormais être choisis librement sur 7 caractères au maximum, peu importe qu’il s’agisse de nombres, matrices ou fonctions ! :bj:
Ils acceptent :
  • les lettres majuscules A à Z
  • les lettres minuscules a à z
  • les chiffres, mais uniquement après une lettre
  • le caractère tiret-bas
    (_)
    , mais uniquement après une lettre

De formidables possibilités d’avoir des noms de fonctions beaucoup plus intelligibles et même collant davantage aux notations imposées par les énoncés ! :bj:


Rajoutons que selon le même esprit, les fonctions de dérivation, intégration, somme et produit acceptent désormais un argument supplémentaire pour préciser librement le choix de la variable.


Maintenant voici ce qui concerne plus spécifiquement chacune des applications, mais non moins important pour autant :
ImageImageImageImage


Application Calculs
:
Go to top

Pour alléger/clarifier l’affichage, les
undef
ne sont plus affichés inutilement dans les résultats. Notamment lorsqu’un résultat exact/littéral a été trouvé.


Application Fonctions
:
Go to top

Dans le cas des définitions effectuées dans l’application
Fonctions
, il suffit maintenant de faire
OK
après avoir sélectionné le nom d’une fonction pour se voir proposer la possibilité de la renommer. :bj:

Plus de limite, l'on peut désormais définir plus de 4 fonctions depuis cette application ! :)

Il devient même enfin possible de définir une fonction en fonction d’une autre ! :bj:


Application Python
:
Go to top

Plusieurs fonctions du module
builtins
étaient parfaitement utilisables mais non listées au catalogue; elles devaient donc être saisies à la main. Les fonctions eval() et float() sont maintenant rajoutées au catalogue. :)

Plus de limite ici non plus, on peut maintenant créer plus de 8 scripts depuis la calculatrice. :)

Le
Python
bénéficie lui aussi d’une énorme nouveauté, l’ajout du module
time
bien que non listé au catalogue, et qu’il faudra donc importer à la main en tapant import time. Une exclusivité à ce jour parmi les implémentations de
Python
sur calculatrices ! :bj:

En l’absence donc de catalogue, on peut par exemple l’explorer avec notre script
explmod
.

Outre le nom du module et donc les sous-fonctions de chaîne qui en découlent, on peut noter les deux fonctions time.monotonic() et time.sleep().

Enfin sur le simulateur en ligne, les dessins via le module
kandinsky
sont désormais affichés progressivement au fur et à mesure de leur réalisation, et non brutalement en fin d’exécution.
De quoi bien mieux comprendre ce qui se passe et éventuellement corriger, surtout dans le contexte du nouveau programme de Physique-Chimie de Seconde à la rentrée 2019. :bj:


Application Régressions
:
Go to top

Dans l’onglet
Stats
présentant les différents paramètres de notre ou nos séries statistiques à deux variables, l’on note la réservation d’un espace bien plus grand pour les colonnes associées à chaque variable.




Par rapport à la dernière version sortie
(1.8.1)
, le microgiciel de la calculatrice a pris dans les 33Kio, ce qui est relativement peu par rapport à l'importance des nouveautés apportées. Il occupe désormais
688,7Kio
soit 67,2% de la Flash de
1024Kio
de la calculatrice.



Liens
:

Vote signe de multiplication prochaines versions NumWorks

New postby critor » 13 Dec 2018, 22:02

L'ASCII est un standard informatique de codage des caractères. Selon cette norme un caractère est codé sur 7 bits, ce qui autorise 27=128 caractères différents. La version que nous utilisons encore aujourd'hui date de 1967.

Or comme tu peux aisément t'en rendre compte à l'aide d'un simple script
Python
, le signe de multiplication (×) n'en fait pas partie.
Code: Select all
def dig2hex(n):
  return n<10 and str(n) or chr(ord("A")+n-10)

def ascii(n=128):
  ncol,nlgn,slgn=16,n/16,'  |'
  for col in range(ncol):
    slgn+=dig2hex(col)
  print(slgn+'\n--+'+'-'*ncol)
  for lgn in range(nlgn):
    slgn=dig2hex(lgn)+'_|'
    for col in range(ncol):
      n=lgn*16+col
      car=chr(n)
      slgn+=(n==0 or car=='\t' or car=='\n') and " " or chr(n)
    print(slgn)


Pour représenter une multiplication aux débuts de l'informatique ont donc été popularisés l'usage de la lettre x
(mathématiquement faux, et impossible à conserver lorsque l'on passe à du calcul symbolique)
et du symbole étoile (*).

Les constructeurs américains de calculatrices graphiques
Texas Instruments
et
Hewlett Packard
ont fait dès le siècle dernier le choix de s'en tenir à la norme, et voilà pourquoi aujourd'hui quand tu tapes
×
ta machine te sort encore un * possiblement déroutant et mathématiquement incorrect.
Précisons que sur le haut de gamme
TI-Nspire
Texas Instruments
a enfin changé d'idée, en utilisant pour la multiplication non pas l'étoile mais le point médian (·).


Mais le japonais
Casio
a fait dès 1985 avec la première calculatrice graphique, la
fx-7000G
, le choix de ne pas suivre aveuglément la norme mais de l'adapter au contexte scolaire ciblé, et donc d'inclure le signe de multiplication dans la table des caractères de la machine. Choix éclairé dont tu bénéficies encore aujourd'hui sur ta
Graph 35+E
ou
Graph 90+E
. :bj:
C'est également le cas pour la saisie sur le haut de gamme
Classpad/fx-CP400
, à la seule différence près que dans l'affichage des résultats c'est le point médian qui est utilisé pour représenter un produit. En effet comme l'utilisation de multiplications dans un résultat relève du calcul symbolique, un mélange de signes de multiplication et de lettres x serait visuellement très gênant.


Qu'en est-il du français
NumWorks
? Jusqu'à présent c'était le point médian qui était utilisé, aussi bien pour la saisie que pour les résultats.
Mais
NumWorks
se propose pour une prochaine version revoir l'affichage des résultats.
Déjà, la valeur inutile
undef
lorsque l'on utilise des variables non affectées sera omise. :)
Mais le constructeur va plus loin en souhaitant lui aussi traiter différemment les affichages de la saisie en cours et des résultats.
Pour les résultats symboliques utilisant une multiplication, le signe sera tout simplement omis.
Et pour la saisie, comme il l'avait déjà fait pour le nouveau clavier de rentrée 2018, le constructeur organise un vote pour te laisser une fois de plus le choix de ce qui sera affiché lorsque tu taperas
×
: :bj:
  • conserver le point médian (·) comme sur
    TI-Nspire
  • passer au signe de multiplication (×) comme sur
    Casio
  • passer au caractère étoile (*) comme sur
    TI-82/83/84



Tu peux dès maintenant voter et motiver ton choix après inscription/connexion sur le lien ci-dessous.
Penses-y bien, ce choix super important
aura des conséquences
... ;)



Lien
:
https://workshop.numworks.com/surveys/s ... iplication

Crédits images
:
Casio fx-7000G

Campagne de dons
Pour nous aider à financer nos déplacements sur les salons/congrès qui vous donnent du contenu exclusif

Vous aurez droit aux avantages VIP et des goodies !
30%
-
Search
-
Featured topics
Avantages VIP et goodies pour les donateurs !
Offre TI-Planet/Jarrety pour avoir la TI-83 Premium CE avec son chargeur pour 79,79€ port inclus !
Offre TI-Planet/Jarrety pour avoir la TI-Nspire CX CAS à seulement 130€ TTC port inclus!
Jailbreake ta TI-Nspire avec Ndless et profite des meilleurs jeux et applications !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

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 
-
Stats.
288 utilisateurs:
>276 invités
>6 membres
>6 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)