23-03-2011, 06:00 PM
(23-03-2011, 03:49 PM)Argorate a écrit : C'est une belle idée, mais ça ne marche pas ça, ou du moins je ne vois pas comment là... (enfin ça dépend les règles du jeu tu me diras... ^^)
Tu définis des étapes dis-tu? et comment vérifies-tu s'il peux ou non se déplacer entre deux étapes?
Tu dis que s'il n'a plus de mouvement il s'arrête, admettons, mais comment tu sais quand il n'a plus de mouvement si tu calcules pas le chemin le plus cours possible justement?
ce que je dis c'est que le serveur doit contrôler la capacité du personnage à se déplacer entre deux étapes
pas à calculer le chemin optimal :
exemple
le joueur veut aller de A vers F
le javascript dit que A* = A B C D E F
ajax envoie a php : perso va en B puis en C puis en D puis en E puis en F
php vérifie que A (position du perso) vers B est possible si oui, perso en B
etc
jusqu'à perso en F
maintenant si ajax (via triche) donne B F (bouh le tricheur)
php vérifie que A (position du perso) vers B est possible, oui => le perso est en B
php vérifie que B (position du perso vers F est possible, non => le perso reste en B
autre exemple si ajax (via autre que A*) donne B C H I J F (autre chemin, pas optimisé mais choisi par le joueur)
php vérifie que A (position du perso) vers B est possible, oui => le perso est en B
etc
jusqu'à perso en F
conclusion le serveur s'assure qu'il n'y a pas de triche mais ne calcule pas le A*
grosso modo j'évite au serveur de calculer tous les coûts des déplacements qui ne sont pas finalement retenu par l'algorithme du A* (ou d'un autre)