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 2021 - La geste d'Alrys !
Lephenixnoir Hors ligne Administrateur Points: 20789 Défis: 143 Message

Concours de rentrée 2021 - La geste d'Alrys !

Posté le 12/09/2021 19:30

Bienvenue au concours de rentrée 2021 organisé par TI-Planet et Planète Casio !


Dans l'article introductif de l'événement, nous racontions comment tu as trouvé dans une brocante une console étrange avec deux cartouches.

La première de ces cartouches contient un jeu qui s'appelle La geste d'Alrys. La cartouche est même ornée d'une image de présentation qu'on a reproduit ici pour tes yeux.


Dans ce jeu, tu dois conquérir 10 donjons pour libérer le royaume d'Alrys, une véritable quête épique de problème mathématique et ludique ! En voici l'histoire...

La geste d'Alrys

Le royaume d'Alrys est une contrée fantastique et fascinante dont la réputation dans les légendes n'a d'égale que l'isolation absolue. Elle est au creux d'une plaine de montagnes que l'on dit infinie, et aucun document historique n'en spécifie exactement la localisation.

Ce royaume isolé possède une géographie, une biodiversité et une civilisation particulièrement uniques et dignes de récits fantastiques. Ces propriétés sont des défis autant que des bénédictions, mais cela n'a pas empêché une société paisible de se développer et se maintenir.


Cette société cependant n'était pas préparée au destin qui attend tout planète et s'est présenté, inattendu et non invité, sous la forme d'une météorite dans l'atmosphère. Enflammée et érodée par les frottements de l'air, la météorite eut tôt fait de se désagréger en une pluie de débris spatiaux qui détruit plusieurs villes, créant une grande vague de panique dans le pays !

Déjà affaibli par l'âge et hanté par sa succession inachevée, le roi Jandor succomba sous la pression des événements, ajoutant au chaos. L'occasion fût instantanément saisie par Ron Dorya, un homme mégalomane et assoifé de pouvoir qui présenta l'événement cosmique comme un jugement divin pour justifier un coup d'État et un aservissement draconien des institutions du pays.

Le peuple d'Alrys n'est absolument pas dupe, mais il est aussi absolument impuissant, car Ron Dorya a scellé les trésors et reliques du royaume qui faisaient la force de ses soldats, et asservi du même coup toute l'armée à ses désirs. La plus importante de ces reliques, la Tetraforce, a même été fragmentée. La contrée a désespérément besoin d'un héros pour défaire cette défense, et tu as décidé de prendre les choses en main.

Ton aventure commence au pied de la Cordilière du Vertige, dans la Forêt de Marmarax. C'est ici que se trouve le premier donjon sur ta liste de conquêtes. La structure est remplie d'animaux et monstres locaux asservis par les reliques volées, et renferme un des fragments de la Tetraforce, sans laquelle aucune révolte ne sera possible.

Ton objectif est de ressembler les 9 fragments de la Tetraforce en conquérant les donjons dispersés au quatre coins du pays. Les habitants de la région sont tous avec toi, et n'hésiteront pas à te protéger dans les villages pour que tu puisses reprendre des forces. Une fois les 9 fragments de la Tetraforce réunis, tu pourras t'engouffrer avec les plus vaillantes âmes du pays dans la Terre des Rois pour conquérir le palace royal et renverser le despote.

La carte du monde

Voici l'écran initial de ton aventure. Tu peux y voir le Donjon de la Forêt de Marmarax, ainsi que le sommet du Massif de Roak au Sud.


Comme tu peux le deviner à l'échelle de cette image, la carte du jeu est vraiment grande. Sur nos modèles Casio c'est une première, alors pour un programme compatible avec une majorité des calculatrices graphiques c'est un résultat inespéré. Les graphismes sont une version modifiée de Toen's Medieval Strategy par Andre Mari Coppola (CC-BY 4.0).

Prenons donc un moment pour apprécier le travail de Critor à la fois sur les scripts polycal4.py (interface de compatibilité Python multi-modèles) et sur ce jeu en lui-même, qui dépassent tous les deux d'assez loin les programmes des concours de rentrée des années précédentes.

Voilà un petit récapitulatif de tous les types de terrain que tu rencontreras sur ton trajet :

CouleurMonoType de terrain
Plaines
Forêt
Collines
Marécages
Montages
Donjon
Village
Mer

Règles du jeu

Ton objectif est de réaliser la campagne la plus glorieuse possible pour motiver les insurgés et effrayer les défenseurs de Ron Dorya. Pour ça, tu dois obtenir le maximum de points durant ta conquête des 10 donjons tout en allant le plus vite possible pour prendre l'ennemi par surprise. Note que tu n'as pas besoin d'arriver au bout de la quête pour participer, tout score intermédiaire est également valide.

Pour jouer à La geste d'Alrys, tu devras donc programmer ton itinéaire à travers les grandes villes et les lieux déserts du pays. Le terrain sera ton guide principal, car les montagnes sont infranchissables, et les forêts, collines et marécages sont difficiles à pratiquer. Les mers te sont interdites d'accès sauf pour atteindre le 10ème et dernier donjon.

Les éléments de l'interface ci-dessous résument les mécaniques.


Tu as donc :
  1. La boussole qui t'indique la direction dans laquelle tu te déplaces (uniquement en mode manuel).
  2. Le nombre de donjons conquis, initialement 0.
  3. Ton niveau de santé, initialement 250%. Les donjons étant dangereux, il te faut absolument au moins 100% pour entrer dans un donjon si tu veux en ressortir vivant. Ce nombre est suivi du nombre d'arrêts que tu peux faire pour te ressourcer dans un village (initialement 1, et chaque donjon conquis t'en ajoute 1).
  4. Ton score, arrondi à l'unité. Les décimales sont affichées dans la console quand tu quittes le programme.

Installation et utilisation du programme

La geste d'Alrys peut être installée sur les modèles ci-dessous. La compatibilité avec les modèles les plus restrictifs (TI-82 Advanced Édition Python et TI-83 Premium CE) a été sacrifiée en échange de pouvoir exploiter tout le potentiel du langage Python et des interpréteurs disponibles pour créer un jeu immersif et complet.

  • Graph 35+E II et Graph 90+E : Télécharger les scripts

    Transfère l'ensemble des scripts dans la mémoire de stockage, puis lance alrys.py pour jouer. Tu peux modifier alrys.py à loisir. Dans le mode interactif, les différentes options se présentent en boucle dans le coin en bas à droite de l'écran, appuie sur AC/ON au bon moment pour sélectionner celle qui est visible.

    Tutoriel de transfert de fichiers
    Tutoriel d'overclocking
    É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 direction l'application Alrys.hpappdir.zip. Tu peux basculer entre la vue Symb pour modifier le script et la vue Num pour l'exécuter.

    Logiciel HP Prime Virtual Calculator version 14592 (Windows 64 bits, Windows 32 bits)
    Logiciel de transfert (Windows 64 bits, Windows 32 bits, Mac)
    Tutoriel de transfert


  • 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. En mode manuel, tu peux jouer avec les touches fléchées et quitter avec esc.

    Pour les scripts KhiCAS, transfère-les dans le dossier /Xcas/ créé au premier lancement de KhiCAS, puis exécute alrys.py en mode MicroPython. La vidéo ci-dessous à droite te détaille la procédure de lancement.

    Pour le support Python via KhiCAS : Ndless et KhiCAS
    Overclocking : Nover (Ti-Nspire CX), NoverII (TI-Nspire CX II)
    Simulateurs : TI-Nspire CX CAS et TI-Nspire CX version 5.3.2 (Windows, Mac)
    Logiciel de transfert : TiLP-II version 1.18 (Windows, Mac, Linux)


  • Numworks : Télécharger le script ou IDE en ligne Oméga

    Il te suffit de transférer et lancer alrys.py, puis le modifier pour y intégrer ta participation.

    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.

    Transfert direct de fichiers avec WebUSB
    Version dans le workshop Numworks (attention, peut geler le navigateur ; utilise plutôt l'IDE en ligne Oméga !)


  • 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 script

Pour programmer ton itinéraire, tu disposes de contrôles similaires à Scratch ou Turtle, avec lesquels tous les collégiens et lycéens peuvent se familiariser. Tu peux avancer, reculer, ou tourner vers la gauche ou vers la droite de 45 degrés.

Le script alrys.py qui est fourni sur tous les modèles donne ses déplacements à l'aide d'une liste comme ceci :

liste_deplacements = [
  # va piller le donjon en face
  0, 2,   # avance de 2 unites
  # rapporte le tresor au village le plus proche
  # pour y reprendre des forces
  0, -6,  # recule de 6 unites
  1, 135, # tourne a droite de 135 degres
  0, 8,
  # pret a affronter le prochain donjon
]

Chaque déplacement y est représenté par deux valeurs :
  • Soit 0 suivi d'une valeur positive ou négative pour avancer et reculer, respectivement. Une unité représente une case de la map.
  • Soit 1 suivi d'une angle positif ou négatif pour tourner à droite ou à gauche respectivement. L'unité est en degrés.

Il te suffit de modifier cette liste pour y intégrer tous les mouvements qui peuvent te plaire, et le script alrys.py modifié constituera ta participation au concours. (Bien sûr, il est interdit de modifier les éléments internes du jeu !)

N'oublie pas que tu n'es pas obligé·e de terminer la quête pour participer, tout score intermédiaire (y compris le script par défaut) est valide.

Une fois la liste des déplacements épuisée, le jeu passe automatiquement en mode interactif. Tu peux alors explorer avec les touches de ton clavier (ou en interrompant le programme au bon moment avec AC/ON pour exécuter l'action affichée en bas à droite sur les Graph 90+E et Graph 35+E II).

Pour participer au concours

Pour participer à l'épreuve de la geste d'Alrys, envoie ton fichier alrys.py modifié par courriel à info@tiplanet.org avant le Dimanche 7 Novembre à 23:59 avec avec :

  • Pour sujet, Alrys ;
  • 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

Voici les lots pour cette épreuve. Les 12 participants ayant réalisé les meilleurs scores avec des solutions différentes pourront choisir et personnaliser, par ordre de classement, un lot de leur choix.

  • 2 lots Graph 90+E : 1 calculatrice Graph 90+E + 1 pack de goodies Casio + 1 goodie Xcas au choix + 1 pack de goodies TI-Planète Casio

  • 2 lots Casio : 1 clé USB d'émulation Casio au choix (8 Go) + 1 coque personnalisée Casio au choix + 1 pack de goodies Casio + 1 goodie Xcas au choix + 1 pack de goodies TI-Planète Casio

  • 2 lots N0110 : 1 calculatrice NumWorks N0110 + 1 pack de goodies NumWorks + 1 goodie Xcas au choix + 1 pack de goodies TI-Planète Casio

  • 2 lots Numworks : 1 coque Macaremaths + 1 pack de goodies NumWorks + 1 goodie Xcas au choix + 1 pack de goodies TI-Planète Casio

  • 1 lot CX2CAS : 1 calculatrice TI-Nspire CX II-T CAS + 1 licence logiciel TI-Nspire CAS élève + 1 pack de goodies TI + 1 goodie Xcas au choix + 1 pack de goodies TI-Planète Casio

  • 1 lot CX2T : 1 calculatrice TI-Nspire CX II-T + 1 licence logiciel TI-Nspire élève + 1 pack de goodies TI + 1 goodie Xcas au choix + 1 pack de goodies TI-Planète Casio

  • 2 lots 83PCE : 1 calculatrice TI-83 Premium CE Edition Python + 1 gravure texte laser au choix + 1 extension garantie 6 ans + 1 adaptateur USB + 1 clavier USB dédié + 1 chargeur mural + 1 housse Wyngs au choix + 1 film de protection écran Wyngs dédié + 1 pack de goodies TI + 1 pack de goodies TI-Planète Casio

Les goodies étant très nombreux et variés, je t'invite à voir les photos que Critor a compilé sur la version TI-Planet de cet article.

Et voilà qui clôt la présentation de ce jeu. Tout le monde compte sur toi pour montrer à Ron Dorya que son système de défense ne fait pas le poids face à un esprit méthodique et curieux !


Critor Hors ligne Administrateur Points: 2185 Défis: 18 Message

Citer : Posté le 16/09/2021 01:24 | #


Si cela peut aider, voici illustré sur la carte l'ébauche d'itinéraire inclus en démo dans alrys.py à 95 pts :


Ajouté le 16/09/2021 à 12:59 :
Voici la miniature (parce que je ne souhaite pas que l'on se contente de reproduire un truc aussi nul) de mon itinéraire gagnant à 1713,45 pts illustré dans l'animation de l'annonce TIP :


Je n'ai pas pris la peine de calculer des déplacements intermédiaires autres qu'horizontaux ou verticaux alors que les diagonales seraient bien plus courtes ; vous pouvez très certainement faire nettement mieux sans gros efforts.

Ajouté le 16/09/2021 à 20:32 :
Petite précision.

Lorsque vous avez pillé 9 donjons, il vous faut visiter un village pour récupérer la barque. Mais cette visite ne restaurera pas votre force.

Si donc vous êtes en-dessous des 100% de force ou à peine au-dessus, avant d'aller affronter le 10ème donjon il vous faudra donc visiter un autre village (si bien sûr vous y avez encore droit) afin de récupérer aussi de la force.



Sinon, lors de l'envoi de vos participations, n'hésitez pas à préciser l'équipe dans laquelle vous vous inscrivez.

Ont été créées à date :
- Planète Casio
- TI-Planet
- Geometry Dasheurs
- Station Biologique de Roscoff

Mais on peut en créer d'autres sur demande.

Ajouté le 26/09/2021 à 18:15 :
Si ça peut vous aider, animation de ce que donne une implémentation de l'algorithme de recherche de chemin A* sur Alrys.
Ici, à partir de la position de départ, la cible est le donjon en bas à gauche.

Par @bebertii / Marcellus Wallace.

Source : https://twitter.com/bebertii/status/1442152467765006342

Ajouté le 27/09/2021 à 12:22 :
Et une fois que la destination a été atteinte par l'algorithme, génération du chemin optimal. Attention à coefficienter correctement les cases, ça peut tout changer :


Source : https://twitter.com/bebertii/status/1442420508943867905
Bebertii Hors ligne Membre Points: 6 Défis: 0 Message

Citer : Posté le 27/09/2021 18:13 | #


Ah ben content de voir que mon tweet a été repris !

Fun fact : après avoir enregistré cette vidéo, et sans avoir rien changé au code, pygame s'est mis à planter de façon systématique juste après le début. Mon algo fonctionne, mais je n'arrive plus à le visualiser !

Petite remarque, dont j'aimerais savoir si ça a été voulu par les concepteurs, ou bien si "it's not a bug, it's a feature" :
Il est possible au personnage de se déplacer en diagonale, cependant le tracé de son trajet se fait en escalier quand on regarde comment est codée la fonction segment().

Du coup, un passage qui semble possible, en diagonale le long d'une montagne, va venir buter contre la case voisine et en_avant() va retourner à tord que le passage n'est pas possible.
Outre que ça complique mon algo (mais bon, ça on dira que ça prolonge le plaisir de coder ), ça ne me semble pas très logique dans la mécanique du jeu ?
Critor Hors ligne Administrateur Points: 2185 Défis: 18 Message

Citer : Posté le 27/09/2021 21:09 | #


Coucou Bebertii. Merci pour le partage de tes astuces ainsi que ton intervention.

De la façon dont a été codé le moteur d'affichage cette année, le personnage ne peut être affiché que sur une case de la carte. D'où l'impression qu'il se déplace en escalier.

Mais en interne, le trajet effectué correspond bien à une ligne droite.
Bebertii Hors ligne Membre Points: 6 Défis: 0 Message

Citer : Posté le 28/09/2021 18:40 | #


Critor a écrit :
Coucou Bebertii. Merci pour le partage de tes astuces ainsi que ton intervention.

De la façon dont a été codé le moteur d'affichage cette année, le personnage ne peut être affiché que sur une case de la carte. D'où l'impression qu'il se déplace en escalier.

Mais en interne, le trajet effectué correspond bien à une ligne droite.

On prend un exemple facile, à partir du point de départ :

le trajet
liste_deplacements=[
    1,90,
    0,1,
    1,90,
    0,1,
    1,-45,
    0,1.4142135623730951*2,]

qui devrait longer les rochers par la gauche en diagonale n'est pas possible, en revanche
liste_deplacements=[
    1,90,
    0,1,

    1,-45,
    0,1.4142135623730951*2,]

l'est, ce qui n'est pas très logique : cela revient à enlever des chemins possibles en partant d'une case la case inférieure gauche (mais pas l'inférieure droite) si la case sous le personnage est un rocher (ou la mer tant qu'on n'a pas la barque)

De la même façon; les diagonales en direction du nord-ouest ne peuvent être longées si la roche est au-dessus.
Critor Hors ligne Administrateur Points: 2185 Défis: 18 Message

Citer : Posté le 28/09/2021 18:58 | #


Ok, merci pour l'exemple, très clair.

Il suffit donc de passer très légèrement à côté. Il n'y a aucune obligation d'avancer d'un nombre entier. Par exemple :
liste_deplacements=[
    1,90,
    0,1,
    1,90,
    0,1.1,
    1,-45,
    0,1.4142135623730951*2,]


Aucune obligation non plus de tourner par multiples de 45°. Par exemple :
liste_deplacements=[
    1,90,
    0,1,
    1,90,
    0,1.1,
    1,-44,
    0,1.4142135623730951*2,]

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 - 2021 | Il y a 58 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