π
<-

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)

Bêta-test public mise à jour HP Prime 2.2.15008

New postby critor » 13 Jul 2024, 08:26

20166Moravia te propose un bêta-test public de sa mise à jour HP Prime 2.2 de rentrée 2024.

Nous passons de la version 2.1.14730 compilée le 21 avril 2023 à la version 2.2.15008 compilée le 9 juillet 2024.
2017020169
2016720168

Comme tu peux le voir la version du moteur CAS ne change pas, restant en 1.5.0. Les nombreuses améliorations apportées depuis plus d'un an par Bernard Parisse ne sont pas incluses et sont réservées pour une nouvelle version bêta à venir.

Résumé officiel des changements depuis la version précédente :
  • Améliorations de la qualité et de la fiabilité dans tout le système.
  • Des parenthèses ont été ajoutées au choix de la palette de modèles mathématiques pour les fractions.
  • Les correctifs notables incluent :
    • Les expressions avec des exposants imbriqués ne sont plus réorganisées de manière incorrecte lors de l'utilisation d'Intelligent Math ou lors de la copie depuis le CAS via CAS.Ans.
    • La calculatrice ne cesse plus de répondre lorsque vous tentez de tracer une fonction avec un exposant doublement parenthèse.


Changelog officiel détaillé :
  1. Memory leaks have been addressed in the Vars and Toolbox catalog menus. [PBT134,PBT135,PBT136,PBT137,PBT138,PBT139,PBT140,PBT141]
  2. Function: The main program now starts out as a PPL program. [PBT164]
  3. AFilesB no longer crashes when attempting to read a file of more than 10000 bytes. [PBT154]
  4. PPL: Using store with a negative index to insert well past the end of a list no longer causes a crash. [PBT168]
  5. RECT_P now uses the bottom right corner as the default for the x2 and y2 parameters. [PBT175]
  6. RECT_P will no longer silently not be fulfilled for large coordinates. [PBT176]
  7. Statistics 1Var, 2Var: Delete Row with Clear or Del now deletes the entire row rather than a single cell. [PBT183]
  8. Statistics 1Var, 2Var: Delete Row with Del from a column header no longer deletes the column. [PBT186]
  9. Entering a date in shortened format in Home Settings no longer causes undesirable behaviour. [PBT193]
  10. Entering a date in shortened format in the initial configuration screen no longer causes crashes. [PBT196]
  11. Calendar: Attempting to move the cursor beyond the bounds of defined dates no longer causes a crash. [PBT199]
  12. Hexadecimal code points of Unicode code points in the Chars palette are no longer truncated. [PBT146]
  13. Home: Calling LINE or LINE_P with two or more empty lists no longer causes a crash. [PBT223]
  14. Home: Calling LINE_P with three lists no longer causes a crash. [PBT224]
  15. Home: GET now behaves consistently on inputs which are outputs of QPI. [PBT228]
  16. Deleting a variable in Memory Manager now always deletes the chosen variable rather than a different variable defined based on the chosen variable instead. [PBT213]
  17. Attempting to delete a list variable with a younger copy via Memory Manager no longer deletes the younger copy instead. [PBT230]
  18. Attempting to delete a matrix variable with a younger copy via Memory Manager no longer deletes the younger copy instead. [PBT231]
  19. Conversion of numbers to text format via STRING now follows the number format parameter over HDigits. [PBT205]
  20. The output of STRING no longer diverges from the number formatting used elsewhere when the formatting is STANDARD and the precision is something other than 11 (or -1). [PBT232]
  21. Names of built-in functions containing Greek letters, and pi, are now case sensitive with regards to their Greek letters. [PBT229]
  22. PPL: Passing empty lists as coordinates to RECT now returns Error: Invalid Input rather than causing a crash. [PBT174]
  23. PPL: Passing STRING an invalid separator argument no longer results in a garbled text output. [PBT243]
  24. Dismissing the Edit Integer window in the equation editor no longer leaks memory. [PBT244]
  25. Home: Pressing the Base key when the last value on the history stack is not an integer no longer results in # appearing in place of the Edit Integer window. [PBT238]
  26. Geometry: Deleting the last Num view entry via the Plot view no longer causes a crash. [PBT256]
  27. PPL: A bug in which using PageDown/PageUp to certain target lines causes a crash has been fixed. [PBT267]
  28. The Home/CAS command line height no longer remains short after returning from a search in the Help tree view. [PBT300]
  29. The Statistics 1Var horizontal lines in a control chart brought up on the first boot of a fresh calculator are no longer miscoloured. [PBT358]
  30. Home: Complex numbers with infinite real components now accurately report their imaginary components. [PBT402]
  31. PPL: Multiplication by i no longer differs from multiplication by 0+i. [PBT403]
  32. Function: The calculator no longer becomes unresponsive when attempting to plot a function with a doubly-parenthesized exponent. [PBT404]
  33. Home: Copying a value with nested exponents no longer rearranges the parentheses. [PBT17]

  1. Virtual Calculator and Connectivity Kit: the EULA shown to the user no longer includes garbled text. [PBT120,PBT121]
  2. Plot view equation displays now compute properly for trigonometric and hyperbolic functions. [PBT34]
  3. Geometry: The equation() command now better formats plotimplicit as text. [PBT20]
  4. The calculator will no longer crash on boot if there is an app program that would bring up the Terminal. [PBT45]




Téléchargements :

Source : https://www.hpmuseum.org/forum/thread-22020.html

Le jeu WHIS sur la NumWorks

New postby Afyu » 24 Jul 2024, 22:18

20184Tu connais peut-être le mini-jeu WHIS que l'on trouve dans le jeu Tales of Eternia (sorti sur Playstation en 2000-2001 et sur PSP en 2005-2006 et aussi connu sous le nom Tales of Destiny II).

C'est un jeu de cartes qui se joue à plusieurs (4 joueurs dans le jeu Tales of Eternia) dont le principe ressemble beaucoup à celui du jeu UNO mais avec des cartes différentes, principalement axées sur les éléments au lieu des chiffres.

Jusqu'à présent, pour jouer à ce mini-jeu, il fallait posséder le jeu ainsi que la console qui permet de le lancer et avoir avancé suffisamment dans l'aventure pour avoir débloqué l'accès à ce mini-jeu.
On pouvait également s'en remettre à l'une des adaptations du mini-jeu seul, disponibles sous la forme d'un jeu d'ordinateur.

Ou encore, avec un esprit bricoleur, on pouvait recréer ce jeu et en faire un jeu de société, avec des (vraies) cartes.

20185Je te propose une adaptation de ce mini-jeu sous la forme d'un jeu pour calculatrice, programmé en Python. :#tritop#:

Découvrons-la avec la présentation du principe et du déroulement du jeu :

Le plateau de jeu montre le score et le nombre de cartes en main de chacun des 4 joueurs, ainsi que la carte actuellement en jeu mais également la pioche, le sens de rotation du jeu et l'ensemble des cartes dans la main du joueur que l'on incarne : le joueur J1.

Le principe du jeu est le suivant :
  • Chaque joueur joue à tour de rôle en jouant ou piochant une ou plusieurs cartes.
  • 20186Le jeu se déroule en 5 manches. Au début de chaque manche, les joueurs ont chacun 6 cartes dans leur main. Une manche se termine lorsque l'un des joueurs a joué toutes ses cartes (il est alors le gagnant) ou s'apprête à piocher alors qu'il a déjà 15 cartes en main (il est alors le perdant).
  • À la fin de chaque manche, le score de chaque joueur est actualisé en fonction des cartes qu'il lui reste en main et qu'il reste dans la main des autres joueurs.
  • À la fin des 5 manches, le joueur qui a le plus grand score a gagné la partie.

20187Avant de présenter plus en détails les règles, présentons les cartes : (la présentation individuelle des cartes est consultable dans le choix Cartes de l'écran d'accueil du jeu, mais les captures d'écran viennent du menu Règles)

Il y a 3 éléments : Eau, Feu et Vent.
Le cadre des cartes indique l'élément d'une carte : bleu pour Eau, rouge pour Feu et vert pour Vent.

20188Les cartes de l'élément Eau sont :
  • la carte simple
  • la carte d'attaque
  • la carte spéciale (Prisme) qui permet de choisir l'élément qui sera demandé au joueur suivant
  • la carte de transition (Volt) qui permet de modifier l'élément en jeu et passer de Eau à Vent.
20189Les cartes de l'élément Feu sont :
  • la carte simple
  • la carte d'attaque
  • la carte spéciale (Double) qui permet de rejouer immédiatement une carte
  • la carte de transition (Glace) qui permet de modifier l'élément en jeu et de passer de Feu à Eau.
20190Les cartes de l'élément Vent sont :
  • la carte simple
  • la carte d'attaque
  • la carte spéciale (Change) qui permet d'inverser le sens de rotation du jeu
  • la carte de transition (Terre) qui permet de modifier l'élément en jeu et de passer de Vent à Feu.
20191Les cartes de changement d'élément sont :
  • la carte Lumière
  • la carte Obscurité
Elles peuvent être jouées sur n'importe quelle carte (sauf carte d'attaque active) et permettent de choisir l'élément qui sera demandé au joueur suivant.
Le cadre de ces cartes est : jaune pour Lumière et gris pour Obscurité.

20192Présentons plus en détails les règles du jeu. Les règles suivantes sont consultables dans le jeu, avec les choix Cartes et Règles de l'écran d'accueil du jeu.

Le jeu se déroule en 5 manches dont le déroulement est le suivant :
  • Au début de la manche, chaque joueur a 6 cartes en main.
    20193
  • Lorsque c'est son tour, chaque joueur joue une carte de sa main qui vient remplacer la carte actuellement en jeu.
  • 20194Si un joueur ne peut pas jouer parce qu'il n'a pas de carte compatible avec la carte actuellement en jeu, alors il doit piocher une carte. S'il a pioché une carte qui peut être jouée, alors il peut la jouer. Sinon, son tour est terminé.
  • Lorsque c'est son tour, si un joueur peut jouer une carte mais ne souhaite pas jouer, il peut choisir de passer son tour. Dans ce cas, il devra piocher puis son tour sera terminé.
  • La manche se termine lorsque l'un des joueurs a réussi à jouer toutes ses cartes ou lorsque l'un des joueurs s'est retrouvé à devoir piocher alors qu'il avait déjà 15 cartes en main.
  • À la fin de chaque manche, le score de la manche est calculé pour chaque joueur et le score global de chaque joueur est actualisé en conséquence.
    20186

Lorsque l'on joue une carte Prisme, Lumière ou Obscurité, on choisit l'élément demandé en sélectionnant le carré de la couleur correspondante (bleu pour Eau, rouge pour Feu et vert pour Vent). Cet élément est alors symbolisé par un carré coloré qui recouvre le coin supérieur droit de la carte en jeu.
201952019620197

Chaque carte jouée doit être compatible avec la carte actuellement en jeu, c'est-à-dire qu'elle doit être de l'élément attendu.
2019820199

Le cas particulier des cartes d'attaque :
Si la carte en jeu est une carte d'attaque, alors il est possible de jouer une carte d'attaque de n'importe quel élément ! Chaque carte d'attaque fait piocher 2 cartes au joueur suivant s'il ne peut pas surenchérir avec une autre carte d'attaque. Le nombre de cartes à piocher est cumulatif (tout comme la règle pas du tout officielle des joueurs de UNO qui enchaînent et cumulent les cartes +2 :). Par exemple : 3 cartes d'attaques successives impliquent 6 cartes à piocher).
2020020201

Si un joueur ne peut pas surenchérir sur une carte d'attaque et qu'il pioche, alors la carte d'attaque est neutralisée. Le joueur suivant doit jouer une carte (éventuellement d'attaque) de la couleur de la carte d'attaque neutralisée en jeu. En cas d'impossibilité de jouer, la carte d'attaque étant neutralisée, il faut piocher une carte (et une seule !), comme illustré ci-dessous avec J4 qui pioche et la carte d'attaque qui est neutralisée, ce qui fait piocher une seule carte à J1 qui ne peut pas jouer :
202022020320204

Mais comment est calculé le score en fin de manche ? (le paragraphe qui suit n'est pas expliqué dans le choix Règles de l'écran d'accueil du jeu)

Chaque carte a une valeur en points :
  • Les cartes simples et les cartes de transition valent 2 points chacune.
    202052020620207
    202082020920210
  • Les cartes spéciales (Prisme, Double et Change) valent 5 points chacune.
    202112021220213
  • Les cartes d'attaque valent 10 points chacune.
    202142021520216
  • Les cartes Lumière et Obscurité valent 20 points chacune.
    2021720218


On effectue la somme des valeurs en points des cartes restant dans la main de chaque joueur.

  • S'il y a un gagnant (un joueur qui a joué toutes ses cartes), alors chacun des autres joueurs est perdant. Chaque joueur perdant perd la somme des points de ses cartes restant en main. Le joueur gagnant gagne la somme des points de l'ensemble des cartes restant dans la main de tous les joueurs perdants.
    20186

  • S'il y a un perdant (un joueur qui s'apprêtait à piocher alors qu'il avait 15 cartes en main), alors chacun des autres joueurs est gagnant. Chaque joueur gagnant gagne le tiers (arrondi à l'entier inférieur) de la somme des points des 15 cartes restant en main du joueur perdant. Le joueur perdant perd la somme des points de ses cartes restant en main, (arrondi au multiple de 3 inférieur, si besoin).
    2021920220
Le joueur qui termine la manche en étant le gagnant ou le perdant commence la manche suivante.

Pour donner un peu plus de lisibilité au déroulement du jeu, le cadre de chaque joueur change de couleur pour indiquer le joueur dont c'est le tour (fond violet), s'il joue une carte (fond vert) ou s'il pioche (fond rouge).
Une flèche indique le sens de rotation du jeu et permet de savoir qui sera le prochain joueur.
202212022220223

20224Au fait, comment joue-t-on ?

  • On utilise les flèches gauche et droite pour sélectionner une carte ou l'élément demandé dans le cas de l'utilisation des cartes Prisme, Lumière ou Obscurité.
  • On valide avec OK dans la version Epsilon et avec OK ou EXE dans la version Upsilon.
  • On pioche volontairement ou on passe son tour volontairement avec la touche shift. Attention, la touche Retour interrompt l'exécution du script !

15853Si tu as une calculatrice NumWorks, alors tu peux y transférer cette version.

Si tu n'as pas de calculatrice NumWorks, alors tu peux tout de même tester cette version du jeu, en utilisant les flèches gauche et droite, la touche Shift et la touche Entrée du clavier.

Les cartes du jeu d'origine sont très colorées et riches en détails mais une partie de ces détails a été perdue lors de l'encodage des images. En effet, pour faire tenir toutes ces données dans la mémoire restreinte de la NumWorks, il a fallu réduire le nombre de couleurs par image !

En utilisant les fonctionnalités du logiciel Gimp, j'ai transformé chacune des images en une image indexée qui comporte au maximum 8 couleurs. Un détail qui a toute son importance : ces 8 couleurs choisies sont celles qui correspondent le mieux aux couleurs présentes dans l'image d'origine et ne sont pas une répartition uniforme des couleurs sur le spectre des couleurs comme ce que l'on obtiendrait en transformant les images en mode RGB565.

Cette réduction permet d'encoder la couleur de 2 pixels avec un seul caractère ! En effet, en créant une palette de 8 couleurs pour chaque image, il suffit ensuite pour chaque pixel de stocker le rang de sa couleur dans cette palette et pour deux pixels, ça fait 8×8 rangs nécessaires, soit 64 valeurs différentes.

En Python, un caractère est associé à son rang dans la table des caractères ASCII, donc à un nombre. Sur la NumWorks, il est possible de trouver 64 caractères qui correspondent donc à 64 rangs dans cette table et la commande ord(caractère) permet de récupérer ce rang. Par exemple, ord('a') renvoie la valeur 97.

Avec 64 valeurs différentes, il est possible d'encoder 8×8 valeurs différentes, soit 8 rangs pour un pixel et 8 rangs pour un autre pixel, donc un caractère permet de stocker le rang de la couleur de 2 pixels dans la palette de couleurs de l'image.

En fait, étant donné que Python compte à partir de 0 pour le rang dans une liste, on souhaite avoir un nombre compris entre 0 et 63 et on récupère les deux rangs en effectuant la division euclidienne de ce nombre par 8 et on récupère le quotient et le reste, ce qui donne bien deux chiffres compris entre 0 et 7. J'ai choisi les caractères de rangs 35 à 98 dans la table des caractères ASCII avec un décalage de 35 pour revenir à des nombres compris entre 0 et 63.

L'aventure aurait pu se terminer ici, avec un jeu de cartes aux couleurs chatoyantes (mais seulement 8 couleurs différentes par carte) et de simples carrés de couleurs pour choisir l'élément demandé au joueur suivant. Mais c'était sans compter sur le travail formidable de la communauté de développeurs qui a produit le firmware alternatif Upsilon qui peut être installé sur certaines NumWorks, à certaines conditions, et qui permet de bénéficier d'une mémoire de travail augmentée.

Le gain de place a permis de remplacer les carrés colorés du mini menu de choix de l'élément demandé au joueur suivant par les images d'origine : un fond bleuté pour l'Eau, une petite flamme pour le Feu et une petite tornade pour le Vent.Ces petites images ont d'ailleurs été ajoutées à l'écran d'accueil.
20228

Les choix de menus présentant les Cartes et les Règles ont également gagné un titre, en haut de l'écran.
2022620227


L'écran de fin de partie montre maintenant clairement qui est le joueur gagnant (en vert) et qui est le joueur perdant (en rouge).
20229

Il n'y a pas d'autres différences entre les versions Epsilon et Upsilon du jeu, l'ajout des visages nécessitant encore bien davantage d'espace en mémoire que ce que Upsilon offre.

20225Si tu as une calculatrice NumWorks sur laquelle tu peux installer le firmware Upsilon, alors tu peux y transférer cette version.

Si tu n'as pas de calculatrice NumWorks, alors tu peux tout de même tester cette version du jeu, en utilisant les flèches gauche et droite, la touche Entrée et la touche shift. Ceci est rendu possible grâce au formidable Workshop Upsilon de Yaya.Cout. :favorite:


La rumeur dit qu'un nouveau modèle de calculatrice Casio vient de voir le jour, avec une grande mémoire de travail et une version de Python munie d'une fonction getkey(). Et si... ?

Liens et ressources :
Link to topic: Le jeu WHIS sur la NumWorks (Comments: 4)

Bêta-test public mise à jour HP Prime 2.2.15048

New postby critor » 27 Jul 2024, 09:40

20232Moravia continuer à te proposer de bêta-tester sa mise à jour HP Prime 2.2 de rentrée 2024.

La dernière version dite 'stable' sortie est la 2.1.14730 compilée le 21 avril 2023.
La dernière version bêta était la 2.2.15008 compilée le 9 juillet 2024.
Nous passons donc désormais à la version bêta 2.2.15048 compilée le 21 juillet 2024.
2017020169
2016720168
2023020231


Comme tu peux le voir la version du moteur CAS ne change toujours pas, restant en 1.5.0. Les nombreuses améliorations apportées depuis plus d'un an par Bernard Parisse ne sont donc toujours pas incluses. C'est bien regrettable, car c'est le seul de l'équipe de développement à avoir de loin la meilleure vision de ce qui manque à la HP Prime dans le contexte scolaire, et particulièrement dans le contexte scolaire français.

Changelog officiel détaillé :
Python App :
  1. Non-ASCII characters are now better supported in message boxes and in output to the terminal. [PBT339,PBT454,PBT456]
  2. Pressing the Esc or Num key after editing malformed Python scripts no longer causes a crash. [PBT191,PBT391]
  3. Pressing Shift+Symb or Shift+Num now shows an alert, rather than causing crashes, freezing, or leaving the interface in an inconsistent state. [PBT390,PBT396]
  4. Returning to the Numeric view after printing to the terminal from outside of Python no longer causes a crash. [PBT441]
  5. Keypresses now enter uppercase letters when the A..Z annunciator is shown and lowercase letters when the a..z annunciator is shown. [PBT395]
  6. An excessively large or small stack or heap size is no longer accepted when entered (excessively large or small stack or heap sizes may causes crashes). [PBT446,PBT450]
  7. Resetting specific fields in the Plot setup view no longer affects other fields. Displayed checkboxes now better align with actual settings. [PBT447,PBT448,PBT449]
  8. Filenames that contain many non-ASCII characters are now also considered for automatic opening on import failures. [PBT455]
  9. User-defined PPL app functions Plot() and Num() are now taken into account when the Plot or Num key is pressed. [PBT453]
Home View :
  1. Copying a value with nested exponents no longer rearranges the parentheses. [PBT17]
  2. Entered expressions and calculation results can now be loaded from work files. [PBT14]
  3. User-created variables and functions can now be loaded from saved work files. [PBT466]
  4. The Matrices checkbox now controls whether matrices are included in saved work files. [PBT465]
  5. Deleting all saved work files when in the Load Work dialog no longer causes a crash. [PBT463]
  6. Checkboxes are now updated in the Load Work dialog after deleting a work file via the Delete menu button. [PBT467]
  7. Using an invalid name for a work file no longer brings the interface to an inconsistent state and / or causes a crash. [PBT469]
  8. Pressing the Base key when the last value on the history stack is not an integer no longer results in # appearing in place of the Edit Integer window. [PBT238]
Function App :
  1. The calculator no longer becomes unresponsive when attempting to plot a function with a doubly-parenthesized exponent. [PBT404]
Statistics Apps :
  1. Delete Row with Clear or Del now deletes the entire row rather than a single cell. [PBT183]
  2. Delete Row with Del from a column header no longer deletes the column. [PBT186]
  3. The Statistics 1Var horizontal lines in a control chart brought up on the first boot of a fresh calculator are no longer miscoloured. [PBT358]
Solve App :
  1. Entering an empty Num view with a custom Symb view no longer causes a crash. [PBT452]
Geometry App :
  • Deleting the last Num view entry via the Plot view no longer causes a crash. [PBT256]
PPL :
  1. The app program now starts out as a PPL program. [PBT164]
  2. Calling LINE or LINE_P with two or more empty lists no longer causes a crash. [PBT223]
  3. Calling LINE_P with three lists no longer causes a crash. [PBT224]
  4. GET now behaves consistently on inputs which are outputs of QPI. [PBT228]
  5. Evaluating STARTVIEW(2^32) no longer causes a crash on 64-bit environments. [PBT451]
  6. RECT_P now uses the bottom right corner as the default for the x2 and y2 parameters. [PBT175]
  7. RECT_P will no longer silently not be fulfilled for large coordinates. [PBT176]
  8. Conversion of numbers to text format via STRING now follows the number format parameter over HDigits. [PBT205]
  9. Passing empty lists as coordinates to RECT now returns Error: Invalid Input rather than causing a crash. [PBT174]
  10. Passing STRING an invalid separator argument no longer results in a garbled text output. [PBT243]
  11. A bug in which using PageDown/PageUp to certain target lines causes a crash has been fixed. [PBT267]
  12. Multiplication by i no longer differs from multiplication by 0+i. [PBT403]
  13. Names of built-in functions containing Greek letters, and pi, are now case sensitive with regards to their Greek letters. [PBT229]
  14. Using store with a negative index to insert well past the end of a list no longer causes a crash. [PBT168]
  15. Conversion of complex numbers with infinite real components to text now includes their imaginary components. [PBT402]
  16. The output of STRING no longer diverges from the number formatting used elsewhere when the formatting is STANDARD and the precision is something other than 11 (or -1). [PBT232]
Other Fixes :
  1. Memory leaks have been addressed in the Vars and Toolbox catalog menus. [PBT134,PBT135,PBT136,PBT137,PBT138,PBT139,PBT140,PBT141]
  2. AFilesB no longer crashes when attempting to read a file of more than 10000 bytes. [PBT154]
  3. Entering a date in shortened format in Home Settings no longer causes undesirable behaviour. [PBT193]
  4. Entering a date in shortened format in the initial configuration screen no longer causes crashes. [PBT196]
  5. Calendar: Attempting to move the cursor beyond the bounds of defined dates no longer causes a crash. [PBT199]
  6. Hexadecimal code points of Unicode code points in the Chars palette are no longer truncated. [PBT146]
  7. Deleting a variable in Memory Manager now always deletes the chosen variable rather than a different variable defined based on the chosen variable instead. [PBT213]
  8. Attempting to delete a list variable with a younger copy via Memory Manager no longer deletes the younger copy instead. [PBT230]
  9. Attempting to delete a matrix variable with a younger copy via Memory Manager no longer deletes the younger copy instead. [PBT231]
  10. Dismissing the Edit Integer window in the equation editor no longer leaks memory. [PBT244]
  11. The Home/CAS command line height no longer remains short after returning from a search in the Help tree view. [PBT300]

Pour l'instant donc il s'agit de simples corrections de bugs, certes fort bienvenues puisque nous reprochions une forte instabilité aux mises à jour HP Prime sorties depuis le printemps 2021, mais malheureusement sans nouveautés.

Pour l'instant hélas, la HP Prime ne commence toujours pas à rattraper son retard sur la concurrence dans le contexte scolaire français. C'est regrettable, mais avec 2 versions bêta en moins d'1 mois il y a encore de l'espoir, croisons les doigts pour que ça finisse enfin par arriver d'ici la rentrée...



Téléchargements :

Source : viewtopic.php?t=26762&p=276051#p276051

Le jeu WHIS sur la Casio Graph Math+

New postby Afyu » 27 Jul 2024, 19:02

Dans un précédent article, je te présentais mon adaptation du mini-jeu WHIS pour en faire un jeu compatible avec la NumWorks, sous la forme d'une version Epsilon et d'une version un peu améliorée qui ne fonctionne qu'avec Upsilon.
2018720225

19006Mais la rumeur dit qu'un nouveau modèle de calculatrice Casio vient de voir le jour, avec une grande mémoire de travail et une version de Python munie d'une fonction getkey().
Ce nouveau modèle de calculatrice est en fait la Graph Math+ dont tu peux lire un test très complet réalisé par les équipes de TI-Planet et de Planète-Casio.

Contrairement à celle de la Graph 90+E qui en est dépourvue, l'implémentation Python de la Graph Math+ dispose de la fonction getkey() qui permet de détecter en temps réel un appui sur les touches et permet ainsi de faire des jeux bien plus interactifs ! :D

Le mini-jeu WHIS a donc pu être adapté pour en faire une version qui fonctionne avec la Graph Math+ ! :#tritop#:
20234

Les règles du jeu sont détaillées dans l'article qui présente les versions NumWorks.

Si la Graph Math+ dispose d'une fonction getkey(), elle est malheureusement (à ce jour) toujours dépourvue du module time et en particulier de la fonction sleep qui permet de faire une pause de durée déterminée dans l'exécution du script.

Il manque également la fonction fill_rect qui permet de dessiner un rectangle plein en précisant sa position, ses dimensions et sa couleur. Il a donc fallu adapter et recoder ces fonctions, de la même manière qu'avec l'adaptation de la version NumWorks du jeu Orlog pour en faire une version Graph Math+.

Par ailleurs, les couleurs données en paramètre des fonctions draw_string ou set_pixel ont également été transformées pour être écrites exclusivement sous la forme d'un triplet de nombres entiers, puisque c'est le seul format d'écriture des couleurs accepté par ces deux fonctions. :(

Dans le même esprit d'adaptation, la fonction draw_string a été recodée pour remettre ses différents paramètres dans l'ordre attendu par la version Casio de cette fonction, sans devoir modifier manuellement chacun des 71 appels à cette fonction !

Pour cette adaptation, pas de compensation des coordonnées en +38 et +1 parce que ce n'est pas une adaptation depuis la version Graph 90+E + PythonExtra mais directement depuis les versions NumWorks. Plus de détails sur la manière de recréer les fonctions sleep et fill_rect, dans la présentation du jeu Orlog sur la Graph Math+.

L'implémentation Python de la Graph Math+ ne gère pas les caractères accentués, ils ont donc été retirés, jusqu'à amélioration de la situation sur ce point. :(

Parlons maintenant des améliorations que la grande mémoire de stockage et surtout que la grande mémoire de travail de la Graph Math+ ont permis d'ajouter !

Faute d'espace mémoire suffisant sur la NumWorks, les visages des personnages n'avaient pas pu être ajoutés. Ce qui est bien dommage...

La mémoire de la Graph Math+ permet d'ajouter ces visages ! :#tritop#:
Les noms des joueurs J1, J2, J3 et J4 sont dorénavant remplacés par les visages des 4 personnages du jeu initial : Reid, Keele, Meredy et Farah. :#tritop#:
2022820239


L'icone de carte miniature qui précède le nombre de cartes en main dans le jeu d'origine a été remplacé par le caractère ▮, qui ressemble à une carte miniature, affiché en utilisant le caractère échappé "\u25ae". Or ce caractère ne fait pas partie de la table des caractères supportés (pour le moment) par la NumWorks. Il est donc affiché sous la forme que prennent les caractères non reconnus : un rectangle vide avec ses diagonales.

On peut remarquer que cette carte miniature a gagné en détails et en couleurs en laissant sa place à une véritable petite image très colorée. :)

Pour mettre en évidence de quel joueur c'est le tour de jouer et s'il joue ou pioche une carte, j'ai utilisé l'astuce de simplement modifier la couleur de fond d'affichage du numéro du joueur ainsi que de son score. Cette ruse permettait de prendre très peu de place dans la mémoire de la NumWorks. :)

Ce fond coloré est remplacé par un cadre qui entoure le visage du joueur ainsi que son score et son nombre de cartes en main, en reprenant le même code couleur : fond violet pour le joueur dont c'est le tour de jouer puis fond vert s'il joue une carte ou fond rouge s'il pioche une carte. :D
20235202362023720238

Par ailleurs, chaque carte piochée est accompagnée d'une alternance d'affichage entre le cadre rouge qui entoure la pioche et le cadre rouge qui entoure le visage du joueur concerné. :)

La grande mémoire a également permis de reproduire une animation de ces visages présente dans le jeu d'origine. :#wahoo#:
Pour éviter de ralentir l'exécution du programme sur la Graph Math+ (qui ne bénéficie pas de la rapidité de PythonExtra :( ), seulement la partie du visage qui est animée est redessinée. Je vous laisse découvrir cette animation en jouant au jeu ! :)

Les images ont maintenant bien plus de 8 couleurs ! :#tritop#:
J'ai utilisé un encodage identique à celui utilisé pour les versions NumWorks, c'est-à-dire en utilisant une palette de couleurs pour chaque image puis en ne codant que le rang de la couleur de chaque pixel dans la palette de couleurs de l'image.

Cependant, en utilisant un caractère pour un pixel (au lieu de deux pixels pour les versions NumWorks) et en permettant d'utiliser autant de couleurs qu'il y a de caractères accessibles depuis la Graph Math+ (sans utiliser de caractères échappés, mais on aurait pu le faire) c'est-à-dire 92 caractères, on peut désormais utiliser 92 couleurs ! :#tritop#:
19813
Il y a en fait 95 caractères utilisables mais j'ai choisi d'exclure les doubles guillemets " (et les deux caractères situés avant, dans la table des caractères, soit l'espace et le point d'exclamation) pour éviter qu'ils ne referment prématurément la chaîne de caractères qui encode l'image. Les images ont donc jusqu'à 92 couleurs différentes (et chaque image a sa palette de maximum 92 couleurs).
On peut observer les différences sur la carte Prisme, par exemple.
2018820253

20241Les visages ont initialement entre 12 et 15 couleurs seulement. La plupart des cartes a initialement entre 51 et 83 couleurs et les 5 cartes restantes (les cartes d'attaque, la carte Prisme et la pioche) ont initialement entre 114 et 150 couleurs.

La réduction à 92 couleurs n'a donc pas un très grand impact sur la qualité des images. Dans la capture d'écran du jeu original, on peut comparer la carte en jeu, Prisme, avec ses versions NumWorks et Graph Math+ présentées dans le paragraphe précédent. Il y très peu de différences entre la version Graph Math+ et ses 92 couleurs et la version PSP et ses 121 couleurs. ;)

20242Sur suggestion de notre cher SlyVTT, il est dorénavant possible de choisir son personnage (sans que ça soit systématiquement le joueur J1 devenu Reid) !

En prime, il est possible de jouer à plusieurs ! :#tritop#: :#wahoo#:
Au lancement d'une partie avec le choix Jeu :) du Menu d'accueil, il est maintenant possible de choisir entre 0 et 4 joueurs humains.

20243Dans le cas d'un nombre au moins égal à 2, les cartes de chacun des joueurs humains ne sont affichées qu'après avoir appuyé sur EXE ou OK, pour garder un peu de discrétion et de mystère. :D

Dans le cas du choix de 0 joueur humain, c'est-à-dire de 4 joueurs gérés automatiquement par la calculatrice, le choix est proposé d'afficher ou non les cartes de chaque joueur lorsque c'est son tour de jouer. L'absence d'affichage des cartes accélère le déroulement automatique de la partie, mais laisse beaucoup moins de visibilité sur la stratégie de chaque joueur. :)

20244Un écran de titre égaye le lancement du jeu :#tritop#: (avec 92 couleurs, ici encore, ce qui est largement suffisant). Merci beaucoup à SlyVTT pour avoir trouvé une image qui correspond bien à l'esprit du jeu ! :D :favorite:
Le fond noir qui habille cet écran de titre est conservé tout au long du jeu, y compris dans les entrées Cartes et Règles du menu, pour mettre en valeur les couleurs des visages et des cartes et apporter une touche d'élégance et de sobriété (enfin, j'espère ! xD ).

À l'opposé de l'écran de titre dans le déroulement du jeu, l'écran de fin de manche est illustré avec les visages animés des personnages et une fois la partie terminée (donc à la fin de la dernière manche), il est proposé au joueur de recommencer une partie, sans même devoir relancer le jeu ! :D
2024520246

20247En outre, de nouveau sur suggestion de notre cher SlyVTT, cet écran de titre est immédiatement suivi d'un écran de choix de langue. Oui, il est possible de jouer avec les textes en français ou bien en anglais ! :#tritop#:
Le jeu d'origine étant intégralement en anglais, les textes en anglais n'ont pas été difficiles à trouver. :D
Tout le jeu est jouable en anglais. Tous les textes sont traduits, même les plus courts, de l'écran d'accueil jusqu'à l'écran de fin de partie ! :#wahoo#:
202482025120252


20234Au fait, comment joue-t-on ?

  • On utilise les flèches gauche et droite pour sélectionner une carte ou l'élément demandé dans le cas de l'utilisation des cartes Prisme, Lumière ou Obscurité.
  • On valide avec OK ou EXE.
  • On pioche volontairement ou on passe son tour volontairement avec la touche Retour, à gauche de la flèche gauche.

Et comment lance-t-on le jeu ?

Pour jouer à ce jeu, il faut mettre le script Python du jeu dans la mémoire de stockage (celle qui s'affiche en mode USB) de la Graph Math+ puis depuis la calculatrice, aller dans le menu Python, puis dans le Shell il faut saisir (à chaque lancement du jeu) la commande suivante from WHIS_v54_GM_sans_accent_JcJ import * puis appuyer sur OK ou EXE.

Je conseille vivement de renommer le fichier et de choisir un nom bien plus court.

On peut également saisir cette ligne (une bonne fois pour toute) dans le script module.py, qui est exécuté automatiquement dès que l'on accède au Shell Python de la Graph Math+. Ensuite, pour chaque lancement du jeu, il n'y a alors plus qu'à accéder au Shell Python pour un lancement automatique, sans rien devoir saisir de plus. :#tritop#:

Il est également possible de simplement renommer le script WHIS_v54_GM_sans_accent_JcJ.py en module.py puis de le mettre dans la mémoire de la Graph Math+. Il sera alors automatiquement exécuté dès que l'on accède au Shell Python. :)

Bon jeu ! :D


La légende raconte qu'un add-in permet de lancer des jeux Python sur les Casio Graph 90+E avec un affichage très rapide et l'utilisation des modules Python de la NumWorks. Et si... ?

Téléchargement :
Link to topic: Le jeu WHIS sur la Casio Graph Math+ (Comments: 1)

Le jeu WHIS sur la Casio Graph 90+E

New postby Afyu » 30 Jul 2024, 02:23

Il y a quelques jours, dans deux précédents articles, je te présentais mon adaptation du mini-jeu WHIS pour en faire un jeu compatible avec la NumWorks, sous la forme d'une version Epsilon et d'une version un peu améliorée qui ne fonctionne qu'avec Upsilon, ainsi qu'une version Casio Graph Math+ qui profite de la grande mémoire de travail de son application Python.
201872022520234

Pour présenter très succintement le jeu : c'est un jeu de cartes qui se joue à 4 joueurs dans sa version originale (c'est un mini-jeu du jeu Tales of Eternia) et dont le principe ressemble beaucoup au jeu du UNO, mais en remplaçant les chiffres par les éléments Eau, Feu et Vent. Le but est de réussir à jouer toutes les cartes de sa main avant que les autres joueurs ne fassent de même avec leurs cartes.

Voici un aperçu des 14 cartes du jeu :
20257202582025920260


Une présentation assez complète du jeu, des règles et des cartes est consultable dans l'article qui présente les versions NumWorks du jeu. :D

Après avoir fait une version NumWorks Epsilon, une version NumWorks Upsilon et une version Casio Graph Math+, il était impensable de ne pas faire une version Casio Graph 90+E !

D'autant plus que cette dernière à toutes les fonctions de la Casio Graph Math+. Enfin, toutes, non, pas tout à fait !

Ces deux calculatrices ont des capacités matérielles remarquables et en particulier une grande mémoire de stockage et une grande mémoire de travail ( :#wahoo#: ) mais leur implémentation de Python est malheureusement incomplète. :(

En effet, elles ne gèrent pas les caractères accentués ou avec une cédille. Ceux-ci ont donc été retirés, jusqu'à amélioration de la situation. Mais ce n'est pas le plus important.

De plus, elles sont dépourvues du module time et la Graph 90+E, contrairement à la Graph Math+, est également dépourvue de la fonction getkey(). Cette fonction permet de gérer en temps réel l'appui sur les touches de la calculatrice et son abscence complique cruellement la conception de jeux graphiques nécessitant une interaction avec le joueur !

Sans getkey(), toute interaction implique de quitter l'interface graphique, de poser une question puis de traiter la réponse après validation (ou alors il faut ruser, comme le fait critor en interceptant l'instruction d'arrêt du script générée par l'appui sur la touche AC/ON, la seule touche qui est reconnue, ce qui est fonctionnel mais malgré tout assez peu ergonomique :().

Mais la légende raconte qu'un add-in permet de lancer des jeux Python sur les Casio Graph 90+E avec un affichage très rapide et la possibilité d'utiliser les modules Python de la NumWorks.
Cet add-in est en fait PythonExtra. Nous le devons au travail remarquable de la communauté de Planète-Casio et en particulier de Lephe.

Et c'est à notre cher et talentueux SlyVTT que nous devons l'intégration des modules de la NumWorks dans la version 0.3.0 de cet add-in, qui permet maintenant de profiter de l'ensemble des scripts et jeux de la NumWorks directement sur la Graph 90+E. :#tritop#:

Qui plus est, il est tout à fait possible de créer un jeu Python en utilisant à la fois des modules Python de Casio portés dans PythonExtra, des modules Python de NumWorks portés dans PythonExtra mais également des modules Python propres à PythonExtra, tels que gint.

On peut, par exemple, importer la fonction sleep du module time qui permet de faire une pause de durée déterminée dans l'exécution d'un script, et au passage remplacer le bricolage de recodage de cette fonction que j'ai utilisé dans la version Graph Math+. :bj:


Ce formidable add-in PythonExtra fournit toutes les fonctions qui manquent pour pouvoir adapter la version Graph Math+ du jeu WHIS en une version Graph 90+E !

Petite précision qui a toute son importance : le jeu doit être exécuté depuis l'add-in pour fonctionner correctement. :)

La simple importation de la fonction getkey() du module ion de NumWorks suivie du remplacement des getkey() par des keydown() en adaptant le nom des touches permet de rendre le jeu exécutable sur la Graph 90+E avec PythonExtra ! :#wahoo#:

Il y a donc tout ce qu'il faut sur la Graph 90+E pour y faire fonctionner mon adaptation du jeu WHIS ! :#tritop#:

Cependant, l'affichage est alors extrèmement lent et l'image de l'écran de titre met environ 2 min pour être affichée, dans un lent déroulement qui rappelle un rideau qui descend. :o :(

Va-t-il falloir renoncer à cette belle image ?

20244L'image de l'écran de titre de la version Graph Math+ du jeu WHIS fait 185×185 pixels et elle est encodée puis tracée pixel par pixel avec la commande set_pixel du module casioplot. Si l'affichage de cette image prend 6 ou 7 secondes sur la Graph Math+, il prend tout de même près de 2 min sur la Graph 90+E que ça soit avec la version kandinsky (sans double buffering, donc avec effet rideau qui descend) ou avec la version casioplot (avec double buffering) de la fonction set_pixel ! :o

20008Pour le jeu Orlog, l'image de l'écran de titre (la tête de loup) ne comporte que 4 couleurs et il aurait été possible de modifier l'encodage de l'image pour la traiter ligne par ligne en stockant chaque ligne sous forme de rectangles dont il faudrait seulement conserver la couleur et la longueur (c'est d'ailleurs la méthode effectivement retenue pour les images des divinités et qui accélère beaucoup leur affichage !). Pour l'image de l'écran de titre du jeu WHIS, il y a bien plus de 4 couleurs et il n'est pas forcément pertinent et efficace de stocker l'image sous forme de rectangles, la plupart des rectangles ayant une longueur de 1 pixel.


Il a donc fallu trouver une parade pour ne pas avoir à renoncer à ce bel écran de titre (ou à deux minutes de notre temps à chaque lancement du jeu) !

C'est notre cher SlyVTT qui a trouvé une solution en proposant de faire appel aux fonctions de dessin du module gint de PythonExtra. Ce module permet en effet d'encoder des images de différentes manières suivant le nombre de couleurs souhaitées et l'espace dont on dispose pour la longue chaîne de caractères qui résulte de l'encodage de l'image.

Ensuite, chaque image est tracée à la position souhaitée avec la commande dimage(x,y,IMAGE) où IMAGE est le nom de la variable qui stocke (entre autres) la chaîne de caractères générée lors de l'encodage de l'image et x et y sont les positions horizontales et verticales où on souhaite placer le coin supérieur gauche de l'image.

Armé de son courage, de son talent et de sa patience, notre cher et talentueux SlyVTT a encodé toutes(!) les images du jeu (28 pour les visages + 14 cartes + 3 éléments + la pioche + l'image de titre) en un format géré par gint et ses fonctions de dessin ! Sans entrer dans les détails, cet encodage se fait avec une ligne de commande (par image) qui nécessite d'avoir le fxSDK installé sur son ordi. Bravo pour le petit script brillamment pensé pour automatiser le traitement et merci beaucoup pour ce grand coup de pouce ! :bj: :favorite:


Qui plus est, gint utilise le double buffering, ce qui signifie qu'on peut afficher une image puis préparer l'image suivante sans l'afficher et ne l'afficher que lorsqu'on le souhaite, avec la commande dupdate() (ce qui équivaut à la commande show_screen() du module casioplot qui utilise aussi le double buffering).

En utilisant les fonctions de dessin du modeul gint et l'encodage des images qui convient, l'affichage de l'image de titre ne prend plus que 6 ou 7 secondes au lieu de 2 min ! :#wahoo#: :#tritop#:


Toutefois, remplacer les quelques lignes de la fonction IMG que j'ai codée pour décoder et afficher les images dans la version Graph Math+ par un simple dimage(x,y,carte) n'était pas fonctionnel.

En effet, j'ai utilisé un dictionnaire (un des types d'objets Python) pour faire l'association entre le nom d'une carte (une chaîne de caractères de 3 lettres) et la chaîne de caractères qui contient de manière codée les données de l'image correspondante. Ma fonction IMG utilise alors le nom de la carte sous forme d'une chaîne de caractères pour aller chercher (dans le dictionnaire Image) les données à afficher.

Le souci est que gint utilise des noms de variable pour aller chercher les données à afficher, et non pas des noms sous forme de chaîne de caractères.

Pour transformer un nom de variable en chaîne de caractères, il suffit d'utiliser la commande str(). Par exemple, pour transformer Pio en "Pio", il suffit d'utiliser la commande str(Pio) dans laquelle on peut remplacer le nom Pio par ce que l'on souhaite, y compris de manière automatique pour le nom de chaque carte.

En revanche, dans mon cas j'ai besoin de faire la réciproque ! Le nom des Cartes est une chaîne de caractères et la fonction dimage() attend comme paramètre un nom de variable. Je n'ai pas trouvé d'autre solution que de créer un dictionnaire qui, à un nom écrit sous forme d'une chaîne de caractères, associe un nom de variable. En fait, le nom de variable est le même que la chaîne de caractères mais sans les guillemets.

Ce qui ressemble à ça :
Code: Select all
def sansguillemet(carte):
  return {'Vsi':Vsi, 'Vtq':Vtq, 'Vsp':Vsp, 'Esi':Esi, 'Etq':Etq, 'Esp':Esp, 'Fsi':Fsi, 'Ftq':Ftq, 'Fsp':Fsp, 'Tev':Tev, 'Tvf':Tvf, 'Tfe':Tfe, 'Lum':Lum, 'Obs':Obs, 'Pio':Pio, 'Eau':Eau, 'Feu':Feu, 'Vent':Vent, "Reid_content":Reid_content, "Reid_content_yeux":Reid_content_yeux, "Reid_content_yeux_fermes":Reid_content_yeux_fermes, "Reid_neutre":Reid_neutre, "Reid_neutre_yeux":Reid_neutre_yeux, "Reid_neutre_yeux_fermes":Reid_neutre_yeux_fermes, "Reid_boude":Reid_boude, "Reid_boude_yeux":Reid_boude_yeux, "Reid_boude_yeux_fermes":Reid_boude_yeux_fermes, "Farah_contente":Farah_contente, "Farah_neutre":Farah_neutre, "Farah_neutre_yeux":Farah_neutre_yeux, "Farah_neutre_yeux_fermes":Farah_neutre_yeux_fermes, "Farah_boude":Farah_boude, "Farah_boude_yeux":Farah_boude_yeux, "Farah_boude_yeux_fermes":Farah_boude_yeux_fermes, "Meredy_contente":Meredy_contente, "Meredy_neutre":Meredy_neutre, "Meredy_neutre_yeux":Meredy_neutre_yeux, "Meredy_neutre_yeux_fermes":Meredy_neutre_yeux_fermes, "Meredy_boude":Meredy_boude, "Keele_content":Keele_content, "Keele_content_yeux":Keele_content_yeux, "Keele_content_yeux_fermes":Keele_content_yeux_fermes, "Keele_neutre":Keele_neutre, "Keele_neutre_yeux":Keele_neutre_yeux, "Keele_neutre_yeux_fermes":Keele_neutre_yeux_fermes, "Keele_boude":Keele_boude, "Titre":Titre}[carte]


L'affichage d'une carte est alors demandé avec la commande IMG(20,50,sanguillemet("Esp")) pour afficher la carte Eau spéciale, c'est-à-dire Prisme. :D

Un autre point qui ne me permettait pas de simplement retirer les guillemets de tous mes noms de carte est que la fonction animation qui s'occupe de l'animation des visages des personnages concatène des chaînes de caractères pour aller chercher la bonne image à afficher. Sans utiliser de guillemets, je ne sais pas comment réassembler ces morceaux de chaînes de caractères pour former un nom de variable pour ensuite aller chercher la bonne image. :(

La fonction IMG qui s'occupe de l'affichage des images comporte également un paramètre affichage qui permet de ne pas systématiquement afficher l'image générée. Lorsqu'on veut afficher l'écran de fin de manche ou de fin de partie, par exemple, il est souhaitable d'afficher l'image une fois que le visage des quatre personnages est généré, sans montrer l'affichage successif de chacun des visages. :)

Petite remarque : le module gint permet également d'importer une fonction getkey() pour la reconnaissance de l'appui sur les touches, mais son utilisation ne m'est pas du tout familière, contrairement à la fonction keydown du module ion de NumWorks. C'est donc cette dernière que j'ai utilisée. :)

Finalement, les versions Graph Math+ et Graph 90+E + PythonExtra de mon adaptation du jeu WHIS sont identiques pour ce qui est de la jouabilité et sont quasiment identiques visuellement, à réorganisation près des différents éléments affichés. En effet, le Python de la Graph Math+ donne accès à une zone graphique de 384×192 pixels tandis que PythonExtra utilisé sur la Graph 90+E donne accès à une zone graphique de 396×224 pixels (et il aurait été dommage de se priver de cet espace supplémentaire) ! :D

Ce qui nous donne donc, tout comme dans la version pour la Graph Math+ :
  • Un bel écran de titre au lancement du jeu.
    20261
  • Un jeu entièrement bilingue avec deux langues : français et anglais
    20262
  • Un écran d'accueil coloré qui montre quelques unes des cartes du jeu et qui propose d'en savoir plus sur les Cartes, d'en savoir plus sur les Règles ou de lancer une partie avec Jeu :).
  • Un menu Cartes qui montre chacune des 14 cartes du jeu et qui donne quelques explications les concernant
  • Un menu Règles qui explique les règles du jeu tout en présentant les cartes par élément.
    20257202582025920260
  • La possibilité de choisir le nombre de joueurs humains lorsqu'on lance une partie
    20269
  • La possibilité de choisir les personnages attribués aux joueurs humains, dans le cas d'un nombre compris entre 1 et 3.
    20269
  • Dans le cas du choix de 0 joueur humain, le choix d'afficher ou non les cartes de chacun des 4 joueurs gérés par la machine lorsque c'est son tour de jouer
  • Dans le cas d'un choix d'au moins 2 joueurs humains, la nécessité d'appuyer sur EXE pour afficher les cartes du joueur dont c'est le tour, pour plus de discrétion. :)
    20273
  • Un affichage simple sous la forme d'un cadre coloré qui entoure le visage et le score des personnages et qui indique de quel joueur c'est le tour de jouer (cadre violet) et ensuite s'il joue (cadre vert) ou pioche (cadre rouge) une carte.
    202742028720275
  • Un cadre rouge qui entoure la pioche et montre le nombre de cartes piochées.
    20276
  • Dans le cas de l'utilisation d'une carte Lumière, Obscurité ou Prisme, un menu de choix de l'élément demandé au joueur suivant.
    Ici, Farah joue une des deux cartes Lumière qu'elle a en main (la 2ème se voit à peine) puis choisit Feu. Ensuite, ses cartes sont redessinées et on voit la carte Lumière qu'il lui reste.
  • Un écran de fin de manche qui résume les scores de chaque joueur
  • Un écran de fin de partie qui résume, en couleurs, les scores obtenus par chaque joueur et qui propose de relancer une partie sans même devoir quitter le jeu. :D

20256Au fait, comment joue-t-on ?

  • On utilise les flèches gauche et droite pour sélectionner une carte ou l'élément demandé dans le cas de l'utilisation des cartes Prisme, Lumière ou Obscurité.
  • On valide avec EXE ou F1.
  • On pioche volontairement ou on passe son tour volontairement avec la touche Shift.

Et comment lance-t-on le jeu ?

Pour jouer à cette version spécialement améliorée, il faut d'abord copier l'add-in PythonExtra sur la Graph 90+E puis copier le script Python du jeu. Ensuite, depuis la calculatrice, il faut lancer PythonExtra puis aller chercher le script Python dans l'arborescence et le lancer.

Bon jeu ! :D


Téléchargements :
Link to topic: Le jeu WHIS sur la Casio Graph 90+E (Comments: 2)

-
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.
796 utilisateurs:
>766 invités
>22 membres
>8 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)