π
<-

News 2025
August (6)
July (3)
June (13)
May (26)
April (28)
March (11)
January (14)

News 2024
October (12)
August (9)
July (10)
June (20)
May (14)
April (16)
March (7)
January (20)

News 2023
October (19)
August (14)
July (13)
June (21)
May (29)
April (24)
March (24)
January (24)

News 2022
October (23)
August (14)
July (15)
June (17)
May (31)
April (27)
March (28)
January (34)

News 2021
October (24)
August (37)
July (50)
June (32)
May (48)
April (61)
March (35)
January (34)

News 2020
October (17)
August (43)
July (43)
June (45)
May (60)
April (78)
March (36)
January (39)

News 2019
October (13)
August (18)
July (23)
June (28)
May (31)
April (26)
March (38)
January (37)

News 2018
October (13)
August (32)
July (23)
June (64)
May (63)
April (45)
March (43)
January (45)

News 2017
October (26)
August (39)
July (52)
June (88)
May (51)
April (43)
March (37)
January (33)

News 2016
October (25)
August (42)
July (34)
June (109)
May (55)
April (34)
March (37)
January (24)

News 2015
October (22)
August (56)
July (22)
June (94)
May (56)
April (32)
March (40)
January (21)

News 2014
October (26)
August (18)
July (23)
June (101)
May (57)
April (59)
March (54)
January (31)

News 2013
October (67)
August (50)
July (43)
June (193)
May (93)
April (102)
March (45)
January (50)

News 2012
October (64)
August (63)
July (53)
June (132)
May (88)
April (73)
March (57)
January (58)

News 2011
October (56)
August (31)
July (27)
June (71)
May (61)
April (32)
March (36)
January (24)

News 2010
October (11)
August (8)
July (14)
June (10)
May (3)
April (3)
March (1)

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

Super Mario Bros, remake des 32 niveaux pour Oiram CE !

New postby critor » 03 May 2020, 22:37

12495Ta formidable TI-83 Premium CE dispose depuis janvier 2017 de Oiram CE, un superbe moteur de jeu Mario-like par MateoConLechuga.

Un moteur qui en plus de venir avec des niveaux par défaut a le gros avantage d'accepter les niveaux perso, et également celui de la disponibilité d'un éditeur de niveaux pour Windows / Mac.

Nous nous attardons aujourd'hui sur un pack de niveaux perso absolument remarquable par Dabmaster_Arush. Ce dernier s'est en effet lancé le défi de recréer les niveaux du Super Mario Bros, le jeu vidéo sorti en 1985 pour console de jeux Nintendo NES.

Bien des difficultés en perspective, puisque Oiram CE s'inspire non pas du gameplay de Super Mario Bros, mais de celui de Super Mario Bros 3. Or ces deux jeux ont beaucoup de différences, déjà sans rentrer dans les détails rien qu'au niveau des blocs et ennemis.

Pour résumer il s'agit donc de reproduire aussi fidèlement que possible Super Mario Bros avec les 241 sprites Super Mario Bros 3 illustrées ci-contre.

Ce n'était pas assez pour décourager Dabmaster_Arush qui nous signe ainsi Super Mario Bros Remake. Ce pack de 32 niveaux perso reproduit les 32 niveaux répartis entre les 8 mondes sur Super Mario Bros.

Nous allons te montrer de suite de quoi ça a l'air, et traiter des différences.

1er des 8 mondes du Royaume Champignon. Au menu :
  • 1er niveau sur la terre ferme
  • 2ème niveau sous-terrain
  • 3ème niveau de plateformes dans une forêt de champignons géants
  • 4ème niveau avec le château

Ici nous renonçons aux éléments de fond d'écran, arbres, collines et nuages, bien que Oiram CE dispose pourtant de sprites qui auraient permis de les imiter. Pas de variation de couleur pour les briques sous-terraines, le sprite de brique sombre n'existant pas dans Oiram CE. Le mât de fin de niveau n'ayant lui non plus aucune existence dans Oiram CE est ici remplacé par un empilement de pièces. Le mini-donjon décoratif qui lui fait suite en fin de niveau est par contre absent et ce sera toujours le cas.

On remarque ici un manque bien embêtant de Oiram CE dans le sens où c'est visuellement très gênant; il n'y a pas de sprite pour les pièces utilisant le fond noir, et elles sont donc affichées comme si elles étaient en plein jour à l'air libre. Là encore quelque chose qui n'existe pas dans Oiram CE, les ascenseurs continus à la pater noster d'Europe centrale, sont remplacés par des paires verticales de deux plateformes constituées de blocs qui tombent. La salle secrète de warp zone est bien présente mais non fonctionnelle puisque les warp zones ne sont hélas pas gérées par Oiram CE. Au lieu de te permettre de passer au choix aux mondes 2, 3 ou 4, elle te permettra juste de passer au niveau suivant exactement comme la fin normale du niveau. C'est quand même un beau clien d'oeil de l'avoir incluse, même non inopérante. ;)

On apprécie la belle reproduction extérieure du mini-donjon en début de niveau. Pas vraiment de sprites équivalents pour les champignons géants, Dabmaster_Arush fait comme il peut et c'est assez réussi. Dans le même style, on renonce ici aux plateformes mobiles. Celles qui se déplacent verticalement sont là encore remplacées par des paires verticales de deux plateformes de blocs qui tombent. Celles qui se déplacent horirontalement sont directement remplacées par des blocs qui tombent. Le château décoratif n'est pas illustré à la fin du niveau, et ce sera toujours le cas.

Et enfin le château. Il nous faut ici renoncer aux barres de feu remplacées par des canons, ainsi qu'au pont escamotable sur lequel déambule Bowser. Pas d'écran de fin "but our princess is in another castle" non plus.

2ème monde ici aquatique :
  • 1er niveau sur la terre ferme
  • 2ème niveau sous-marin
  • 3ème niveau en bord de mer
  • 4ème niveau avec le château
Oiram CE ne gérant pas de découpage des packs en différents mondes, les niveaux y seront numérotés 5 à 8.

Belle reproduction extérieure du grand château cette fois-ci. Ici encore il a fallu renoncer aux éléments d'arrière plan comme les barrières.

Ici un manque de Oiram CE bien embêtant visuellement, les pièces placées sous l'eau n'utilisent pas le fond aquatique elles non plus. Outre les méduses, le niveau original présentait deux espèces de poissons : rouges et gris, ces derniers étant plus lents. Nous déplorons ici nos premiers ennemis manquants faute d'équivalent, tous les poissons étant donc rouges. Les algues rouges ici encore faute d'équivalent, sont remplacés par des éléments non fonctionnels de tuyaux rouges.


Pas d'équivalent non plus aux poissons sauteurs, ici remplacés par des fantômes.

3ème monde ici plongé dans la nuit et enneigé, avec :
  • 1er + 2ème niveaux sur la terre ferme
  • 3ème de plateformes en forêt de champignons géants
  • 4ème niveau avec le château
Les niveaux correspondants sont ici numérotés 9 à 12 dans Oiram CE.

Dans l'original, l'enneigement était suggéré par les éléments de fond d'écran, ne pouvant être reproduits ici puisque Oiram CE ne dispose pas de version enneignée des sprites d'arrière plan. Il existe bien par contre des blocs enneigés dans Oiram CE, mais ils ont le défaut d'être glissant ce qui n'aurait pas été conforme au gameplay original. Donc bref, pas de neige ici. Nous attendions également la première apparition des emblématiques tortues frères marteaux, mais hélas elles n'existent pas dans Oiram CE et se voient remplacées chacune par une tortue zombie accomagnée de deux tortues à épines.


Encore un élément mécanique difficile à remplacer ici, les espèces de monte-charge rudimentaires. On fait ce qu'on peut...

4ème monde où l'on retrouve l'organisation du 1er monde :
  • 1er niveau sur la terre ferme
  • 2ème niveau sous-terrain, pour la dernière fois
  • 3ème niveau de plateformes dans une forêt de champignons géants
  • 4ème niveau avec le château
Les niveaux équivalents seront ici numérotés 13 à 16 dans Oiram CE.

Autre défection parmi les ennemis, la tortue chevauchant son nuage pour lancer des oeufs de tortues à épines manque dans Oiram CE, tous comme les oeufs en question d'ailleurs. Ils se voient donc remplacés ici par une pluie directe de tortues à épines.

Ici encore un absent, les scarabés nous font défaut dans Oiram CE et sont remplacés par des tortues zombie. Les deux salles secrètres de warp zone sont là encore présentes mais non fonctionnelles, ne te permettant que de passer au niveau suivant au lieu de t'amener au choix aux mondes 5, 6, 7 ou 8.

Nouveau style de champignons géants sans sprites adaptées, Dabmaster_Arush fait avec ce qu'il peut et c'est assez réussi, l'effet est bien là. :)

Le château est ici difficile à reproduire car il est spécial. C'est un labyrinthe, dans le sens ou si l'on n'enchaîne pas les bonnes plateformes on est ramené en boucle au début du niveau, élément de gameplay non géré par Oiram CE. Tout juste Dabmaster_Arush t'a-t-il rajouté quelques blocs infranchissables pour te forcer à enchaîner les bonnes plateformes, là encore un clin d'oeil inutile et donc absolument indispensable. ;)

5ème monde qui reprend le découpage du 3ème monde mais cette fois-ci en plein jour :
  • 1er + 2ème niveaux sur la terre ferme
  • 3ème niveau de plateformes dans une forêt de champignons géants
  • 4ème niveau avec le château
Les niveaux correspondants sont ici numérotés 17 à 20 dans Oiram CE.




6ème monde qui reprend l'organisation des 3ème et 5ème mondes, plongé dans la nuit pour la dernière fois :
  • 1er + 2ème niveaux sur la terre ferme
  • 3ème niveau de plateformes dans une forêt de champignons géants, pour la dernière fois
  • 4ème niveau avec le château
Les niveaux correspondants seront numérotés 21 à 24 dans Oiram CE.



Franchement pas de sprite adaptée dans Oiram CE pour les couronnes de champignons blancs géants, on fait ce qu'on peut...

7ème monde qui reprend l'organisation du 2ème monde :
  • 1er niveau sur la terre ferme
  • 2ème niveau aquatique, pour la dernière fois
  • 3ème niveau en bord de mer, pour la dernière fois
  • 4ème niveau avec le château
Les niveaux correspondants sont numérotés 25 à 28 dans Oiram CE.




Ici encore il s'agit d'un château labyrinthe qui te ramène en boucle au début si tu n'enchaînes pas les bonnes plateformes, impossible à reproduire. Dabmaster_Arush y fait référence en te rajoutant des blocs infranchissables pour te forcer à enchaîner les bonnes plateformes comme dans l'original.

Et enfin 8ème monde avec une organisation inédite :
  • 1er + 2ème + 3ème niveaux sur la terre ferme
  • 4ème niveau avec le château
Les niveaux correspondants sont ici numérotés 29 à 32.



Dabmaster_Arush fait comme il peut pour reproduire les remparts en arrière plan.

Ici encore un château-labyrinthe mais d'une autre façon. Tu dois trouver cette fois-ci le bon enchaînement de tuyaux qui t'amènera à Bowser, tout mauvais tuyau te ramenant en début de niveau. Dans l'original si tu avançais sans rentrer dans aucun tuyau, le château bouclait et te ramenait également au début, élément de gameplay impossible à reproduire ici; tu devras choisir obligatoirement un tuyau avant le mur rajouté pour t'empêcher d'aller plus loin. Dommage que Peach ne t'attende pas à la fin. ;)


Bref un superbe pack de niveaux et avec 32 niveaux le plus grand jamais créé pour Oiram CE ! :)

Dans la limite des nombreuses contraintes imposées par Oiram CE Dabmaster_Arush te signe quand même une reproduction extrêmement fidèle de Super Mario Bros, une reproduction méticuleuse au bloc près, et tout élément ne pouvant être reproduit a été pensé et adapté avec talent toujours dans le respect du jeu original ! :D

Félicitations Dabmaster_Arush, nous n'osons pas imaginer combien de temps tu as pu passer là-dessus ! :bj:

Au nom de tous les confinés, merci en tous cas pour ce superbe cadeau qui nous va droit au cœur en ces temps si difficiles, de quoi bien nous occuper cette semaine ! :favorite:

Attention, pour fonctionner correctement, Oiram CE a besoin des bibliothèques C téléchargeables ci-dessous. Mais rien de bien compliqué, il suffit juste de récupérer et transférer leur fichier. :)


Téléchargements :
Crédits images : cartes Super Mario Bros

Mémoire tas/heap + tailles modules TI-83 Premium CE 5.5

New postby critor » 03 May 2020, 16:26

12382Dans sa prochaine mise à jour 5.5 gratuite prévue pour Mai 2020, Texas Instruments va rajouter de formidables possibilités à ta TI-83 Premium CE :
  • mise à jour en 5.5 de l'application SciTools
  • mise à jour en 5.5 de l'application Periodic
  • mise à jour en 5.5 de l'application Python (TI-83 Premium CE Édition Python uniquement)

Cette dernière application apporte de nouveaux modules importables pour tes scripts Python :
  • time, certes déjà présent mais maintenant listé au menu et donc officiel; il ne risque plus de disparaitre :)
  • ti_system, avec diverses possibilités :
    • détection des simples pressions de touches clavier (sans validation donc) par l'utilisateur, avec même l'éventuel modificateur actif (
      2nde
      ou
      alpha
      )
      , et ça marche aussi avec un clavier USB ! :bj:
    • affichage dans la console à la ligne que tu veux :bj:
    • exportation de listes de nombres (entiers, flottants ou complexes) existant dans le contexte Python vers l'environnement de la calculatrice, pour traitement à l'aide d'autres applications :bj:
    • importation depuis le contexte Python de listes ou équation de régression existant dans l'environnement de la calculatrice :bj:
    • et donc plus généralement un début d'intégration du Python à l'environnement mathématique de la calculatrice, enfin l'application Python va pouvoir servir non plus seulement à coder un truc déconnecté dans un coin, mais à traiter des problèmes et tâches complexes dans leur globalité ! :bj:
  • ti_plotlib, une bibliothèque graphique pour tracer dans un repère, conformément aux programmes de Physique-Chimie, SNT et NSI, tout en permettant également nombre d'applications en Mathématiques ! :bj:
  • ti_hub, pour les projets d'objects connectés à l'aide de l'interface TI-Innovator Hub :)
  • ti_rover, pour les projets de robotique à l'aide du TI-Innovator Rover :)
  • ainsi qu'un mystérieux ti_graphics pour sa part non listé au menu, mais justement utilisé par ti_plotlib

Avant de poursuivre notre exploration des modules, voyons un petit peu où nous en sommes aujourd'hui niveau mémoire.
Attention, nous ne disposons que d'une préversion. Il est donc parfaitement possible que plusieurs points abordés dans notre critique soient améliorés d'ici la sortie.

Les interpréteurs MicroPython ou similaires qui tournent sur ta calculatrice font appel à 3 types de mémoires avec les rôles suivants :
  • la mémoire de stockage qui accueille et conserve tes scripts Python
  • le stack (pile) qui, à l'exécution, accueille les références vers les objets Python créés
  • le heap (tas) qui, à l'exécution, accueille les valeurs de ces objets Python
En gros le stack / pile limite donc le nombre d'objets différents pouvant exister simultanément en mémoire, alors que le heap / tas limite la taille globale occupée par ces objets.
A moins d'avoir de gros besoins en terme de récursivité, le facteur limitant pour tes projets Python sur calculatrice est habituellement le heap / tas.




Sommaire :



1) mémoire de tas / heap et module gc

Go to top

L'appel mem() avec le script mem.py suivant permet d'estimer la capacité du tas (heap) Python, et retournait jusqu'à présent près de 20K sur TI-83 Premium CE Édition Python :
Code: Select all
def sizeenv():
  s=0
  import __main__
  for o in dir(__main__):
    try:s+=size(eval(o))
    except:pass
  return s
def size(o):
  s,t=0,type(o)
  if t==str:s=49+len(o)
  if str(t)=="<class 'function'>":s=136
  if t==int:
    s=24
    while o:
      s+=4
      o>>=30
  if t==list:
    s+=64
    for so in o:s+=8+size(so)
  return s
def mem(v=1,r=1):
  try:
    l=[]
    try:
      l+=[r and 793+sizeenv()]
      if v*r:print(" ",l[0])
      l+=[0]
      l+=[""]
      l[2]+="x"
      while 1:
        try:l[2]+=l[2][l[1]:]
        except:
          if l[1]<len(l[2])-1:l[1]=len(l[2])-1
          else:raise(Exception)
    except:
      if v:print("+",size(l))
      try:l[0]+=size(l)
      except:pass
      try:l[0]+=mem(v,0)
      except:pass
      return l[0]
  except:return 0

Les formidables nouveautés de la version 5.5 semblent hélas avoir un coût important, à vide nous trouvons désormais à peine 17,5K de libres avec la version 5.5, un effondrement non négligeable de plus de 2,5K. :'(

La TI-83 Premium CE Édition Python fait partie des très rares calculatrices disposant du module gc, module qui va nous être bien pratique pour comprendre ce qui se passe. Retenons les appels suivants :
  • gc.mem_alloc() retourne l'espace occupé sur le tas (heap)
  • gc.mem_free() retourne l'espace libre sur le tas (heap)

Testons à vide à l'aide du petit script suivant :
Code: Select all
from gc import *
a, f = mem_alloc(), mem_free()
(a, f, a+f)

Nous découvrons donc que le tas Python de la TI-83 Premium CE Édition Python fait exactement 19,968K; sa capacité totale n'a donc pas été réduite.

Mais, lorsque tu lances tes scripts Python plusieurs choses sont initialisées et consomment du tas avant même l'exécution de ta première ligne de code. Et c'est là qu'il y a une lourde différence :
  • avec la dernière version 5.4 : juste 608o consommés pour pas moins de 19,36Ko de libres
  • avec la prochaine version 5.5 : pas moins de 2912o consommés pour juste 17,056Ko de libres
Effectivement, on retrouve bien cette consommation supplémentaire de 2,5K sur le tas avant même que tu aies tapé la moindre ligne de Python.

En passant il est normal que l'on trouve ici à chaque fois un petit peu moins que l'espace libre trouvé avec mem(), puisqu'il y a ici l'importation obligatoire du module gc qui consomme également du tas.

D'où le classement en terme de capacité tas (heap) disponible pour tes scripts, avec la capacité totale précisée lorsque le module gc est disponible :
  1. 1,032942 Mo : Casio Graph 90+E
  2. 1,022145 / 1,024512 Mo : HP Prime G1 (version alpha)
  3. 100,560 Ko : Casio Graph 35+E II
  4. 32,339 Ko : NumWorks (firmware Omega)
  5. 31,624 Ko : NumWorks
  6. 19,500 / 19,968 Ko : TI-83 Premium CE Édition Python (ancienne version)
  7. 17,359 / 19,968 Ko : TI-83 Premium CE Édition Python (nouvelle version)
  1. 2,049276 Mo : TI-Nspire (application MicroPython)
  2. 1,032942 Mo : Casio Graph 90+E / fx-CG50
  3. 1,022145 Mo : HP Prime G1 (version alpha)
  4. 257,636 / 258,048 Ko : Casio Graph 35+E / 75+ / 35+ USB Power Graphic 2 / 75/95 USB Power Graphic 2 / fx-9750/9860GII USB Power Graphic 2
  5. 100,560 Ko : Casio Graph 35+E II / fx-9750/9860GIII
  6. 32,339 Ko : NumWorks (firmware Omega)
  7. 31,624 Ko : NumWorks
  8. 31,520 / 32,256 Ko : Casio Graph 35+E II / 85 / 35+ USB Power Graphic 1 / 75/95 USB Power Graphic 1 / fx-9750/9860GIII / fx-9750/9860GII USB Power Graphic 1 / fx-9860G
  9. 22,605 / 22,912 Ko : TI-83 Premium CE + TI-Python (firmware tiers)
  10. 19,500 / 19,968 Ko : TI-83 Premium CE + TI-Python + TI-83 Premium CE Édition Python (ancienne version)
  11. 17,359 / 19,968 Ko : TI-83 Premium CE Édition Python (nouvelle version)

La TI-83 Premium CE Édition Python était déjà la pire solution Python pour la capacité tas, et cela ne fait donc qu'empirer.

C'est probablement largement suffisant pour les petits algo-musements de quelques lignes qui seront traités en Mathématiques ou Physique-Chimie.

Le problème est ailleurs, ceux qui auront suffisamment accroché pour avoir envie d'aller plus loin risquent d'être rapidement déçus par leur calculatrice...
Ceux qui aborderont des projets (SNT, NSI, ... ou même non scolaires) risquent d'obtenir des erreurs de mémoire assez rapidement après le début du projet...

Car le Python ce n'est pas du C, les objets Python les plus élémentaires sont extrêmement gourmands en mémoire :
  • 64 octets rien que pour une liste vide
  • plus 8 octets pour chaque élément de liste supplémentaire, sans compter la taille de l'élément en question
  • 24 octets pour un entier nul
  • 28 octets pour un entier court non nul
  • 49 octets rien que pour une chaîne vide
  • plus 1 octet par caractère de chaîne supplémentaire
  • ...
Alors imagine la catastrophe quand pour des projets tu multiplies le nombre de ces objets au sein de listes... :#roll#:

Quand on pense à tout ce que nous avons pu souffrir sur NumWorks depuis la rentrée 2017 avec seulement 16K de tas disponible avant la mise à jour 13.2 faisant passer cela à 32K, nous sommes en effet assez pessimistes ici devant nos même pas 17.5K de tas.

Il est possible que l'on ne puisse pas importer simultanément l'ensemble des modules.
Il risque de ne pas rester beaucoup de tas disponible pour coder une fois certains gros modules importés, et nous allons revenir là-dessus.
Cela remet au passage en question notre projet déjà évoqué de développer certains scripts de compatibilité, scripts qui ne feraient alors que réduire encore davantage le peu de mémoire tas utilisable pour tes scripts si tu dois les importer en plus des modules en question. :'(

Les erreurs de mémoire risquent donc d'arriver très rapidement. A cause de ce gros défaut, les scripts Python offerts en ligne risquent à notre avis d'être à terme plus nombreux et surtout beaucoup plus conséquents pour les solutions concurrentes que pour la TI-83 Premium CE Édition Python, et ce malgré toutes ses formidables possibilités. :'(

Le pire était que cela fait plus de 2 ans que nous communiquons régulièrement (sans aucune malveillance) sur ce grave défaut aujourd'hui corrigé de la NumWorks, et comprenons donc assez mal que la même erreur ait pu être reproduite ici.
A moins que ce ne soit en fait exprès pour pousser ceux qui veulent aller plus loin à un investissement dans les modèles haut de gamme TI-Nspire CX II ?...




2) types de scripts et scripts préremplis

Go to top

Grande nouveauté de l'application Python 5.5, le menu de création de scripts te permet d'en choisir un type avec la touche
F3
.

Outre le type Script vierge par défaut, tu obtiens alors un script prérempli à compléter :
  • Calculs Mathématiques : importe math
  • Simulation Aléatoire : importe random
  • Tracer (x,y) et Texte : importe ti_plotlib + script de tracé de nuage de points avec les listes x et y à remplir
  • Partage de Données : importe ti_system
  • Projets STEM Hub : importe ti_system et time
  • Rover : importe time, ti_system et ti_rover


Une belle initiative, voilà de quoi bien alléger tes saisies clavier lorsque tu commences un nouveau script ! :bj:




3) importations modules et consommation tas / heap

Go to top

Voyons enfin un petit peu ce que consomme l'importation de chaque module disponible sur le tas (heap).

Il suffit d'appeler les fonctions du module gc vues plus haut, juste avant et après l'importation d'un module.

Voici un script en ce sens, volontairement minimaliste sans définition de fonction afin de minimiser les chances de déclencher en cours d'exécution un nettoyage mémoire qui fausserait les résultats :
Code: Select all
from gc import mem_free as mf

smod = input('Module : ')
mf1, mf2 = 0, 0
scmd = 'from ' + s + ' import *'
mf1 = mf()
exec(scmd)
mf2 = mf()
print(mf1 - mf2)

Voici donc les consommations de tas à l'importation des différents modules intégrés :
  • array : 96 o
  • builtins : 816 o
  • collections : 96 o
  • gc : 128 o
  • math : 336 o
  • random : 176 o
  • sys : 224 o
  • ti_graphics : 2,896 Ko
  • ti_hub : 224 o
  • ti_plotlib : 7,232 Ko
  • ti_rover : 4,848 Ko
  • ti_system : 176 o
  • time : 112 o

Nos craintes évoquées plus haut étaient donc apparemment bien fondées; plusieurs modules sont très gros avec plusieurs kilooctets consommés sur le tas: ti_graphics, ti_rover et ti_plotlib notamment, avec quasiment la moitié du tas initialement disponible pour ce dernier.

Quand tu vas donc coder tes scripts et surtout projets Python sur TI-83 Premium CE Édition Python, contrairement à ce que tu fais peut-être sur d'autres plateformes n'importe que le strict nécessaire.

Aussi si ton projet nécessite des affichages graphiques (interfaces de menus, jeux, ...), évite à tous prix le module ti_plotlib sauf si tu as vraiment besoin de tracer des diagrammes (nuages de points, histogrammes...). Préfère-lui plutôt le module ti_graphics beaucoup plus économe.
Plutôt que d'utiliser les coordonnées dans un repère orthogonal, ti_graphics te fera travailler en terme de pixels ce qui sera beaucoup plus précis; et nous allons t'en présenter les formidables possibilités très prochainement.
Alors justement, à très bientôt ;)




Conclusion

Go to top

Nous t'avions dit en introduction que les éventuels points négatifs pourraient très bien être améliorés d'ici la sortie, vu que nous ne disposons que d'une préversion.

Toutefois, dans le cas particulier du tas (heap) Python traité aujourd'hui nous sommes assez pessimistes.

Rappelons en effet un petit peu l'architecture matérielle assez particulière de la TI-83 Premium CE Édition Python :
  • un cœur secondaire 32 bits Atmel SAMD21E18A-U dédié à l'exécution des scripts Python
  • un cœur principal eZ80 qui est le seul à avoir accès à l'ensemble des autres composantes (Flash, contrôleur écran, cœur secondaire...)
Le cœur secondaire contient notamment :
  • un processeur 32 bits ARM Cortex-M0+ cadencé à 48 MHz et agissant donc ici en tant que coprocesseur pour l'exécution de tes scripts Python
  • une mémoire Flash de 256 Kio
  • une mémoire SRAM de 32 Kio
Commences-tu à comprendre le problème ? Le coprocesseur Python n'a accès qu'à 32Kio de RAM, RAM qui sert pour différentes choses :
  • certes le tas (heap) Python de près de 20K mais pas que
  • également la pile (stack) Python
  • et aussi il ne faut pas l'oublier l'exécution du firmware CircuitPython modifié inclus dans la mémoire Flash et qui fournit l'interpréteur Python
Près de 17.5K d'espace disponible sur un tas de près de 20K lui-même pris sur une RAM de 32Kio qui sert à bien d'autres choses; la marge d'amélioration nous semble a priori extrêmement limitée.

NumWorks a mis deux ans et demi à le comprendre; si tant est que Texas Instruments comprenne également en quoi 17.5K de tas sont un inconvénient majeur même dans un contexte scolaire, nous craignons que les améliorations ne puissent concerner qu'une future révision matérielle ou même un futur modèle, sans doute encore lointain pour le milieu de gamme vu que la TI-83 Premium CE Édition Python a tout juste 1 an. :'(

Podcast "TI-Planet FM" 01/05 : Merlin Carré magique + Python

New postby critor » 03 May 2020, 09:55

12490Nouveau "TI-Planet FM" par CaptainLuigi, le magazine audio pour s'occuper en confinement autour des calculatrices.

Au programme de ce 1er mai 2020 :
  • Carré Magique, un des 6 jeux intégrés à la Merlin, console portable tactile de 1978, adapté pour ta NumWorks
  • projet Pycalc, pack rajoutant des modules standard manquants pour toutes calculatrices Python :
    • itertools , secretset statistics avec à ce jour 22 fonctions
    • 3 nouvelles fonctions pour math (factorial, ...)
    • 3 nouvelles fonctions pour random (sample, ...)
  • l'astuce Python
  • le point histoire : le langage C

Puzzle Bobble / Bust-a-Move 1.02, mise à jour plein écran !

New postby critor » 02 May 2020, 15:32

Puzzle Bobble également connu sous le nom de Bust-a-Move en Amérique du Nord, est un jeu de Taito sorti en 1994 initialement sur borne d'arcade, puis adapté pour consoles de jeux et Windows en 1995.
Taito nous ressortait donc ses charmants dinosaures Bub et Bob introduits dans son jeu d'arcade mythique de 1983, Bubble Bobble. Ces derniers manœuvrent ici un canon qui lance des bulles colorées. Le but est de nettoyer intégralement chaque tableau, sachant que juxtaposer 3 bulles de la même couleur les fait éclater.

En 2012, Eiyeron t'en avait sorti un portage sous la forme d'une application pour les calculatrices Casio couleur de l'époque, les fx-CG10/20. :)

12486Dans un article précédent Eiyeron te finalisait une version 1.00 également compatible Graph 90+E et fx-CG50, un portage de haute facture rien qu'à regarder les graphismes. :bj:

12493Mais voilà, la technologie B-System utilisée pour les bornes d'arcade Taito de l'époque offrait une résolution de 320×224 pixels dont tu ne profitais pas ici sur ta calculatrice.

L'écran de ta calculatrice dispose certes d'une définition de 396×224 pixels matériellement plus que suffisante.

Mais logiciellement, le système d'exploitation ne t'offre pas d'accès à une bordure qu'il se réserve pour indiquer le bon fonctionnement du mode examen :
  • marge de 6 pixels à gauche
  • marge de 6 pixels à droite
  • marge de 8 pixels en bas
Par défaut les applications ne peuvent donc afficher qu'en 384×216 pixels.

Pas de redimensionnement réduisant la qualité du rendu ici, le rendu était tout simplement tronqué. Il te manquait 8 lignes de pixels en haut d'écran, ce qui pouvait notamment se remarquer sur les fonds d'écran.

12494Mais Eiyeron est de retour aujourd'hui avec une nouvelle version 1.02. Lorsque son application prend la main sur le système, il se donne ici la peine de reconfigurer le contrôleur écran pour autoriser l'affichage plein écran 396×224 pixels, et donc te faire profiter cette fois-ci du jeu dans sa définition originale de 320×224 pixels au complet ! :bj:

Une mise à jour majeure pour continuer à bien prendre soin de toi; merci Eiyeron pour ce formidable travail bénévole dans l'intérêt de tous les confinés ! :D

Téléchargement : archives_voir.php?id=2619736

Source : https://www.planet-casio.com/Fr/forums/ ... tml#175707

Helmet CN-07, jeu Nintendo Game & Watch sur NumWorks

New postby Admin » 01 May 2020, 13:50

6594Avant l'avènement des calculatrices graphiques, c'est Nintendo qui lança le tout premier jeu électronique de poche muni d'un écran LCD (cristaux liquides) exploitant les deux dimensions, Ball en avril 1980. Comme indiqué par sa référence AC-01, c'était le premier né de la gamme Game & Watch, largement imitée au siècle dernier par d'autres constructeurs asiatiques pour le meilleur et pour le pire. Au lieu de simples points, les pixels ici allumés à l'écran ont des formes représentant des éléments du jeu.

En 2016, Fenysk avait déjà rendu un bel hommage à ces produits avec une adaptation pour ta Graph 35/75+E de Helmet, sorti en février 1981 sous la référence CN-07, soit le 7ème jeu de la gamme. Il est à noter que le jeu fut renommé Headache pour sa commercialisation dans plusieurs zones d'Europe, le mot anglais Helmet (casque) se retrouvant sous à l'identique en allemand et renvoyant donc aux heures sombres de l'Europe.

Dans ce jeu te voici ouvrier sur un chantier de construction, et tu te dois de traverser la cour pour atteindre la cabane à outils pendant que l'on t'en maintient la porte ouverte. Et cela bien sûr en évitant les divers outils qui tombent du ciel sur ce genre de chantier. :p

12492Comme il l'avait déjà fait avec le jeu Fire FR-27 sorti dans la même gamme en décembre 1981, Schraf te propose aujourd'hui une adaptation sous le nom de Météorites pour ta NumWorks, une adaptation de Helmet / Headache CN-07 exploitant à nouveau les formidables possibilités écran et clavier maintenant offertes en Python par l'usage des modules kandinsky et ion combinés. :bj:

La NumWorks ne disposant contrairement à la concurrence pas encore de fonctions Python optimisées pour l'affichage de sprites, ces derniers seront tout sauf instantanés si effectués pixel par pixel, ce qui impactera négativement le gameplay.

C'est pour cela que Schraf te remplace les différents sprites par des caractères, la fonction draw_String() étant bien optimisée.

Schraf te met maintenant au défi de t'inspirer de son code pour adapter Parachute, jeu de référence PR-21 sorti dans la même gamme en juin 1981. ;)

Petit playthrough pour t'y aider, fais-nous du beau : ;)

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

Crédits images :

-
Search
-
Social TI-Planet
-
Featured topics
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 !
1234
-
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.
5547 utilisateurs:
>5529 invités
>11 membres
>7 robots
Record simultané (sur 6 mois):
29271 utilisateurs (le 11/07/2025)
-
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)