Salut, merci pour ton tuto, très complet et très clair ! Pour l'avoir reproduit sur Unity, tout marche très bien. Par contre l'optimisation qui consiste à prendre le grand-parent, je ne suis pas sûr d'avoir compris. Est-ce qu'on est sensé, si le cas arrive, interrompre les calculs et prendre le nouveau node "optimisé" comme current node ? Merci pour ton aide :)
On peut simplifier le calculs, en disant qu'au lieu de partir du point de départ à la destination, on part de la destination vers le point de départ, plus besoin de faire le calcul inverse. Mais que ce passe t'il si on tombe avec le calcul sur un impasse ? Sinon, super tuto
Faudra que je teste le fait de partir de la destination vers la case de depart. Sinon je me demande s'il est vraiment utile de calculer g ET h dans le cas d'un jeu ou les ia ne peuvent se deplacer que horizontalement et verticalement (pas de diago)
jean bourquard Basiquement, quand tu n'utilises pas d'heursitique tu utiliseras l'algo de Dijkstra. Le principal interêt de H c'est d'affiner la recherche en tendant vers le noeud d'arriver.
ToutApprendre Non non ce n'est pas ce que je veux dire. Par exemple dans mon cas je souhaite faire un jeu de plateau, avec deplacement case pas case et seulement horizontalement et verticalement (deplacement diagonaux non autorises). Du coup H est toujours utile dans mon cas mais simplement G le cout du mouvement est un peu obsolète non ? Car dans mon cas au final tous les deplacements auront le meme cout de 1 donc entre faire H+G avec G=1 pour evaluer un mouvement ou simplement H, il n'y a pas de difference (je vais quand meme implementer le calcul avec G au cas ou je change d'avis plus tard). Du coup c'est bien toujours du A* que je fais non ?
jean bourquard D'après ce que tu me dis, tu n'as pas bien compris l'interet de G. G est un nombre qui represent l'addition des coûts de déplacement de la case courante par rapport à la case de départ. Exemple je suis à 3 cases en haut de la case de départ j'ai ajouté 3 côuts de 10 donc j'ai un G pour cette case de 30, si je suis à la 2ieme case en diagonale de la case de départ, j'aurais un G de 28 (2*14). Donc à chaque fois que tu veux calculer le G tu prends le G parent et tu ajoute le coup d'un déplacement.
Parfait c'est justement ce dont j'avais besoin pour le jeu que je suis en train de developper sous Unity. J'avais deja vu cet algo pour un projet scolaire d'IA mais un petite piqûre de rappel ne fait pas de mal
ouep il y a des petites coquilles. Pareil dans la videos sur les identitees trigonometrique. Mais bon apres si on fait un effort et surtout si on suit activement et non passivement la video on comprend tout de suite. Comme diraient certains profs : "C'etait pour voir si vous suiviez" haha
Salut, merci pour ton tuto, très complet et très clair !
Pour l'avoir reproduit sur Unity, tout marche très bien.
Par contre l'optimisation qui consiste à prendre le grand-parent, je ne suis pas sûr d'avoir compris.
Est-ce qu'on est sensé, si le cas arrive, interrompre les calculs et prendre le nouveau node "optimisé" comme current node ?
Merci pour ton aide :)
pourquoi ne pas faire un tuto sur unity pour voir un peut sa dans la pratique ? en tout cas sa serait génial ^^ et sa m'aiderait beaucoup .
Bel effort de pédagogie. La vidéo aurait gagné à être plus concise pour être plus digeste. Merci.
Je savais bien que j'avais déjà vu ce pseudo. Gamecodeur!
Merci pour cet excellent tuto ! ça m'a beaucoup aidé, Il est vraiment clair et compréhensible par rapport au autre tuto que j'ai regardé
On peut simplifier le calculs, en disant qu'au lieu de partir du point de départ à la destination, on part de la destination vers le point de départ, plus besoin de faire le calcul inverse.
Mais que ce passe t'il si on tombe avec le calcul sur un impasse ?
Sinon, super tuto
Si tu tombes sur une impasse, tu n'auras plus aucun noeud dans l'open list ;)
Faudra que je teste le fait de partir de la destination vers la case de depart. Sinon je me demande s'il est vraiment utile de calculer g ET h dans le cas d'un jeu ou les ia ne peuvent se deplacer que horizontalement et verticalement (pas de diago)
jean bourquard Basiquement, quand tu n'utilises pas d'heursitique tu utiliseras l'algo de Dijkstra.
Le principal interêt de H c'est d'affiner la recherche en tendant vers le noeud d'arriver.
ToutApprendre
Non non ce n'est pas ce que je veux dire. Par exemple dans mon cas je souhaite faire un jeu de plateau, avec deplacement case pas case et seulement horizontalement et verticalement (deplacement diagonaux non autorises). Du coup H est toujours utile dans mon cas mais simplement G le cout du mouvement est un peu obsolète non ? Car dans mon cas au final tous les deplacements auront le meme cout de 1 donc entre faire H+G avec G=1 pour evaluer un mouvement ou simplement H, il n'y a pas de difference (je vais quand meme implementer le calcul avec G au cas ou je change d'avis plus tard).
Du coup c'est bien toujours du A* que je fais non ?
jean bourquard
D'après ce que tu me dis, tu n'as pas bien compris l'interet de G. G est un nombre qui represent l'addition des coûts de déplacement de la case courante par rapport à la case de départ. Exemple je suis à 3 cases en haut de la case de départ j'ai ajouté 3 côuts de 10 donc j'ai un G pour cette case de 30, si je suis à la 2ieme case en diagonale de la case de départ, j'aurais un G de 28 (2*14). Donc à chaque fois que tu veux calculer le G tu prends le G parent et tu ajoute le coup d'un déplacement.
Génial !
Trop bien je vais pouvoir m'en servir pour leekwars :D
Merci je tu vas beaucoup m'aider
A mais c'est toi, mais tu est partout ^^.
Parfait c'est justement ce dont j'avais besoin pour le jeu que je suis en train de developper sous Unity. J'avais deja vu cet algo pour un projet scolaire d'IA mais un petite piqûre de rappel ne fait pas de mal
merci super clair !!! tu pourrais nous faire un tuto sur la generation aleatoire de map 3d
Y'a pas programme en python
la description des parent de parent est fausse ...
tu tes gourer cest EX = 6 et EY = 3 ta pas inclu la case alor que tu la fait pour CX 4 et CY 6 tu vois je suis la preuve jai compris
ouep il y a des petites coquilles. Pareil dans la videos sur les identitees trigonometrique. Mais bon apres si on fait un effort et surtout si on suit activement et non passivement la video on comprend tout de suite. Comme diraient certains profs : "C'etait pour voir si vous suiviez" haha
En fait, EX = 6 et EY =2 puisqu'il est dit que l'origine est à (0,0), de ce fait CX=4 et CY=5. Il s'est mélangé les pinceaux :-)
Trop de bla bla bla !!!