

Le nouveau cahier d'activités
Projets Python pour l'enseignement SNT en 2
nde par
Jean-Baptiste Civet et
Boris Hanuš est désormais disponible. Nous ne manquerons pas de t'en reparler plus en détails, mais attardons-nous en attendant sur un point précis.
Dans les ressources numériques téléchargeables associées au livre, on trouve enfin une première image,
GIRL_150, au nouveau
format IM8C géré directement en
Python depuis la
mise à jour 5.5.1.
Découvrons donc sans plus attendre ce que cela ouvre comme possibilités pour la création de jeux en
Python.


Prenons le jeu
Saute Mouton sorti en
juillet 1983 par
J. Michels pour ordinateurs
Thomson MO5/TO7 en
320×200 pixels, en s'inspirant de la version sortie par
Jean-François Sehan dès
1982 pour ordinateur
Sinclair ZX81 dans son livre
Etudes pour ZX 81 (tome 1) aux éditions
PSI.
Plantons d'abord le décor !
A gauche 3 moutons maigres dans leur bergerie.
A droite 3 moutons gras dans le pâturage.
Il faut rentrer les moutons gras dans la bergerie et faire arriver les moutons maigres au pâturage.
Comment faire ?
Les moutons ne peuvent sauter qu'un seul mouton à la fois and ne peuvent reculer.
Amuse-toi bien !!!

Nous avons donc là de quoi bien optimiser la chose pour le module
ti_graphics de la
TI-83 Premium CE Edition Python, avec un espace similaire de
320×210 pixels.
Nombre de tracés correspondant en effet à des primitives pouvant être reproduites d'un seul appel :
- drawPolyLine() pour les lignes brisées
- fillRect() pour les rectangles pleins
- fillPolygon() pour les autres formes pleines
- ...
Et justement, maintenant que nous avons donc un exemple d'image
IM8C et pensons en avoir compris le format, nous allons utiliser des images
IM8C pour les moutons, avec une couleur transparente à la différence.


Et bingo, ça marche, visiblement nous maîtrisons bien le format
IM8C, voici ci-contre notre version avec des graphismes en passant nettement améliorés qui transcendent les années 1980.

1
er jeu
Python graphique pour la
TI-83 Premium CE Edition Python, si ce n'est à ce jour le jeu
Python aux graphismes les plus travaillés sur calculatrice !

Comme quoi, avec la richesse de son module
Python ti_graphics, la
mise à jour 5.5.1 permet de réaliser facilement des choses bien plus belles que sur la concurrence à ce jour.


Que dire des performances ? Elles sont tout bonnement extraordinaires :

- moins de 9 secondes pour planter le décor initial
- puis une simple fraction de seconde pour rafraîchir l'affichage à chaque action
Sur la concurrence à ce jour de milieu de gamme où tu serais contraint de faire des boucles de
setPixel() faute de mieux, nous te mettons au défi d'obtenir de telles performances. N'est-ce pas,
cent20 ?

Par contre, petit bémol, ce mini-jeu avec son script de
5,77K en mémoire de stockage suffit à quasiment remplir le
tas / heap Python de
17K de la
TI-83 Premium CE Edition Python 5.5.1. Ajoute quelques
print() à notre script et c'est foutu, erreur de mémoire à l'importation.
En complexité,
Saute Mouton est donc hélas représentatif des jeux les plus aboutis réalisables à ce jour sur
TI-83 Premium CE Edition Python 5.5.1, et nous voyons mal comment une mise à jour logicielle pourrait changer cela alors qu'il s'agit d'une limitation matérielle : le cœur
Python de la calculatrice ne dispose que de
32 Kio.
La
suppression de la gestion des programmes assembleur dès la version
5.5.1 tout en
prétendant qu'il suffisait maintenant d'utiliser le
Python pour continuer à créer était hautement prématurée.
Ce n'est pas demain la veille que
Oiram CE nous reviendra dans une édition
Python pour
TI-83 Premium CE Edition Python.


Bref,
Saute Bisam... euh pardon
Saute Mouton, se lance en appelant
sm()
pour 2 troupeaux de 3 moutons. Tente donc de trouver comment résoudre le problème en un minimum de coups possible.

C'est intuitif, touches
←
→
pour sélectionner ton
mouton rose, puis
entrer
pour lui demander d'avancer ou sauter.
Tu pourras ensuite retenter avec
sm(n)
pour 2 troupeaux de
n moutons avec
n=4,
n=5, etc., pour voir si tu as bien trouvé une stratégie qui marche dans tous les cas.
Enfin, question bonus pour les plus matheux, quelle est la formule du nombre minimal de coups en fonction de
n ?
