Page 1 of 2

Tetris en Python pour NumWorks 13.2.0+

Unread postPosted: 30 May 2020, 11:30
by Admin
Les capacités Python de ta calculatrice NumWorks ont été fortement étendues par les versions 13. :D

D'une part, la version 13.1.0 a introduit en Python un nouveau module ion permettant de tester les appuis de touches.
Très utile pour coder tes jeux et interfaces de menus ! :bj:

12385D'autre part, le MicroPython de ta calculatrice utilise 3 types de mémoire 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.

Et cela tombe bien, avec :

12505cent20 et son disciple Golden Man se sont dépêchés de t'illustrer ces formidables nouvelles libertés de développement avec un jeu de Tetris, dont la fluidité graphique remarquable (pour du Python) te donnera du fil à retordre ! :bat:

Les hautes possibilités de gestion clavier offertes par ion sont également exploitées pour t'offrir un menu de lancement intuitif et très riche :
  • choix du niveau de de départ
  • prédiction des 1 à 3 prochains tetriminos
  • affichage d'une grille
Le code source est bien évidemment à ta disposition pour apprendre ou créer autre chose ! :D

Téléchargement : https://workshop.numworks.com/python/fe ... vin/tetris
Lien : https://nsi.xyz/tetris

Re: Tetris en Python pour NumWorks 13.2.0+

Unread postPosted: 30 May 2020, 11:30
by critor
Et toc : :p
12526

Re: Tetris en Python pour NumWorks 13.2.0+

Unread postPosted: 30 May 2020, 11:36
by Hamza.S
Ce n'est pas la TI 83 Premium CE avec son python qui permettra quelque chose de ce genre.

Super illustration cent20

Re: Tetris en Python pour NumWorks 13.2.0+

Unread postPosted: 30 May 2020, 11:55
by critor
Si si, en codant une version spécifique utilisant les fonctions fillRect() et drawLine() du module ti_graphics de la TI-83 Premium CE Edition Python je pense que ce devrait être jouable. :)

C'est pour les jeux du type side scroller avec sprites que je vois mal comment optimiser les boucles d'appels de setPixel().
Oiram CE Python Edition, ce n'est pas pour demain.

Re: Tetris en Python pour NumWorks 13.2.0+

Unread postPosted: 30 May 2020, 12:20
by Lionel Debroux
C'est très bien d'avoir fait ça :)

Quelles sont la taille du script et sa consommation de tas ? En fait, je cherche à savoir d'une part s'il reste de la place pour ajouter des fonctionnalités, et d'autre part, à quel point la 83PCE EP est à la ramasse ^^
Sur TI-68k, le meilleur Tetris que je connaisse est le Queue de Kurt Hoffmann, avec son mode "Quadra" probablement plus facile, qui renouvelle un peu le jeu: https://www.ticalc.org/archives/files/f ... 14220.html .

Re: Tetris en Python pour NumWorks 13.2.0+

Unread postPosted: 30 May 2020, 15:19
by redgl0w
Lionel Debroux wrote:C'est très bien d'avoir fait ça :)

Quelles sont la taille du script et sa consommation de tas ? En fait, je cherche à savoir d'une part s'il reste de la place pour ajouter des fonctionnalités, et d'autre part, à quel point la 83PCE EP est à la ramasse ^^
Sur TI-68k, le meilleur Tetris que je connaisse est le Queue de Kurt Hoffmann, avec son mode "Quadra" probablement plus facile, qui renouvelle un peu le jeu: https://www.ticalc.org/archives/files/f ... 14220.html .


Il fait 7894 octets, et pour l'utilisation, je sais qu'il y a un module dans microython pour connaitre l'espace encore libre, mais je n'ai pas encore réussi à le faire fonctionner.

Re: Tetris en Python pour NumWorks 13.2.0+

Unread postPosted: 30 May 2020, 15:29
by cent20
critor wrote:Et toc : :p
12526


Mais mais mais ... Golden Man m'a pourtant assuré que personne ne dépasserait le niveau 100 et le score à 6 chiffres ... On a tout optimisé graphiquement pour un niveau max à 2 chiffres et un score à 6 chiffres ... :D

Bravo à toi, beau score, je vais devoir mettre à jour l'article de présentation ;)

Re: Tetris en Python pour NumWorks 13.2.0+

Unread postPosted: 30 May 2020, 15:41
by cent20
Lionel Debroux wrote:C'est très bien d'avoir fait ça :)


On s'est bien amusé surtout !

Lionel Debroux wrote:Quelles sont la taille du script et sa consommation de tas ? En fait, je cherche à savoir d'une part s'il reste de la place pour ajouter des fonctionnalités


Alors clairement on est à saturation coté mémoire.

On commençait à avoir des erreurs mémoires, pour faire tourner le jeu il faut parfois supprimer les autres scripts de la calculatrice (je parle du stockage, il faut supprimer d'autres scripts du stockage, ne pas les importer ne suffit pas parfois)
Une des images de l'article montre la fonctionnalité "ombre" dans le menu qui était au programme, sauf que la mémoire nous a manqué avant. Après je n'arrive jamais vraiment à évaluer la quantité de mémoire utilisé, tout ceci me dépasse un peu.

Par contre, grâce au tas de 17 ko de la TI 83 PCE et aidé par son affichage à la vitesse subsonique des pixel, je suis sûr que ça peut tourner facilement sur la TI 83 ! :troll:

Re: Tetris en Python pour NumWorks 13.2.0+

Unread postPosted: 30 May 2020, 16:06
by redgl0w
cent20 wrote:l faut supprimer d'autres scripts du stockage, ne pas les importer ne suffit pas parfois

Pas que parfois, si tu parles du stockage. Changer l'importation revient juste à changer un octet en tête du fichier, mais pas de changement de taille.

Re: Tetris en Python pour NumWorks 13.2.0+

Unread postPosted: 30 May 2020, 18:17
by DoOmnimaga
Je suis content de voir des jeux sur Numworks, même si les possibilités semblent limités. La vitesse du python sur Numworks m'a semblé beaucoup mieux que sur de nombreux autres modèles. :)