π
<-

The Map pour NumWorks + TI-Nspire, concours Python 2024-2025

The Map pour NumWorks + TI-Nspire, concours Python 2024-2025

Unread postby critor » Yesterday, 09:34

Voici la présentation de The Map, une participation en équipe à notre concours de programmation Python 2024-2025 :
  • le jeu a initialement été conçu pour NumWorks par Vivien G-R. alias Azre, élève de Vincent Robert alias cent20 au Lycée Louis Pasteur en Avignon, où il suit l'enseignement de spécialité NSI depuis la rentrée 2024
  • puis porté pour TI-Nspire CX II par Pierre B. alias Exyodeff, autre élève de Vincent

22027Le jeu original de Vivien exploite la bibliothèque graphique kandinsky. Il s'articule autour de la carte d'un donjon dans lequel tu contrôles une silhouette noire à l'aide des touches fléchées, initialement en haut à gauche.

Vivien nous a fourni 3 versions :
  • Dans une première version, il s'agissait d'un jeu où les donjons, générés aléatoirement, commençaient avec 3×3=9 cases pour s'étendre au fur et à mesure des passages des étages. Les choix d'itinéraires étaient donc initialement très limités et la carte générée se devait d'en garantir au moins un comme gagnant pour ne pas rendre le jeu impossible
  • Une deuxième version améliorait significativement l'interface en regroupant les informations à afficher sur une barre d'état sous la carte, et les rendant plus intuitives en accompagnant les points d'icônes de couleur.
  • Enfin la troisième version démarre directement avec 8×4=32 cases, offrant ainsi bien plus de possibilités d'itinéraires, le choix de ce dernier devenant un véritable enjeu. Beaucoup moins monotone au départ !
2204922050220242202522026


Tu disposes de points de vie, d'attaque et de défense, et ton objectif est de parvenir vivant à la case de sortie marquée d'une croix.

Les cases sont souvent associées à 1 événement se déclenchant lorsque tu la franchis pour la première fois. Ces événements peuvent être de différents types, clairement identifiables par une forme monochromatique :
  • bonus :
    • ajoute des points de vie (cœur rose)
    • ajoute des points d'attaque (épée verte)
    • ajoute des points de défense (bouclier vert)
  • dangers :
    • retire des points de vie (pic rouge)
    • monstre à occire pour passer (épée rouge)
    • autres :
      • la sortie déjà évoquée (croix jaune)
      • gemme pouvant être ramassée (losange bleu sur fond jaune)
    22028Les monstres de différentes espèces ont chacun leurs points forts et points faibles, disposant eux aussi de différents niveaux de points de vie, attaque et défense. Au bestiaire nous avons droit aux araignées, blobs, gobelins, hydres, ombres, squelettes et zombies.

    Pour pimenter la chose, les événements de certaines cases peuvent nous être cachés, étant alors marqués de points d'interrogation qui peuvent eux aussi nous soumettre à différents niveaux d'incertitude :
    • le point d'interrogation vert indique un des types de bonus précédents mais on ignore lequel
    • le point d'interrogation rouge indique un des dangers précédentes
    • et enfin le point d'interrogation noir ne donne aucune indication, pouvant cacher aussi bien un bonus qu'un danger, une gemme ou même la sortie
    Dans la version initiale du jeu les événements de ces cases inconnues se révélaient lorsque l'on visitait une case voisine, mais ce n'est plus le cas désormais.

    L'interface visuelle du jeu se compose donc :
    • de la carte[/i]
    • d'une barre d'état inférieure t'indiquant sur 2 lignes tes points de vie, attaque et défense, ainsi que les informations dans le cas où ton arrivée sur une case vient de déclencher un événement (type et nombre de points gagnés ou perdus, points du monstre, etc)
    • enfin, d'une barre de titre inférieure
Le jeu a été testé sur NumWorks N0120.

Le jeu est réactif. Petit détail, on peut juste regretter l'absence d'élément visuel faisant clairement comprendre qu'un combat est en cours et que le joueur ne peut donc plus être déplacé jusqu'à son résultat, contrairement à tous les autres événements qui permettent immédiatement un nouveau déplacement.

Les graphismes sont soignés mais l'affichage n'est pas toujours optimisé, certaines zones étant inutilement effacées pour être redessinées au complet, notamment les icônes des points pendant le déroulement des combats, générant des clignotements peu esthétiques.

Le caractère aléatoire par contre donne une rejouabilité excellente !

22029Pierre nous signe donc une version de The Map pour calculatrices Texas Instruments. Il utilise pour cela la bibliothèque graphique ti_draw, commune aux modèles TI-Nspire CX II, TI-83 Premium CE et TI-84 Plus CE.

Toutefois, les besoins en mémoire de tas (heap) font que le code ne fonctionne que sur TI-Nspire CX II.
Ce ne sera absolument pas pénalisant mais c'est dommage de ne pas avoir optimisé pour les autres modèles. En effet, à survoler le code relativement modeste sans définition d'énormes variables, nous pensons que ce jeu aurait dû pouvoir y tourner sans exploser la mémoire.

Attention, le code n'est hélas pas basé sur la dernière version du jeu NumWorks. Le donjon démarre donc en 3×3=9. C'est même basé sur la toute première version du jeu reçue, la barre d'état en bas d'écran n'y étant pas encore présente. Le code n'a malheureusement pas fait l'objet de mises à jour par la suite.

Il semble s'agir ici d'un portage peut-être un peu trop rapide. Nous pouvons lui reprocher diverses choses, de l'anecdotique au plus problématique :
  • Pour les détails, non adaptation du texte d'introduction disant de taper
    OK
    , cette inscription de touche n'existant pas sur TI-Nspire CX II
  • Des affichages beaucoup moins optimisés que dans les versions plus récentes, davantage de zones de l'écran non affectées par divers événements étant systématiquement effacées pour être redessinées, et ce de façon totalement inutile, générant autant de clignotements peu esthétiques. Il est certes vrai que la TI-Nspire CX II n'est pas particulièrement rapide pour les graphismes Python, mais il y avait un moyen très simple de masquer ce problème en faisant appel au double buffering offert par la bibliothèque ti_draw. Il suffisait pour cela d'appeler une fois ti_draw.use_buffer() au lancement du script, puis ti_draw.draw_buffer() après chaque série de modifications de l'affichage suivant chaque déplacement et/ou événement, pour afficher d'un seul coup tous les derniers changements effectués. Simplissime et enfantin, avec cela même du code graphique mal écrit et optimisé se serait affiché comme celui d'un pro, c'est bien dommage d'avoir raté cette remarquable possibilité, surtout lorsqu'elle n'aurait nécessité que l'ajout de 2 lignes.
  • Et malheureusement il y a quelque chose qui ne va pas du tout dans le code, les touches fléchées devant souvent être laissées enfoncées pendant plus d'une demi-seconde pour être prises en compte, une latence qui pour ne rien arranger semble variable, rendant hélas l'expérience de jeu assez désagréable, un problème qui se produit aussi bien sur calculatrice que sur logiciel et qui n'aurait donc normalement pas pu être raté. Cela ressemble au blocage des déplacements déjà évoqué pendant le déroulement d'un combat, sauf que l'on parle bien ici de cases ne comportant pas de monstres, et dont la visite n'affiche pas d'état de combat. Ce problème ne semblait pas présent dans la version NumWorks équivalente.
En plus de ne pas avoir la même qualité que l'original, en l'état The Map sur TI-Nspire CX II nous semble défectueux, au point de risquer de décourager la plupart des joueurs tombant dessus.

Toutefois, ceci constituant la première participation en équipe avec portage pour calculatrice Texas Instruments, nous réservons pour le moment notre jugement sur le caractère réussi ou pas du défi de porter son jeu pour différentes calculatrices, et donnant droit par ordre de classement au choix d'un lot correspondant à la catégorie du portage, en plus de l'éventuel lot correspondant au jeu initial (si suffisamment bien classé).

Liens projet :
Référence : https://nsi.xyz/numapps/the-map-un-jeu- ... -numworks/
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 51.1%
 
Posts: 42202
Images: 16673
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: The Map pour NumWorks + TI-Nspire, concours Python 2024-

Unread postby cent20 » Yesterday, 16:45

Quelques précisions :

[*] Je ne suis pas intervenu sur le code, mais au niveau de l'UI / UX entre la version 1 à 3.
[*] Le portage sur TI a été compliqué car nous n'avions pas d'appareil physique pour tester, et nos tests en tentatives sur ma CX CAS n'ont pas été concluant, donc tout n'a été testé que sur émulateur. Effectivement ils n'ont pas creusé ni le problème du getkey, ni le double buffer. :|
[*] Je ne comprends pas trop ce problème de tas python, il m'avait semblé qu'il était généreux sur les TI Nspire, et donc je ne l'ai pas mis en garde, sauf qu'en la version 1 et 3 j'ai demandé à ce que tout soit micro découpé, et comme seul la version 1 a été porté sur TI, ceci explique peut-être cela (...)

J'ai mis à jour la copie du script que j’héberge en v3, le lien vers https://my.numworks.com/python/cent20/themap pointe donc vers la vraie version 3.0
Image
Enseignant de mathématiques et d'informatique. Spécialité NSI : Des projets, des tutos, mais aussi de l'art
Calculatrice NumWorks : Des applications et des jeux, scripts, 📙 Découvrir la NumWorks
Amélioration NumWorks à pousser (un commentaire, un pouce, je compte sur vous) : #2292, #1680
User avatar
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 50.1%
 
Posts: 1103
Images: 67
Joined: 17 May 2012, 09:49
Location: Avignon
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: nsi_xyz

Re: The Map pour NumWorks + TI-Nspire, concours Python 2024-

Unread postby critor » Today, 07:27

cent20 wrote:[*] Je ne comprends pas trop ce problème de tas python, il m'avait semblé qu'il était généreux sur les TI Nspire, et donc je ne l'ai pas mis en garde, sauf qu'en la version 1 et 3 j'ai demandé à ce que tout soit micro découpé, et comme seul la version 1 a été porté sur TI, ceci explique peut-être cela (...)

Non pardon, il n'y a pas de problème sur TI-Nspire CX II, ça marche (mis à part pour le bug clavier).

C'est juste que le jeu ne me semble pas gourmand en terme de ressources, et je pense qu'il aurait dû pouvoir tourner aussi sur TI-83 Premium CE.

Mais ce n'était qu'une simple remarque, ce n'est pas pénalisant pour l'évaluation.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 51.1%
 
Posts: 42202
Images: 16673
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor


Return to News NumWorks

Who is online

Users browsing this forum: No registered users and 7 guests

-
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.
1066 utilisateurs:
>1045 invités
>15 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)