Planète Casio - Tout le forum - Flux RSS http://www.planet-casio.com Programmes Casio, Jeux, Cours pour Calculatrices Casio fr-FR https://www.planet-casio.com/images/logo.gif Planète Casio - Tout le forum - Flux RSS http://www.planet-casio.com 55 50 Programmes Casio, Jeux, Cours pour Calculatrices Casio. Mon, 20 Sep 2021 18:01:36 GMT Mon, 20 Sep 2021 18:01:36 GMT contact@planet-casio.com (Planet Casio) contact@planet-casio.com (Planet Casio) 5 La Revue des Projets – 217 https://www.planet-casio.com/Fr/forums/topic16888--.html Bonsoir à toutes et à tous ! On se retrouve pour l'éternelle Revue des Projets, pour présenter ce soir de petites avancées sur des grands chantiers ! Il fait pas beau en ce moment, vous trouvez pas ? On a eu une assez belle rentrée – que ce soit aussi bien sur un plan météorologique que évènementiel. En effet, lors la semaine dernière a été lancé le concours de rentrée annuel, que je vous invite fortement à regarder. Au programme, les deux épreuves traditionnelles, j'ai nommé l'optimisation d'itinéraire et la création d'IA – m'enfin pourquoi changer une équipe qui gagne, me direz-vous ? À la clé, de nombreux lots, et il n'y en aura pas pour tout le monde. Lancez-vous ! En piochant dans la liste des mentions de la RdP, nous n'avons qu'un seul post, de Dark Storm et d'Eragon. Mais pas des moindres, car ils nous annoncent en effet l'avancée sur un pont entre la shoutbox et l'IRC de la v5, à la manière du pont shoutbox <-> Discord de TI-Planet. Le code est déjà fonctionnel, en voici la démonstration : https://www.planet-casio.com/storage/forums/Capture-184408.png https://www.planet-casio.com/storage/forums/Screenshot%202021-09-10%20at%2014-51-44%20hs%20-%20PCshoutbox%20%C2%B7%20Plan%C3%A8te%20Casio-184409.png Ça semble être entièrement fonctionnel, ma foi ! Parfait pour les petits loups qui préfèrent rester sur les recoins sombres d'IRC... Je ne donnerai pas de nom. Selon Dark Storm, il resterait de petites améliorations à effectuer pour améliorer la lisibilité et ne pas gêner ni les utilisateurs de la shout, ni les utilisateurs d'IRC. Bonne chance à vous deux ! :) Nous continuons ensuite dans le domaine obscur de la chasse aux posts cachés surgis de nulle part. Tiens on va embêter Lephenixnoir qui poste sur CGDoom sans tagguer la RdP >:) Pour rappel, CGDoom, c'est ce tout petit programme, adapté par Lephenixnoir, d'après le travail de Martin poupe : https://www.planet-casio.com/storage/staff/CGDOOM-Graph90-1.mp4 Lephenixnoir continue toujours tranquillement son port de CGDoom sur Graph 90+E, avec l'aide de Computer_Freak_2004, dans des posts ultra-longs en anglais assez chiants à lire sur Cemetech. Voici un petit changelog résumant les dernières nouveautés apportées : Plein d'effets graphiques rétablis Le menu principal est de retour (avec les démos si on veut, mais elles ne sont pas pour la même version du jeu donc elles meurent vite) Les WADs avec les épisodes individuels d'Ultimate Doom ont été revisités et allégés (-1 MB ou -2 MB en moyenne) En utilisant la mémoire de la puce 8 Mo de la Graph 90+E (autorisé sur OS ≤ 3.60 pour éviter les mauvaises surprises dans le futur), mémoire infinie donc plein de jeux marchent : le shareware, Ultimate Doom, Doom II, on peut même viser Heretic et quelques autres (là il reste des bugs, ça vient). Quelques améliorations de performance Sauvegarde/restauration de partie (le jeu quitte après une sauvegarde, et bien sûr il ne faut recharger la partie qu'avec le même WAD) TL;DR : Harder, Better, Faster, Stronger— On attend le label de qualité, hein :) Pour finir, on va parler du Casio Basic Web Interpreter de Kevro_, qui se paye le luxe d'être mis à jour. Pour rappel, le CBWI (permettez-moi de l'appeler ainsi) est un outil permettant de lire du code en Basic Casio directement sur navigateur, ni plus, ni moins. Il s'est illustré récemment durant la 1KBCJ#5 avec la participation de Ptitjoz avec son jeu Dynamite, l'utilisant. Au programme de cette mise à jour, quelques petites améliorations. L'instruction `Menu` est à nouveau fonctionnelle, et des petits boutons pour insérer des caractères spéciaux ont été ajoutés, à la manière de Planète Casio. Enfin, le code et les librairies utilisées ont été mises à jour. Merci de prendre encore soin de ce projet Kevro_, et bonne continuation :) Pas vraiment un projet, mais Casio a publié récemment la mise à jour 3.50/3.60 de son OS, ajoutant une toute nouvelle application, Probabilités. Je vous invite à lire la news dédiée. https://www.planet-casio.com/storage/staff/prob-g90pe-lois.pngY'a écrit poisson alors c'est forcément cool, nan ? Sur ce, je vous souhaite une excellente fin de soirée ainsi qu'une bonne semaine. Et en espérant qu'il fasse plus beau, non mais... À bientôt ! Aucun programme n'a été posté depuis la dernière RdP. Lire la RdP précédente : La Revue des Projets – 216 Besoin d'aide ? Une idée ? Un projet ? Un article ! Sun, 19 Sep 2021 18:48:05 +0200 Exam Mode on Version 2.05 https://www.planet-casio.com/Fr/forums/topic16887--.html Hello. Recently, I have flashed a Casio fx-9750GII with a fx-9860GII file. I was flashing version 2.05. Version 2.05 had Exam Mode. Also it turns off Exam Mode after 12 hours. Press Alpha+(-) to see the elapsed time. Sun, 19 Sep 2021 02:31:39 +0200 Nouveau menu Probabilités (mise à jour 3.50/3.60) https://www.planet-casio.com/Fr/forums/topic16886--.html CASIO a publié il y a un peu plus d'une semaine une nouvelle mise à jour de l'OS avec un menu Probabilités. La mise à jour est disponible en téléchargement : Pour Graph 90+E (OS version 3.60) : Windows et Mac Pour Graph 35+E II (OS version 3.50) : Windows Pour simulateurs USB : Graph 35+E II ou Graph 90+E Tutoriel détaillant l'installation sur le site de CASIO La nouvelle fonctionnalité dans cette version c'est donc cette application de probabilités, à l'aide de laquelle on peut calculer des propriétés des lois de probabilité classiques sans avoir à passer par les fonctions classiques comme `BinomialCD()` ou `InvNormCD()` qui sont un peu obscures à trouver et dures à retenir. ;) prob-g35pe2-menu.png prob-g90pe-menu.png Le menu principal permet de choisir la distribution à étudier, avec les options habituelles : Loi binominale (discrète, somme de Bernoulli) Loi normale (continue) Loi de Poisson (discrète, sans mémoire) Loi géométrique (continue, sans mémoire) Loi hypergéométrique Loi de Student Loi du χ² Loi de Fisher prob-g35pe2-lois.png prob-g90pe-lois.png Une fois la loi sélectionnée, on peut entrer les paramètres et indiquer le type de requête qu'on veut : P(X ≤ ...), P(... ≤ X ≤ ...), ou P(X ≥ ...) principalement. Pour les lois discrètes on peut aussi chercher P(X = ...). prob-g35pe2-options1.png prob-g90pe-options1.png Par exemple pour cette loi normale centrée réduite, je cherche la probabilité de tirer une valeur qui est dans un écart-type autour de la moyenne (un résultat très classique et qui ne dépend pas des paramètres de la loi normale). Quand on lance l'exécution, on obtient un graphe de la loi, la zone concernée par la requête, et le résultat : environ 68%. ;) prob-g35pe2-graphe1.png prob-g90pe-graphe1.png On peut faire pareil avec une loi discrète, par exemple une loi binomiale. Ici je cherche la probabilité d'avoir entre 47 et 53 pile dans une série de pile ou face, et le résultat est environ 52%. prob-g35pe2-options2.png prob-g90pe-options2.png prob-g35pe2-graphe2.png prob-g90pe-graphe2.png Voilà le genre de choses qu'on peut faire avec cette nouvelle application. Personnellement j'aime beaucoup (et je m'en servirai occasionnellement même si je ne suis plus au lycée !) parce que je n'arrivais jamais à me souvenir exactement de la disposition des anciennes fonctions dans le menu à onglets ni de l'ordre et le sens de leurs arguments. ^^ À bientôt sur Planète Casio ! ;) Sat, 18 Sep 2021 14:00:59 +0200 La Graph 35+ E II, peut-ton bien la bidouiller? https://www.planet-casio.com/Fr/forums/topic16884--.html Yo :) , alors voilà pendant mon après-midi j'ai testé pas mal de jeux sur la Graph 35+ E II (et je savais pas que 2 chiffres pouvais tout changer) J'en ai testé pas mal (add-in) et soucis, 3/4 avait ce bug que je comprends pas trop, l'écran qui freeze et un genre de balayement écran super lent, j'ai vu que y'avais un rapport avec "MonochromeLib" donc je sais pas trop.. Alors voila j'ai vu pas mal de gens qui parlait de rendre une 35+ en 75+ ou je sais pas trop quoi, pour rendre compatible certaines choses etc... Si quelqu'un peut m'expliquer qu'est-ce que je peux faire sur cette calculette? Si y'a de l'optimisation à faire, changer de firmware ou autres trucs comme ça je suis chaud pour essayer Wed, 15 Sep 2021 23:10:48 +0200 Aide Add-in Casio Graph 35+ E II https://www.planet-casio.com/Fr/forums/topic16883--.html Bonjour, bonsoir Mon lycée ma demandé de me procurer une Graph 35+ E II y'a pas trop longtemps, ce matin j'ai essayé de mettre quelques jeux dessus (j'ai découvert le site y'a 3heures) J'ai vu que la calculatrice avait des "Add-in", alors à ce que j'ai vu ça a l'air d'être une genre d'extension? pour lancer des programmes en C et C++? Désolé je m'y connais vraiment pas donc je suis vraiment pas sur de ce que je dis :/ Le problème c'est que j'ai complétement formaté la calculatrice et que dans mon ignorance j'ai supprimé les add-ins, il y a t-il donc un moyen de remettre ces add-ins (et si c'est possible de les mettres est-ce qu'on peux lancer les jeux C, C++ comme Jetpack Joyride?) Bonne soirée :) Wed, 15 Sep 2021 17:57:23 +0200 Ajouter un lecteur de carte SD a la graph 75+E https://www.planet-casio.com/Fr/forums/topic16882--.html Bonjour a tous, Voila un moment que l'idée me trotte en tête. Certains modèles de graph 75/fx9860 possèdent des lecteurs de cartes SD. (Les fx9860 modèles ga et gb sont trop différentes de la graphe 75+ pour être intéressant.) Le PCB de la graph 75 + E possède les emplacements pour souder la nappe du lecteur de carte. Malheureusement je n'ai pas trouvé de photo me permettant de voir en détail le PC du lecteur de carte et les composants manquants qui permettent de l'utiliser. C'est pourquoi je fait un appel a photo et documentation sur ces fx9860. Si vous en avez une sous la main, j'aimerais avoir quelques photos de ses entrailles. Je voudrait voir les variantes du matériel et des PCB en fonction de la génération de la calculatrice. Et si vous avez une calculatrice avec le lecteur de carte… signalez vous ! Je vous demanderais plus des photos détaillés du lecteur de carte, du PCB principal… et plus encore. Je vous laisse avec quelques photos de la graph 75/fx9860 en provenance directe de la bible. fx9860 g2 https://bible.planet-casio.com/common/hardware/screens/fx9860_g2/1.jpg fx9860 g3 https://bible.planet-casio.com/common/hardware/screens/fx9860_g3/1.jpg fx9860 g3s (Le modèle le plus proche de nos graph 75 + E) https://bible.planet-casio.com/common/hardware/screens/fx9860_g3s/1.jpg Tue, 14 Sep 2021 14:03:50 +0200 Problème de lecture sur Graph 35+ USB https://www.planet-casio.com/Fr/forums/topic16881--.html Bonjour à tous ! J'ai un problème pour rentrer des formules dans ma calculette Graph 35+ USB. Je m'explique : une fois que ma Casio est connectée par le biais de FA-124, je « copie » les programmes enregistrés sur ma Casio, vers l'écran de droite de FA-124. Une fois ceci fait, j'ouvre le dossier dans lequel je veux enregistrer de nouvelles formules. Mais lorsque je les tape... les lettres et chiffres que j'entre sont remplacés par des dessins divers... Quelqu'un a-t-il une idée de ce qui se passe et comment régler ce problème ? Merci d'avance de votre aide. (Pour info, j'ai FA-124 sous Windows XP.) Tue, 14 Sep 2021 10:54:17 +0200 Gérer et éviter les Erreurs Math d'une fonction https://www.planet-casio.com/Fr/forums/topic16880--.html Mon tout premier "tuto" ! :) Vous en avez marre que la calculatrice renvoie à tout bout de champ une Erreur Math en Basic Casio, que ce soit une division par 0 ou un dépassement arithmétique ? Alors lisez ce qui suit ! Il est en effet possible de s'affranchir de ces erreurs, et pour cela un peu de programmation pré-traitement est nécessaire. Finis les programmes qui s'arrêtent sans prévenir ! Par souci de compréhension, la lettre Y fera référence à toute fonction pour laquelle on ne voudrait plus avoir de message d'erreur. À ce jour, je connais 3 fonctions Basic Casio gérant les Erreurs Math sans nous déranger (et oui, j'allais quand même pas partir de rien :p ) - et pour lesquelles il serait possible de déduire en quels points Y ne pose pas problème : Les fonctions du menu Sketch, traçant les graphiques La fonction SolveN() Les fonctions de récurrence Je ne continuerai ce tutoriel qu'avec les fonctions de récurrence, étant la solution la plus rapide, viable, efficace, et de loin. Par contre, cela nous contraint en une chose : il est absolument nécessaire d'utiliser les chaînes de caractères (Strings) - vu depuis le temps qu'elles existent sur Casio il ne devrait pas y avoir de problème ^^ . Ça peut sûrement vous surprendre, mais il existe dans les fonctions de récurrence un moyen d'entrer une fonction tout à fait normale, ne contenant pas d'appel à ses précédantes valeurs... Non seulement je pense que le tutoriel est plutôt intéressant, mais peut-être la récurrence est trop peu connue par les utilisateurs Casio ? Dans ce tutoriel-ci, je montrerai seulement comment éviter les erreurs de dépassement arithmétique (≥1ᴇ100). Une fois cette méthode comprise, il est plutôt facile de la modifier un peu afin de gérer les éventuelles divisions par 0 ;) . Bon j'en ai marre de parler, donc essayez d'avaler ça pour voir >:) anType 0→R Start 209→R End R SelOn an //Y étant stockée dans la première chaîne de caractères, et supposant que l'abscisse de Y est la variable X StrLen(Str 1)→A StrSrc(Str1,"X" While Ans StrLeft(Str 1, Ans-1) + "(S^n)" + StrRight(Str 1, A-Ans→Str 1 A+4→A StrSrc(Str1,"X" WhileEnd Str 1→an 3→S DispR-Tbl R Result Dim Mat Ans S^Mat Ans[List Ans[1],1 //Ans est maintenant l'abscisse maximale pouvant être donnée à Y Les "n" présents dans ce code sont des caractères spéciaux ! Sélectionnez bien "n(RECUR)" dans votre catalogue de fonctions (+[4]) ! Ce serait bête de se tromper, surtout qu'il y a 4 différents "n" en Basic Casio.... Un peu trop brut ? Bon d'accord je veux bien expliquer tout ce que nous avons là :lol: - Tout d'abord, il faut savoir que les fonctions de récurrence calculent tout d'une traite, et les résultats peuvent être enregistrés dans une matrice. Il est donc obligatoire de fixer les bornes au préalable. La fonction de récurrence que nous allons construire se trouvera dans an, mais peut aussi se trouver dans bn ou encore cn. À noter que R Start et R End sont des caractères spéciaux, malgré l'espace qu'ils contiennent chacun. R SelOn an est quant à lui composé de 2 caractères spéciaux : "R SelOn " et an. Je vous recommande franchement de désélectionner bn et cn si ce n'est déjà fait (R SelOff ), et par la même occasion de désactiver la somme des éléments (ΣdispOff). Le poids utilisé par les récurrences monte très vite, et le code ci-dessus utilise déjà 10 ko, 5 ko dans l'application "RECUR" et 5 ko - ou moins, en fonction de si Y a un dépassement arithmétique ou non - dans Mat Ans. La phase "d'initialisation" est terminée ;) - Malheureusement, les fonctions de récurrence renvoient une Erreur Syntaxe si on fait un appel à une fonction graphique (par ex "Y1(n)"). On doit donc changer tous ces X par la variable n. Lors du calcul des images d'une onction de récurrence, il faut aussi savoir que le pas des abscisses (n) est fixe, et vaut 1. Imaginez le nombre d'entrées dans un tableau nécessaires pour arriver à l'abscisse 9ᴇ99 ! Tout simplement impossible. De plus, vu qu'on aimerait avoir l'abscisse maximale avant que Y ne donne d'erreur de dépassement arithmétique, il serait judicieux d'avoir une plus grande précision pour des petites abscisses que pour les grandes (10^X donne une erreur à partir de 100, ce serait mieux dans un cas comme celui-ci de s'en rapprocher le plus). Voilà pourquoi une progression exponentielle est intéressante ! La base choisie est arbitraire, et dépend aussi de la borne supérieure R End. Je ne m'attarde pas plus sur le code pour remplacer les "X" par des "(S ^ n)". Une seule chose à noter ici : ce remplacement pourrait changer l'ordre des opérations de Y ! Ajoutez donc bien des parenthèses dès qu'il y a ambiguïté ! C'est un cas assez spécifique, mais ça l'est si Y possède une multiplication sans opérateur explicite. Par exemple "Int 10X" - 10X sera d'abord calculé, et ensuite Int - donnera "Int 10(S ^ n)", et cette fois-ci la calto verra ce calcul comme suit : "(Int 10) * (S ^ n)". Autant dire que ce n'est pas exactement ce que vous vouliez... Comme quoi des parenthèses peuvent sauver la mise :D - DispR-Tbl va calculer absolument tous les points. N'hésitez pas à ajouter un Disp juste après cette instruction (◢), et vous verrez une matrice pouvant contenir des éléments "ERROR" dedans. Voilà donc l'utilité de la prochaine instruction : R Result. Elle transforme le précédant tableau en matrice en enlevant tous les éléments "ERROR". S'il n'y a que des "ERROR" dans ce tableau, la matrice ne pourra être créée et une Erreur Dimension sera renvoyée. Il ne nous reste plus qu'à obtenir l'abscisse maximale que la fonction de récurrence a réussi à passer, et vous obtenez maintenant un seuil à ne pas dépasser lors de votre étude de fonction - ou que sais-je 0_0 . Une précision d'un facteur 3 peut vous paraître trop grande - et à moi aussi - , j'ai donc essayé de pousser le bouchon à la précision maximale que je pouvais avoir : une base 1.26 avec une borne supérieure R End valant 996 (une Erreur Plage serait renvoyée si R End ≥ 1000). Mais 38 ko libres n'ont pas l'air de suffire :oops: Pour ceci je vous conseillerais donc (si vous voulez être plus précis) de redéfinir les bornes et de réitiérer grâce à la dernière abscisse maximale acceptée. Comme vous l'aurez compris, cette méthode sert à éviter les Erreurs Math, mais peut passer par dessus une erreur ponctuelle sans s'en rendre compte - comme une division par 0. Certains points de ce tutoriel peuvent être bien évidemment superflus - tout comme des fonctions Basic Casio - et par conséquent n'hésitez vraiment pas à poser des questions, ou même écrire vos commentaires ;) En espérant que tout ceci est pu au moins être intelligible, merci de votre lecture ! Mon, 13 Sep 2021 00:22:25 +0200 Un graph complètement buggé 90+E https://www.planet-casio.com/Fr/forums/topic16879--.html Bonsoir, Le problème est sur la photo ci-joint. Sur la fonction GRAPH(5) de la calculatrice, il y a un gros bug de graph. Il y a des sortes de meubles en font, le quadrillage a disparu. Je ne comprends rien, la calculatrice a déjà été réinitialisé. Merci d'avance Sun, 12 Sep 2021 21:50:09 +0200 Concours de rentrée 2021 - Synchro-donjon ! https://www.planet-casio.com/Fr/forums/topic16878--.html Bienvenue au concours de rentrée 2021 organisé par TI-Planet et Planète Casio ! :D concours-rentree-2021-front.png Dans l'article introductif de l'événement, nous racontions comment tu as trouvé dans une brocante une console étrange avec deux cartouches. La deuxième de ces cartouches contient un jeu qui s'appelle Synchro-donjon. Le but de Synchro-donjon est de conquérir le plus rapidement possible le donjon du Cirque des Monts Pleureurs, un donjon situé au Nord-Ouest du royaume d'Alrys et que tu peux voir de l'extérieur en jouant à La geste d'Alrys, l'autre jeu de ce concours. Dans ce jeu, il y a quatre joueurs qui commencent dans les coins : Jaune, Rouge, Bleu et Vert. Le but est de traverser le donjon aux joueurs pour les faire sortir par leurs sorties respectives (sur le côté opposé du plateau). ;) concours-rentree-2021-synchrod-principe.png Il y a de nombreux étages au donjon, et chacun est différent et imprévisible - c'est pour ça que le donjon est difficile à conquérir. Pour permettre au héros de continuer son aventure dans le monde d'Alrys, tu devras donc user d'ingéniosité et programmer ta calculatrice pour décider des actions à effectuer à chaque étage. En somme, ta tâche est d'écrire une IA pour Synchro-donjon ! :bounce: Dans cet article je vais te présenter les règles du jeu. Mais je peux déjà te dire ce qui rend ce jeu est intéressant : comme tu n'as qu'une calculatrice branchée, la console pense que tu veux contrôler les 4 joueurs d'un coup, et donc toutes tes actions s'appliquent à tous les joueurs en même temps ! Coordonner tout ce beau monde est la difficulté de ce donjon. Bien sûr, tu ne seras pas tout seul dans cette tâche, et plusieurs IAs te seront présentées pour t'aider à prendre en main le jeu ainsi que le code Python nécessaire pour écrire ton IA. Tu peux aussi joueur au jeu directement sur ta calculatrice pour te familiariser. ^^ Règles du jeu Le donjon est un plateau de 8 lignes et 16 colonnes. Les bords sont constitués de murs et des sorties. Les 4 joueurs commencent dans les coins et chacun doit atteindre sa sortie. Sur leur chemin, on trouve : Des pics, qui font des dégâts si un des joueurs marche dessus. Des monstres, qui font aussi des dégâts si un joueur les croise, mais qui sont vaincus durant le combat. Il est aussi possible de les attaquer à distance et le vaincre sans prendre de dégâts. Des pièges, qui produisent des effets aléatoires et souvent imprévisibles : soit ils infligent des dégâts, soit ils font apparaître d'autres pics/pièges ailleurs dans le donjon. Les pics, monstres, et pièges violets affectent tous les joueurs. Ceux qui sont jaunes, rouges, bleus ou verts n'affectent pas le joueur correspondant (donc ils affectent tout le monde sauf le joueur qui partage leur couleur). À chaque tour, tu disposes de 5 actions possibles : Les 4 actions `ALLER_GAUCHE`, `ALLER_DROITE`, `ALLER_HAUT` et `ALLER_BAS` indiquent aux joueurs de se déplacer. Tout le monde effectue le même mouvement. Un joueur qui est bloqué par un mur ne se déplace pas. Si un joueur marche sur des pics, il prend des degâts ; s'il marche sur un monstre, il tue le monstre mais prend des dégâts ; s'il marche sur un piège, le piège est activé. L'action `ATTAQUER` indique aux joueurs d'attaquer les objets autour d'eux sans se déplacer. Tous les monstres à côté des joueurs sont détruits, et le joueurs ne prennent pas de dégâts. Cependant, tous les pièges à côté des joueurs sont également activés ! Au début du jeu, tu as 150 points. À chaque tour tu perds 1 point, et à chaque fois qu'un joueur prend des dégâts tu perds 10 points. S'il te reste des points quand tous les joueurs sont sortis alors ces points sont ajoutés à ton score. Dans Synchro-donjon, ton IA jouera sur un grand nombre de plateaux et le score de tous les plateaux s'ajoutent pour former ton score final. ;) Installation et utilisation du programme Synchro-donjon peut être installé sur les modèles suivants et sur PC. Le jeu est compatible avec un nombre impressionnant de modèles, allant jusqu'à la TI-82 Advanced Édition Python ! Ce résultat est possible grâce à la bibliothèque `polycal4.py` ainsi que des heures de compression investies par Critor. Les fichiers `polycal4.py` et `polyfont.py` sont identiques à ceux de La geste d'Alrys, l'autre jeu du concours. Tu n'as besoin de les transférer qu'une fois pour les deux problèmes. ;) Tu peux jouer toi-même interactivement en lançant `synchrod.py`. Quand tu auras une IA (un modèle est donné plus bas dans cet article), tu pourras faire jouer l'IA en lançant ton fichier Python. ^^ Trois IAs sont fournies avec le programme : `ia1_ask.py` qui est le squelette présenté plus bas, mais aussi `ia2_path.py` et `ia3greed.py` qui sont deux IAs plus évolées qui te seront présentées en détail plus tard durant le concours pour t'aider. :D Graph 35+E II et Graph 90+E : Télécharger les scripts Transfère `synchrod.py`, `polycal4.py` et `polyfont.py` dans la mémoire de stockage. Dans le mode interactif, tu dois appuyer sur AC/ON pour saisir tes actions dans la console. :here: Tutoriel de transfert de fichiers :here: Tutoriel d'overclocking :here: Émulateurs : Graph 90+E version 3.50 (Windows, Mac), Graph 35+E II version 3.40 (Windows) HP Prime : Télécharger l'application Installe directement l'application `SynchroD.hpappdir.zip`. Tu peux basculer entre la vue `Symb` pour modifier le script et la vue `Num` pour l'exécuter. :here: Logiciel HP Prime Virtual Calculator version 14592 (Windows 64 bits, Windows 32 bits) :here: Logiciel de transfert (Windows 64 bits, Windows 32 bits, Mac) :here: Tutoriel de transfert https://thumbs.gfycat.com/DelectableSilverAsiantrumpetfish-mobile.mp4 TI-Nspire CX et TI-Nspire CX II : Télécharger le classeur CX II ou les scripts pour KhiCAS Pour le classeur (CX II uniquement), transfère le fichier dans un dossier de ton choix, sélectionne-le avec `Ctrl →` et lance le avec `Ctrl R`. Fais de même pour le script de ton IA. La vidéo ci-dessous à gauche te détaille la procédure de lancement. Pour les scripts KhiCAS, transfère-les dans le dossier `/Xcas/` créé au premier lancement de KhiCAS, puis exécute soit `synchrod.py` soit ton IA en mode MicroPython. La vidéo ci-dessous à droite te détaille la procédure de lancement. :here: Pour le support Python via KhiCAS : Ndless et KhiCAS :here: Overclocking : Nover (Ti-Nspire CX), NoverII (TI-Nspire CX II) :here: Simulateurs : TI-Nspire CX CAS et TI-Nspire CX version 5.3.2 (Windows, Mac) :here: Logiciel de transfert : TiLP-II version 1.18 (Windows, Mac, Linux) https://thumbs.gfycat.com/FluffyPossibleJohndory-mobile.mp4 https://thumbs.gfycat.com/SillyHoarseLarva-mobile.mp4 TI-82 Advanced Edition Python : Télécharger les scripts Il te suffit de transférer le fichier `synchrod.py` (ainsi que les IAs de ton choix) puis de les lancer dans l'application Python. https://thumbs.gfycat.com/TightKlutzyAegeancat-mobile.mp4 TI-83 Premium CE et TI-84 Plus CE : Édition Python ou Adaptateur TI-Python Transfère `synchrod.py` accompagné de `SynchroD.b83` (TI-83 Premium CE) ou `SynchroD.b84` (TI-84 Plus CE). Transfère auss ton IA. Ensuite lance l'application Python et lance le script `synchrod.py` ou ton IA. Les vidéo ci-dessous te montrent la démarche pour lancer le programme. Celle de gauche concerne les anciennes TI-83 Premium CE et TI-84 Plus CE(-T) avec leur adaptateur TI-Python. Celle de droite concerne les TI-83 Premium CE Édition Python ainsi que les TI-84 Plus CE-T Édition Python et TI-84 Python. https://thumbs.gfycat.com/AccurateNarrowIchthyostega-mobile.mp4 https://thumbs.gfycat.com/ExcitableQuaintGlowworm-mobile.mp4 Numworks : Télécharger le script ou IDE en ligne Oméga Il te suffit de transférer et lancer `synchrod.py`. En raisons des limites de mémoire sur ce modèle, l'IA est incluses dedans, et tu peux la modifier et la soumettre sous cette forme. La mémoire limitée à 32 ko sur ce modèle risque de te freiner dans tes essais d'IA. Pour éviter ça, nous te conseillons d'installer un firmware tiers comme Oméga ou Khi pour disposer de 100 ko de mémoire. Le simulateur en ligne est tout aussi limité en plus d'être lent. Nous te conseillons plutôt le simulateur Oméga. :here: Transfert direct de fichiers avec WebUSB :here: Version dans le workshop Numworks (attention, peut geler le navigateur ; utilise plutôt l'IDE en ligne Oméga !) https://thumbs.gfycat.com/MediocreGrimDormouse-mobile.mp4 Ordinateur : Télécharger les scripts Si tu n'as pas de modèle compatible, tu peux aussi tester le programme sur ordinateur. C'est le programme original accompagné de `polycalc_sdl2.py`, une extension de `polycal4.py` qui permet de jouer sur un ordinateur. Tu auras besoin du module PySDL2 pour l'utiliser. Fonctionnement du plateau de jeu Le plateau de jeu contient 8 lignes et 16 colonnes, et est codé dans une liste Python de 8×16 = 128 entiers. Chaque élément de la liste indique l'état d'une case du plateau, et ils sont arrangés dans cet ordre : concours-rentree-2021-synchrod-board.png Si tu préfères numéroter les cases en lignes/colonnes, tu peux utiliser la méthode suivante. ;) Les lignes sont numérotées de `Y=0` (ligne du haut) à `Y=7` (ligne du bas). Les colonnes sont numérotées de `X=0` (colonne de gauche) à `X=15` (colonne de droite). La case sur la ligne `Y` et la colonne `X` a pour valeur `V`=`16*``Y``+``X`. La case de valeur `V` est sur la ligne `Y``=V//16` et sur la colonne `X``=V%16`. Chaque élément de la liste est une des valeurs suivantes : `VIDE`, `MUR`, `PICS`, `MONSTRE`, `PIEGE` ou `SORTIE`. En plus de ça, il peut y avoir une couleur : `JAUNE`, `ROUGE`, `BLEU`, `VERT` ou `TOUS` (violet). Le tableau ci-dessous résume les combinaisons : concours-rentree-2021-synchrod-tiles.png Sur les calculatrices monochromes, les couleurs sont remplacées par les symboles ci-dessous : concours-rentree-2021-synchrod-joueursmono.png Sur la TI-82 Advanced Édition Python, le jeu est entièrement en mode texte, et les caractères suivants sont utilisés : Les joueurs sont les symboles `¶` Les pics sont les trois-points `…` Les monstres sont les symboles `¥` Les pièges sont les symboles `Ø` Fonctionnement de l'IA L'IA de ton programme doit être un fichier Python avec une fonction pour décider ce qui doit se passer à chaque tour (ou, sur Numworks, une fonction Python intégrée à `synchrod.py`). Le squelette de base est le fichier `ia1_ask.py` : from polycal4 import get_infos from synchrod import * def tour(plateau, joueurs, evenements): # Demander une action avec input() return demander_action() play_game(tour) Les deux premières lignes importent les fonctions de Synchro-donjon. Évidemment, il est interdit d'accéder aux variables internes du script ou de modifier les valeurs identifiant les éléments de la map. :p La fonction `tour()` est ton IA. Elle est appelée à chaque tour du jeu avec trois paramètres et doit renvoyer une action à accomplir. `plateau` est la liste de 128 cases représentant le plateau de jeu (que tu ne dois pas modifier évidemment). `joueurs` est une liste de 4 éléments indiquant la position des 4 joueurs sur le plateau. Tu peux utiliser soit le style `joueurs` soit le style `joueurs[1]` selon tes préférences. Pour les joueurs qui sont encore sur le plateau, la position est un entier entre 0 et 127. Pour ceux qui sont déjà sortis, la valeur spéciale `-1` est utilisée. `evenements` est une liste d'événements qui se sont produits depuis le tour précédent. Les événements sont utiles dans des scénarios un peu rares. Chaque élément de la liste peut être égal à : `(-1,-1,NOUVELLE_PARTIE,-1)` si une nouvelle partie vient de commencer. `(<x>,<y>,PIEGE_APPARU,<joueur>)` si `<joueur>` a activé un piège qui a fait apparaître un nouveau piège à la ligne `<y>`, colonne `<x>`. `(<x>,<y>,PICS_APPARU,<joueur>)` si `<joueur>` a activé un piège qui a fait apparaître des pics à la ligne `<y>`, colonne `<x>`. La fonction `tour()` doit choisir et renvoyer une action parmi `ALLER_GAUCHE`, `ALLER_DROITE`, `ALLER_HAUT`, `ALLER_BAS` et `ATTAQUER`. Lorsque l'IA remporte la partie, une nouvelle partie commence automatiquement. Outils pour écrire ton IA `synchrod.py` fournit plusieurs outils pour t'aider à écrire ton IA, spécifiquement 4 fonctions. La fonction `demander_action()` donne la main au clavier de la calculatrice pour choisir la prochaine action. Sur les modèles où l'on peut saisir au clavier, les touches directionnelles, entrée et retour sont utilisées. Sur les autres (notamment CASIO), il faut appuyer sur AC/ON pour revenir à la console() et taper un chiffre. La fonction `est_un()` permet d'identifier les pics, monstres, et pièges indépendamment de leur couleur. Par exemple un piège vert est un piège mais pas un monstre, donc `est_un(PIEGE+VERT, PIEGE)` vaut `True` mais `est_un(PIEGE+VERT, MONSTRE)` vaut `False`. De façon similaire, la fonction `affecte()` permet de déterminer si des pics, monstres ou pièges affectent un joueur. Par exemple, les pics violets affectent Jaune mais pas les pics jaunes, donc `affecte(PICS+TOUS, JAUNE)` vaut `True` mais `affecte(PICS+JAUNE, JAUNE)` vaut `False`. Enfin, il y a une fonction `calculer_chemin(<plateau>, <début>, <fin>)` qui calcule en chemin entre la case `<début>` et la case `<fin>` et renvoie une liste de directions (`ALLER_*`). C'est un outil très utile et assez puissant, qui sera expliqué plus en détail avec une des IAs d'exemple. ^^ Utilisation de `play_game()` La fonction `play_game()` appelée à la fin du programme lance la simulation du jeu. Elle a plusieurs paramètres que tu peux modifier à loisir pour améliorer ton IA : `blind=True` peut être ajouté pour désactiver l'affichage du plateau de jeu et ne laisser que la console (ce qui va en général beaucoup plus vite). `seed=<nombre>` peut être ajouté pour tester un plateau particulier. La valeur indiquée permet en effet de contrôler le générateur aléatoire. `maxgames=<nombre>` permet de choisir le nombre de parties (par défaut 100). À chaque fois que tu gagnes une partie, `play_game()` affiche deux lignes sur la console : #0: 12648430 Bravo! 39T 50D -> 61 `#0` est le numéro de la partie (ça va jusqu'à `maxgames`). Le nombre à droite, `12648430`, est la graine aléatoire. Si tu demandes `seed=12648430` tu retomberas exactement sur ce plateau (ce qui est utile si ton programme a une erreur que tu veux retester). Sur la ligne du bas, le nombre devant `T` est le nombre de tours passés sur la plateau, le nombre devant `D` est la quantité de dégâts que tu as subis, et le résultat est ton score (`150-T-D`). Si ton score est négatif il compte pour 0. À la fin de la partie, `play_game()` affiche le nombre de parties jouées et ton score final. Par exemple : Games solved: 100 Score: 2171 Pour participer au concours Pour participer à l'épreuve de Synchro-donjon, envoie ton fichier .py d'IA (ou ton script `synchrod.py` modifié sur Numworks) par courriel à `contact@planet-casio.com` avant le Dimanche 7 Novembre à 23:59 avec : Pour sujet, Synchro-donjon ; Un moyen de te contacter rapidement en cas de gain ou de question (adresse courriel, téléphone, compte social, compte discord, etc.) ; Ton pseudonyme sur TI-Planet ou Planète Casio (optionnel) ; Pour pouvoir recevoir ton lot, ton adresse postale avec nom et prénom, et un numéro de téléphone personnel valide. (Tu peux les communiquer plus tard si tu souhaites.) Les informations personnelles transmises pendant ce concours ne seront évidemment utilisée que pour le bon fonctionnement de l'événement et sur sa durée. N'hésite pas à envoyer plusieurs participations, nous ne retiendrons que la meilleure. Lots Les lots pour cette épreuve sont les suivants. Les 5 participants ayant les meilleurs scores pourront choisir, par ordre de classement, un lot de leur choix. ;) 1 lot Graph 90+E : 1 calculatrice Graph 90+E + 1 sac et stylo CASIO + 1 pack de goodies TI-Planète Casio 1 lot Graph 35+E II : 1 calculatrice Graph 35+E II + 1 sac et stylo CASIO + 1 pack de goodies TI-Planète Casio 1 lot Goodies n°1 : 1 clé USB TI-83 Premium CE (4 Go) + 1 batterie externe CASIO (2200 mAh) + 1 sac et stylo CASIO + 1 pack de goodies TI-Planète Casio 1 lot Goodies n°2 : 1 recueil d'activités SNT Numworks (65 pages) + 1 clé USB simulateurs CASIO (8 Go) + 1 sac et stylo CASIO + 1 pack de goodies TI-Planète Casio 1 lot Goodies n°3 : 1 cahier «Boss des maths» Numworks (80 pages) + 1 clé USB simulateurs CASIO (8 Go) + 1 sac et syylo Casio + 1 pack de goodies TI-Planète Casio goodies-2021-1.jpg goodies-2021-2.jpg goodies-2021-4.jpg Tu peux voir l'article de TI-Planet sur les batteries externes pour plus de détails. Le fait qu'il y ait des lots moins fournis sur cette épreuve et que des calculatrices CASIO n'est pas une marque de favoritisme mais d'organisation. Ce sont les lots que j'ai (Lephe) collectés en plus de ceux que Critor a pour Alrys. J'ai demandé à Critor de procéder ainsi pour faciliter le traitement des participations et lots sur cette épreuve. ;) Et voilà pour cette épreuve ! Je compte sur toi pour tester toutes tes idées de génie et conquérir ce Synchro-donjon en temps record ! :D Sun, 12 Sep 2021 19:39:41 +0200