π
<-
Chat plein-écran
[^]

Jeu Saute Mouton avec images Python IM8C pour 83 Premium CE

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:
Online

Jeu Saute Mouton avec images Python IM8C pour 83 Premium CE

Unread postby critor » 09 Jul 2020, 13:27

12617Le nouveau cahier d'activités
Projets Python pour l'enseignement SNT
en 2nde 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.

12630Et 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. ;)

1er 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 ! :D

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 : :bj:
  • 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, ? :bat:

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
? ;)

Téléchargements
:


Compléments
:


Crédits images
:
Livre
Etudes pour ZX 81
- site défunt "ksinfos" de Carl HERVIER
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 6.8%
 
Posts: 35629
Images: 9549
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Re: Jeu Saute Mouton avec images Python IM8C pour 83 Premium

Unread postby cent20 » 09 Jul 2020, 14:17

critor wrote:1er 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 ! :D

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 : :bj:
  • 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, ? :bat:[/success]
[warning]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.


9 secondes pour planter le décor initiale, ça me rappelle ma CASIO 9960GT de 1996, je ne trouve pas ça non plus extraordinaire en rapidité et pourtant je ne doute pas un seul instant que ton code est parfaitement optimisé.

Pour porter ça sur NumWorks, il "suffit" de trouver comment réaliser un mouton en pixel-art et la rapidité d’exécution graphique de la machine devrait faire le reste. Il n'y a plus qu'à !

La preuve : https://workshop.numworks.com/python/ju ... nch_screen
2000 rectangles/s d'après ce Benchmark.
Image
Enseignant de mathématiques et de spécialité NSI ( projets, tutos ...)
:favorite: NumWork, Python : démineur, snake, tétris
User avatar
cent20Généreux
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 24%
 
Posts: 385
Images: 30
Joined: 17 May 2012, 09:49
Location: Avignon
Gender: Male
Calculator(s):

Re: Jeu Saute Mouton avec images Python IM8C pour 83 Premium

Unread postby jean-baptiste boric » 09 Jul 2020, 18:04

cent20 wrote:Pour porter ça sur NumWorks, il "suffit" de trouver comment réaliser un mouton en pixel-art et la rapidité d’exécution graphique de la machine devrait faire le reste. Il n'y a plus qu'à !

Rajouter un mécanisme pour blitter des images dans la NumWorks serait très facile, le problème c'est le stockage des images. Actuellement on dispose de 32 KiB en RAM alors que la N0110 dispose de plus de 7 MiB de Flash actuellement inutilisés. Il y a une issue dans epsilon à ce propos, mais rétrofitter le stockage en Flash demanderait un effort non négligeable de développement...
User avatar
jean-baptiste boricPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 79.9%
 
Posts: 329
Joined: 21 Dec 2015, 22:22
Gender: Not specified
GitHub: boricj

Online

Re: Jeu Saute Mouton avec images Python IM8C pour 83 Premium

Unread postby critor » 09 Jul 2020, 19:46

cent20 wrote:
critor wrote:
Que dire des performances ? Elles sont tout bonnement extraordinaires : :bj:
  • 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, ? :bat:[/success]
[warning]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.


9 secondes pour planter le décor initiale, ça me rappelle ma CASIO 9960GT de 1996, je ne trouve pas ça non plus extraordinaire en rapidité et pourtant je ne doute pas un seul instant que ton code est parfaitement optimisé.


Tu compares une machine avec un écran 128x64 pixels sur 2-bits de profondeur
(22=4 couleurs)
, avec une machine avec un écran 320x240 pixels sur 16-bits de profondeur
(216=65536 couleurs)
. Le
setPixel()
n'a pas du tout la même complexité, sans compter qu'il y a 9,375 fois plus de pixels à traiter pour remplir l'écran.

Donc non, 9 secondes ne me semblent pas ridicule.

Mais ton défi est justement d'afficher sur NumWorks les mêmes graphismes ou mieux, avec des performances similaires ou supérieures. Donc fais-le, et après nous en reparlerons des 9 secondes. :troll:

Sachant de plus que l'affichage de 320x210 pixels utilise ici 554 couleurs différentes, et passe une bonne moitié du temps sur les dégradés du sol et du ciel, dégradés que tu ne peux pas réaliser sur fx-9960GT.
Mais on supprime les dégradés si tu veux, et ton nouveau défi sera donc de réaliser ça sur NumWorks en moins de 5 secondes.

N'hésite pas à mettre autant d'esclaves que tu veux sur ce projet. ;)


cent20 wrote:Pour porter ça sur NumWorks, il "suffit" de trouver comment réaliser un mouton en pixel-art et la rapidité d’exécution graphique de la machine devrait faire le reste. Il n'y a plus qu'à !

Ton défi
(et ce n'est a priori pas une mission impossible, j'ai plusieurs pistes)
, est justement d'afficher les moutons. Je ne pense pas que tu aies des problèmes de
tas/heap
pour 2 pauvres
sprites
de moutons monochromatiques.
Mais connaissant les performances du
setPixel()
NumWorks
(pas de double-buffering comme chez
Casio
)
, ça va être ça le cœur du problème.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 6.8%
 
Posts: 35629
Images: 9549
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Online

Re: Jeu Saute Mouton avec images Python IM8C pour 83 Premium

Unread postby critor » 09 Jul 2020, 21:18

Voilà donc sans les dégradés sur le ciel et le sol, mais ça fait plus années 1980 que années 1990 alors :
Image

Cette fois-ci le décor est planté en moins de 3 secondes, bon courage pour battre ça... :troll:
Image
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 6.8%
 
Posts: 35629
Images: 9549
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Re: Jeu Saute Mouton avec images Python IM8C pour 83 Premium

Unread postby Arthur Jacquin » 09 Jul 2020, 22:00

Sans décor, un test de dessin de mouton :

https://workshop.numworks.com/python/ar ... quin/sheep

Sur N0110 cela donne 0,01043 moutons par seconde (les moutons font 16 pixels par 14). Etant donné que c'est du pixel art, toute image aura une vitesse d'affichage similaire (relativement à la taille de l'image évidemment).

Pour diminuer la taille des informations de l'image, j'ai utilisé un codage fortement inspiré de celui pour le sokoban.
User avatar
Arthur Jacquin
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 31.3%
 
Posts: 14
Joined: 07 Mar 2020, 21:05
Gender: Not specified
Calculator(s):
Class: Terminale S
GitHub: arthur062318

Online

Re: Jeu Saute Mouton avec images Python IM8C pour 83 Premium

Unread postby critor » 09 Jul 2020, 22:01

Joli ! :)
Image
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 6.8%
 
Posts: 35629
Images: 9549
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Re: Jeu Saute Mouton avec images Python IM8C pour 83 Premium

Unread postby Arthur Jacquin » 09 Jul 2020, 22:04

En imaginant un rafraîchissement pour le jeu (annulation du focus pour un mouton et activation pour un autre), ça fait 2 centièmes. Presque immédiat donc, mais la zone rafraîchit n'est pas immense.

Le support des images ou de commandes plus complexes (par exemple fillPolygon()) ne serait pas de trop, d'autant que cela clarifierait les instructions.
User avatar
Arthur Jacquin
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 31.3%
 
Posts: 14
Joined: 07 Mar 2020, 21:05
Gender: Not specified
Calculator(s):
Class: Terminale S
GitHub: arthur062318

Re: Jeu Saute Mouton avec images Python IM8C pour 83 Premium

Unread postby cent20 » 09 Jul 2020, 22:06

Arthur Jacquin wrote:Le support des images ou de commandes plus complexes (par exemple fillPolygon()) ne serait pas de trop, d'autant que cela clarifierait les instructions.


Je crois que c'est en effet une partie du message de critor.
De toute façon, j'ai trouvé la fonction qui affiche un triangle codé par Léa elle même.
Image
Enseignant de mathématiques et de spécialité NSI ( projets, tutos ...)
:favorite: NumWork, Python : démineur, snake, tétris
User avatar
cent20Généreux
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 24%
 
Posts: 385
Images: 30
Joined: 17 May 2012, 09:49
Location: Avignon
Gender: Male
Calculator(s):

Re: Jeu Saute Mouton avec images Python IM8C pour 83 Premium

Unread postby Arthur Jacquin » 09 Jul 2020, 22:13

Si même l'équipe NumWorks fait ses propres routines graphiques dans son coin pour pallier la faiblesse de kandinsky on va sûrement aller dans le bon sens !
User avatar
Arthur Jacquin
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Level up: 31.3%
 
Posts: 14
Joined: 07 Mar 2020, 21:05
Gender: Not specified
Calculator(s):
Class: Terminale S
GitHub: arthur062318

Next

Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: No registered users and 28 guests

-
Search
-
Featured topics
L'OS 5.5 de la TI-83 Premium CE / 84 Plus CE supprime l'assembleur - la plupart des jeux et certains programme ne fonctionneront plus
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
Comparaisons des meilleurs prix pour acheter sa calculatrice !
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 Calculatrices à acheter chez Calcuso
-
Stats.
673 utilisateurs:
>658 invités
>9 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)