π
<-
Chat plein-écran
[^]

Démineur, Snake, et interface lancement jeux Python

Démineur, Snake, et interface lancement jeux Python

Message non lude Admin » 19 Avr 2020, 11:27

Les capacités Python de ta calculatrice NumWorks ont été fortement étendues dernièrement. :D

D'une part, la version 13.1.0 a introduit en Python un nouveau module ion permettant de tester les appuis de touches.
Cela devrait t'être fort 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.
Or depuis la version 13.2.0, le heap / tas Python de ta NumWorks a doublé, passant de 16K à 32K. :bj:

Dans un article précédent, cent20 et ses disciples se proposaient de t'illustrer ces nouvelles possibilités dans le cadre du développement de jeux Python, avec :
  • des graphismes que l'on peut désormais prendre le temps de soigner au pixel près sans craindre l'erreur de mémoire
  • et une bibliothèque offrant une interface de menu de lancement contrôlée intuitivement à l'aide des touches fléchées
Cette dernière bibliothèque est de plus réutilisable pour tes propres projets de jeu Python sur NumWorks, elle se charge d'absolument tout ce qui précède le lancement de ta partie. Il te suffit d'un simple appel à la fonction menu() en lui fournissant dans l'ordre :
  • titre du jeu
  • texte du bouton de lancement
  • des listes comportant un nom suivi de une ou plusieurs valeurs qui te permettent astucieusement de traiter par exemple :
    • aussi bien les choix disponibles pour une ou plusieurs options (difficulté, niveau de départ, ...)
    • que l'affichage d'une ligne d'aide avec les différentes touches de contrôle, défilables de la même façon qu'une option avec les touches fléchées
    • ou encore l'affichage des différents auteurs, là encore défilables de la même façon
La fonction te retourne alors automatiquement les valeurs choisies par l'utilisateur pour chaque option, tu n'as rien d'autre à faire ! :bj:

Voici par exemple la simple ligne d'appel qui produit l'interface ci-dessus :
Code: Tout sélectionner
mode, dif, bor = menu("SNAKE",
                      "Lancer la partie",
                      ["Mode", "Classique", "Dingue"],
                      ["Difficulté", "Moyen", "Difficile", " Extrême",
                        "Facile"],
                      ["Bordures", "Mortelles", "Téléportation"],
                      ["Commandes", " Nav: Flèches", "Menu: HOME",
                        "Rejouer: OK"],
                      ["Crédits","Arthur J.","Vincent R."])

12378Aujourd'hui, cent20 revient à son tout premier jeu NumWorks exploitant le nouveau module ion, le jeu du Démineur.

cent20 te met donc justement à jour ce Démineur avec cette nouvelle interface de lancement, te donnant ainsi accès beaucoup plus intuitivement à toute la richesse de gameplay offerte par les options !

Voici la ligne d'appel correspondante, regarde comme c'est simple : :)
Code: Tout sélectionner
mines, triche, graphisme, com, cre = menu("Démineur",
                                          "Lancer la partie [OK]",
                                          ["Mines", 16, 19, 22, 25, 28,
                                            31, 33, 36, 39, 42, 7, 10, 13],
                                          ["Mode Triche", "1 fois", "non",
                                            "oui"],
                                          ["Graphisme", "sobre", "classique"],
                                          ["Commandes", "Nav: Flèches",
                                            "Déminer: OK", "Drapeau: Retour",
                                            "Rejouer: Maison", "Triche: shift"],
                                          ["Crédits", "Site web$nsi.xyz/demine",
                                            "Auteur$Vincent Robert",
                                            "Contributeur$Bisam tiplanet.org",
                                            "Contributeur$Critor tiplanet.org",
                                            "Contributeur$Arthur Jacquin"])

Liens :

Téléchargements :
 
Ce compte ne reçoit pas de MP / This account does not receive PMs.
Avatar de l’utilisateur
AdminAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 1%
 
Messages: 459
Images: 28
Inscription: 30 Aoû 2011, 11:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Retourner vers News NumWorks

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 23 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1459 utilisateurs:
>1420 invités
>34 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)