Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Actualités


Index du Forum » Actualités » Concours de rentrée 2022 : Maîtrisez Pykaster3D !
Lephenixnoir En ligne Administrateur Points: 22762 Défis: 149 Message

Concours de rentrée 2022 : Maîtrisez Pykaster3D !

Posté le 22/09/2022 00:56

Mettez-vous à l'aise et branchez vos neurones, c'est de nouveau cette époque de l'année. Le concours de rentrée de TI-Planet et Planète Casio est de retour pour la 6ème année consécutive, avec un nouveau défi calculo-ludique et de nouveaux prix à décrocher !

Le concours de rentrée est ouvert jusqu'au Dimanche 13 Novembre 23h59.


Les captures d'écran ne mentent pas : Critor nous a bel et bien programmé un moteur 3D mi-Wolfenstein mi-DOOM en Python, dans lequel vous explorerez une grande arène fortifiée. Comme tu vas le voir, il tourne d'ailleurs sur la Graph 90+E et Graph 35+E II ! ... lentement, mais il tourne. :P

Article associé sur TI-Planet : Concours Python 2022 - Pykaster3D «attrape-les toutes» !

Principe et règles du jeu

L'unique défi de cette année nous ramène dans le royaume d'Alrys que vous avez libéré l'an dernier. À l'époque, le donjon du Cirque des Monts Pleureurs avait déjà fait parler de lui. Les nouvelles sont arrivées il y a quelques jours d'une infestation inquiétante dans le donjon de la presqu'île de Farfalie. Il semblerait que des souris électriques d'une espèce complètement inconnue se sont emparées des lieux.

Le donjon est composé de trois sections concentriques. D'abord, les catacombes, qui cachent une entrée secrète et furent le principal obstacle à franchir durant la reconquête d'Alrys :


Une fois le hall passé, se trouve un labyrinthe réparti sur 3 niveaux :


Et enfin une passerelle suspendue mène au coeur du donjon, où se sont installées les locataires indûs.


Le but du jeu est de traquer les souris et de les attraper toutes... au bon moment. D'après les rapports du terrain, le qualificatif «électrique» n'est vraiment pas là pour décorer, et certaines souris décochent de sacrées décharges.

Comme les années précédentes, le jeu peut se jouer de deux façons différentes : au clavier (pour tester), et en préprogrammant une série d'actions dans le script (pour la soumission finale). Les contrôles au clavier sont les suivants :

  • Avancer (#0, touche [↑]) et reculer (#2, touche [↓])
  • Tourner à gauche (#5, touche [←]) ou à droite (#6, touche [→])
  • Se décaler sur la droite (#1, touche [6]) ou sur la gauche (#3, touche [4])
  • Ne rien faire (#4, touche [5])
  • Sauter (#7, touche Entrée)

Le numéro correspondant à chaque peut être utilisé pour effectuer cette action dans le script. Note que dans le script les actions prennent des paramètres, ce qui les rend beaucoup plus polyvalentes que le clavier. Par exemple, le script préchargé dans pyka3d.py effectue les actions suivantes :

liste_actions = [
  # Attendre 5 tours
  4, 5,
  # Tourner 5 fois à droite de π/8 radians (22.5°)
  6, 0.39269908169872414,
  6, 0.39269908169872414,
  6, 0.39269908169872414,
  6, 0.39269908169872414,
  6, 0.39269908169872414,
  # Tourner 6 fois à gauche de π/8 radians (22.5°)
  5, 0.39269908169872414,
  5, 0.39269908169872414,
  5, 0.39269908169872414,
  5, 0.39269908169872414,
  5, 0.39269908169872414,
  5, 0.39269908169872414,
  # Avancer 77 fois de 1 pas
  0, 77,
  # Tourner à gauche de π/8 radians (22.5°)
  5, 0.39269908169872414,
  # Avancer 121 fois de 1 pas
  0, 121,
]

C'est une transcription directe d'une saisie au clavier, mais en ajustant les angles quand on tourne et les pas quand on se déplace il serait possible d'atteindre la même position beaucoup plus efficacement.

De façon générale, pyka3d.py fonctionne de la façon suivante :

  1. Il exécute toutes les actions données dans liste_actions.
  2. Ensuite il te donne la main pour continuer à jouer sur le clavier.
  3. Une fois la partie finie, il affiche une liste correspondant aux actions jouées au clavier, qui peut donc être copiée/collée et ajoutée à la fin de liste_actions.

Tout ceci se produit par l'appel jouer_selon(liste_actions,1). Pour éviter que l'affichage 3D (qui prend la majorité du temps) ne soit trop répétitif, tu peux appeler jouer_selon(liste_actions,0) à la place, qui ne démarre l'affichage que quand le contrôle est donné au clavier (après l'exécution de liste_actions).

Précisons les contrôles disponibles dans le script :

  • Les actions pour avancer, reculer, et se décaler acceptent comme paramètre des distances entre -1 et 1, valeurs décimales comprises (au lieu de juste 1 au clavier) ;
  • Les actions pour tourner acceptent n'importe quelle angle, y compris des tours complets (au lieu de juste 22.5° au clavier) ;
  • L'action de saut accepte une hauteur de saut entre 0 et 1 (au lieu de juste 1 au clavier).

Le but du jeu est donc d'utiliser ces contrôles pour attraper les souris. Le joueur comme les souris ont un niveau, qui décide des interactions :

  • Les souris de niveau inférieur à celui du joueur sont affichées petites et jaunes ; il suffit de les toucher pour les attraper, ce qui augmente un peu le score et augmente le niveau du joueur.
  • Les souris de niveau supérieur à celui du joueur sont affichées grandes et rouges ; touchez-les à vos risques et périls. Les décharges réduisent le score !
  • Le niveau du joueur influence également sa vitesse de déplacement et ses prouesses physiques... et donc sa capacité à atteindre différentes zones du donjon.




Les souris ont tendance à fusionner quand elles se recontrent... ou quand le joueur active une des 5 dalles cachées dans le donjon ; étant difficiles à trouver ces dalles n'ont pas été désamorcées durant le raid de l'an dernier.

Réfléchissons donc à la stratégie. Il te faut attraper un maximum de souris, vite de préférence, mais il faut aussi les attraper quand elles sont d'un niveau élevé (cela augmente plus le score) sans pour autant perdre le contrôle de la population, sous peine d'être choqué·e par le résultat.

Dors bien en pensant à ce problème... :3

Prenons un instant pour apprécier l'exploit technique des scripts, qui avec environ 80-100 ko de stockage et 100 ko de mémoire de travail parviennent à simuler un environnement riche en couleurs et parfois même en textures, sur une map grande de 64x29 cases avec des effets graphiques à faire rougir la compétition.

Aperçu des lots de l'année

Les lots de cette année sont bénévolement offerts par Calcuso, Casio, TI, cent20, avec des goodies de Parisse, TI-Planet et Planète Casio. Les prix sont très fournis surtout côté goodies ; je vous fais un résumé ici, pour les détails voyez l'annonce sur TI-Planet.

6 lots Graph 90+E : Calculatrice Graph 90+E + packs de goodies Casio, Xcas, et TIP/PC
4 lots Casio : Clé USB d'émulation Casio + 1 coque collector Casio + packs de goodies Casio, Xcas, et TIP/PC
2 lots N0120EX : Calculatrice Numworks N0120EX + packs de goodies Numworks, Xcas et TIP/PC
7 lots Numworks : Coque collector Numworks + Autocollant Numworks + packs de goodies Numworks, Xcas et TIP/PC
6 lots CX2CAS : Calculatrice TI-Nspire CX II-T CAS avec licence logicielle + packs de goodies TI, Xcas, et TIP/PC
2 lots Calculso : Calculatrice TI-83 Premium CE Édition Python garantie 6 ans avec gravure de texte laser + émulateur TI-SmartView CE + chargeur mural + housse et film de protection Wyngs + livret de prise en main et cahier d'activités + packs de goodies TI et TIP/PC
2 lots 83PCE : Calculatrice TI-83 Premier CE Édition Python + émulateur TI-SmartView CE + film de protection Wyngs + livret de prise en main et cahier d'activités + 2 cahiers d'activités TI + packs de goodies TI et TIP/PC

Soit un total de 29 lots pour récompenser les meilleurs scores à la chasse aux souris. Avec ça n'allez pas dire que vous n'aspirez pas à être le meilleur dress- euh, chasseur. Chasseur.

Comme les années précédentes, les lots seront choisis par les participants par ordre décroissant de score. Un lot est également réservé au meilleur groupe (voir ci-dessous pour les règles des groupes) ; ce lot sera sélectionné par le premier membre du groupe à choisir.

Comment jouer à Pykaster3D

Grâce à la dernière version de la bibliothèque polycal5.py, Pykaster3D fonctionne sur 12 environnements Python :

  • Graph 35+E II, fx-9750G III, fx-9860G III
  • Graph 90+E, 90+E avec KhiCAS, fx-CG 50, fx-CG 50 avec KhiCAS
  • HP Prime
  • Numworks avec Khi et KhiCAS
  • TI-Nspire CX II, CS II avec Ndless et KhiCAS, et CX avec Ndless et KhiCAS

Je liste ici les instructions pour les plateformes couramment utilisées par la communauté Planète Casio ; pour la liste complète, vois l'article de TIP.

Ordinateur avec SDL2

Extrais l'archive zip dans un dossier de ton choix puis lance pyka3d.py. Il te faudra la bibliothèque SDL2, que tu peux installer avec la commande "pip install PySDL2" sur toutes les plateformes.


Graph 90+E avec l'application Python

Transfère les programmes sur la calculatrice et lance pyka3d.py dans l'application PYTHON pour jouer. Il n'y a pas de saisie clavier sur la Graph 90+E, donc en mode manuel les 8 actions défilent en bas de l'écran et il te faut appuyer sur AC/ON pour sélectionner celle que tu veux quand elle passe.

L'exécution est lente ; il est important de mettre le deuxième paramètre de jouer_selon() à 0 pour éviter les affichages inutiles. Je conseille également d'utiliser l'émulateur ou d'overclock pour gagner du temps.


Graph 90+E avec KhiCAS

Transfère les scripts dans le dossier racine de la mémoire de stockage. Lance KhiCAS en mode MicroPython (à sélectionner via le menu F6 puis ouvrir, et exécuter pyka3d.py. Le mode manuel utilise les touches normalement ; EXIT pour quitter. Les mêmes remarques que la Graph 90+E s'appliquent pour les performances.


Graph 35+E II

Transfère les programmes sur la calculatrice et lance pyka3d.py dans l'application PYTHON pour jouer. Il n'y a pas de saisie clavier sur la Graph 35+E II, donc en mode manuel les 8 actions défilent en bas de l'écran et il faut appuyer sur AC/ON pour sélectionner celle qu'on veut quand elle passe.

L'exécution est lente ; il est important de mettre le deuxième paramètre de jouer_selon() à 0 pour éviter les affichages inutiles. Je conseille également d'utiliser l'émulateur ou d'overclock pour gagner du temps.


Règles de soumission et gestion des groupes

Envoie ton script pyka3d.py modifié par mail à info@tiplanet.org avant le 13 Novembre 23h59, avec :

  • En objet, Pykaster3D ;
  • Un moyen de contact que tu surveilles fréquemment (email, SMS, Discord, etc) ;
  • En option, ton pseudonyme Planète Casio et/ou TI-Planet ;
  • Pour recevoir les lots, ton adresse postale complète avec nom/prénom et un numéro de téléphone (pour suivre les envois). Ces informations peuvent être envoyées plus tard, mais on gagne du temps à les communiquer tout de suite.

Les informations personnelles ne seront partagées à aucun tiers et détruites sur demande.

En soumettant tu peux également demander une clé USB d'émulation Casio, que nous fournirons dans la limite de nos stocks (18 clés). Le but est de permettre de tester sur des machines réactives si jamais tu n'en as pas sous la main.

Pour créer un groupe, indique ton pseudonyme Planète Casio ou TI-Planet et joins un logo (carré) pour le groupe. Une signature Python te sera fournie, et toute personne accompagnant sa soumission de ta signature sera considérée comme un membre du groupe. (Chaque participant ne peut faire partie que d'un groupe.)

Le score de chaque groupe sera calculé à partir des scores des membres par une moyenne pondérée. Le meilleur groupe remportera un lot dédié à se partager.

Conclusion

Cette année, un seul sujet mais quel sujet ! Bon courage pour optimiser celui-là. Ce n'est même pas la peine de prononcer le mot «combinatoire» tant les options sont vastes (plus quelques pièges comme le fait que modifier une action dans le passé impacte toute la suite du script). Je pense que les chances sont bien plus côté exploration que bruteforce.

Bon courage pour ce défi, faites honneur à la communauté Planète Casio !
Et n'hésitez pas si besoin à aller consulter le topic d'entraide.


Précédente 1, 2, 3, 4
Critor Hors ligne Administrateur Points: 2317 Défis: 18 Message

Citer : Posté le 13/11/2022 11:05 | #


Twitch sur Pykaster3D actuellement, avec Radalium, disciple de cent20 :
https://www.twitch.tv/radalium
Critor Hors ligne Administrateur Points: 2317 Défis: 18 Message

Citer : Posté le 13/11/2022 14:56 | #


Nouvelle chance si tu as raté les formidables astuces de Radalium et cent20 au twitch de ce matin, nouveau twitch cet après-midi par M4x1m3.
Rendez-vous à 15h pour réussir - c'est tellement facile cette année !
https://www.twitch.tv/m4xi1m3
Critor Hors ligne Administrateur Points: 2317 Défis: 18 Message

Citer : Posté le 14/11/2022 00:34 | #


Classement pas tout-à-fait final encore, 4 participants en embuscade ont envoyé des participations juste avant minuit.

Sinon, rediffusion du live twitch où notre grand stratège cent20 a déployé une énergie absolument formidable ce dimanche matin :
https://www.twitch.tv/videos/1651509707
Critor Hors ligne Administrateur Points: 2317 Défis: 18 Message

Citer : Posté le 14/11/2022 01:04 | #


Voilà, normalement tout a été traité.
L'anonymat a été levé, et les scripts soumis sont téléchargeables pour ceux qui le souhaitent :
https://tiplanet.org/concours_pykaster3d_2022.php

Merci à vous tous pour la formidable énergie déployée dans ce concours (j'ai vu passer des twitch très enthousiastes, des outils conçus sur-mesures que vous nous expliquerez bientôt j'espère, ainsi que de grands stratèges en chefs de groupes).

À bientôt...
Critor Hors ligne Administrateur Points: 2317 Défis: 18 Message

Citer : Posté le 15/11/2022 17:21 | #


Et voici le meilleur parcours de l'arène Pykaster3D par Afyu, notre grand gagnant à 2655 points.
Afyu abuse littéralement du moteur du jeu, avec des mouvements surprenants en réalité calculés exprès pour manipuler la chance tel pour un speedrun !
Critor Hors ligne Administrateur Points: 2317 Défis: 18 Message

Citer : Posté le 22/11/2022 13:58 | #


Les stickers commémoratifs du formidable groupe V601 de Planète Casio sont arrivés !

Thank very much TIny_Hacker :favorite:

Bonne nouvelle, les stickers du groupe gagnant V601 sont arrivés - avec un superbe effet métallique appliqué sur les zones transparentes de l'image :


Et on ne se moque pas de vous ; regardez un petit peu la taille :

- sticker PC : 4,5*4,5 cm²
- stickers TIP + sticker Xcas + aimantin Xcas : 5*5 cm²
- aimantins TIP : 6*6 cm²
- sticker V601 : 10*10 cm²

Le site stickerapp.com forçait des commandes minimum de près de 30€, donc plutôt que de recevoir des 100aines de stickers "normaux" et de n'en distribuer que 7, nous vous avons gâtés sur les effets spéciaux et la taille ! :bj:
Critor Hors ligne Administrateur Points: 2317 Défis: 18 Message

Citer : Posté le 25/11/2022 11:28 | #


Hackcell, c'est à ton tour de choisir ton lot :
https://tiplanet.org/forum/viewtopic.php?t=25786&p=270046#p270046

Merci.
Critor Hors ligne Administrateur Points: 2317 Défis: 18 Message

Citer : Posté le 26/11/2022 23:01 | #


Merci Hackcell.

@TheBigBadBoy, c'est à ton tour :
https://tiplanet.org/forum/viewtopic.php?f=49&t=25786&p=270089#p270089
Précédente 1, 2, 3, 4

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 52 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd