Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Concours


Index du Forum » Concours » [Trucs et astuces] Le défi de Quetzalcoatl
Lephenixnoir En ligne Administrateur Points: 24564 Défis: 170 Message

[Trucs et astuces] Le défi de Quetzalcoatl

Posté le 24/10/2020 19:07

Alors voilà, c'est Critor qui a codé la plupart de ce défi, moi j'ai fait que la génération de la cave et l'interface du ballon donc je suis à peu près dans la même situation que vous sur le code. En l'absence d'un topic d'entraide, voilà quelques trucs et astuces ! :P

Mes techniques ne sont pas super avancées mais je pense qu'elles pourront vous aider à avancer. Comme d'habitude, ne partagez pas des solutions directement, ça casserait le jeu. Je rappelle que vous pouvez voir les scores des participants sur la page dynamique des participations !

Ce code-là est plus simple que le labyrinthe, tout se passe dans modifier_vol(). Les paramètre de la fonction s'appellent ay, da et le troisième est la durée. Les quatre premières variables de state sont x, y, a et vy (même si vy n'est nommé que state[3]). À chaque étape on a :

    state[3] -= ay
    state[1] = max(0, min(cave_h - 1, state[1] + state[3]))

Ce qui montre que, si on ignore le min/max qui sert à juste à ne pas sortir de l'écran, à chaque tour y augmente de vy et vy augmente de ay. Donc le premier paramètre est une accélération verticale

On a également la modification suivante de a :

    state[2] = max(0, min(1, a + da))

Donc le deuxième paramètre va est une « vitesse » pour le contrôle de a, qui varie entre 0 et 1. L'annonce précisait qu'il semble s'agir de la forme du ballon.

Les collisions sont super compliquées mais si vous avez l’œil observateur vous remarquerez qu'il y a des ellipses. x3

Sur le calcul du score, on a :
• Pour chaque modifier_vol(), 10 points si on accélère/décélère (ay≠0) ou si on change de forme (da≠0)
• À chaque étape, 3*(da > 0)*(1 + da) + 2*(dapi > 0)*(1 + dapi), ça a l'air de pénaliser si on change trop de forme
• 7 points par collision, sachant que si on rentre beaucoup dans la roche il y a plusieurs collisions en même temps

Donc clairement le tout c'est d'éviter au maximum les collisions et de pas envoyer trop d'instructions.

Du coup, voilà les trucs et astuces !

Avancer en ligne droite : Si on choisit bien ay pour que vy tombe à zéro, on peut alors laisser ay à 0 et avancer en ligne droite au lieu de s'embêter à faire des morceaux de paraboles.

Faire des virages dangereux : Il n'y a pas de pénalité si ay est élevé, donc on peut très bien foncer vers le haut pour passer un passage serré et annuler toute la vitesse avec un contrordre en une seule étape ! Il n'y a que le coût de l'appel à modifier_vol() à prendre en compte.

Toujours repasser à la vitesse zéro : C'est beaucoup plus facile d'enchaîner les manœuvres si vous repassez à la vitesse zéro chaque fois que vous changez de direction, ça évite de se trimballer des vitesses résiduelles qui gênent le mouvement.

On peut encore largement grind jusqu'à la première place en faisant attention à ces éléments. Bon courage à tous ! o/


Lephenixnoir En ligne Administrateur Points: 24564 Défis: 170 Message

Citer : Posté le 27/10/2020 12:43 | #


Je vois qu'il n'y a pas grand-monde de Planète Casio sur ce défi-là. Dans tous les cas, n'oubliez pas que le fin approche et on a pas mal de participations en ce moment. Il reste également des places pour des lots !

Le troisième et dernier défi sera annoncé bientôt, il est conçu pour trancher avec celui-ci et je le trouve passionnant parce que les approches pour le résoudre sont beaucoup plus concrètes. J'espère qu'il vous plaira
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Critor Hors ligne Administrateur Points: 2670 Défis: 18 Message

Citer : Posté le 27/10/2020 12:53 | #


Merci.

Il ne faut pas oublier non plus que nous avions conçu ce concours pour récompenser à la fois généreusement et aussi largement que possible un maximum de gens, comme les années précédentes.
Les participants ayant déjà gagné une calculatrice au 1er défi doivent opter en priorité pour un lot de goodies sans calculatrice si ils regagnant au 2ème défi.
Donc il reste encore plus de beaux lots à gagner que le classement ne le laisse paraître...

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 v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 50 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