Page 1 sur 1

[DB-AL] Calcul de la trajectoire d'un pion

Publié : 01 Nov 2019 21:28
par AllezCacahuète
Bonsoir à tous ,
Si j'écris ces lignes , c'est que j'ai un problème ... tout simple , en fait je suis en train de faire un jeu mobile de plateforme qui se joue avec des dés et j'ai tout simplement un problème de calcul des différents chemins possibles pour le pion.
Dans le plateau , le pion peut aller dans 4 directions (Gauche , droit , haut , bas) mais il y a des obstacles , donc si par exemple , on a eu 5 au dés et qu'après trois cases en haut il y a un obstacle , on peut aller encore deux cases à gauche ou deux cases à droite ou encore une case à gauche puis une autre en haut. (En l'absence d'autre obstacles bien entendu)
Bref , c'est beaucoup de possibilités et j'ai des difficultés à trouver l'astuce pour tout calculer du coup , de l'aide serait la bienvenue ...
Merci pour vos éventuelles réponses ;)

Re: [DB-AL] Calcul de la trajectoire d'un pion

Publié : 01 Nov 2019 22:12
par jmhoubre
Bonsoir,
cela ressemble à un problème de recherche de chemin. Tu peux visionner cette vidéo, ca répondra peut-être à ton problème.

Re: [DB-AL] Calcul de la trajectoire d'un pion

Publié : 01 Nov 2019 23:35
par Alesk
Salut,

Ta question n'est pas très claire :
- Tu cherches à calculer tous les chemins possibles ?
- ou bien à prendre un chemin au pif qui corresponde exactement à un déplacement de X cases ?
- ou autre chose ?

Re: [DB-AL] Calcul de la trajectoire d'un pion

Publié : 02 Nov 2019 04:27
par AllezCacahuète
Merci d'avoir répondu !

Merci pour le lien jmhoubre ! Sauf que j'ai juste compris calculer un seul chemin et que je voudrais avoir tous les chemins possibles :/

Donc comme tu l'auras compris Alesk , je cherche à calculer tous les chemins possibles .

Re: [DB-AL] Calcul de la trajectoire d'un pion

Publié : 02 Nov 2019 10:11
par Alesk
Tu pourrais utiliser le pathfinding plusieurs fois, en prenant comme destinations toutes les cases dans un rayon de X autour de ton point de départ... et tu ne conserves que les chemins valides.

Sinon, tu peux faire ça avec une fonction récursive, qui explore toutes les directions à partir du point de départ, case par case, sans repasser par une case déjà visitée.

Tu cherches à obtenir juste les coordonnées des cases atteignables, ou tous les parcours complets vers ces cases ?

Re: [DB-AL] Calcul de la trajectoire d'un pion

Publié : 02 Nov 2019 14:01
par AllezCacahuète
Juste les coordonnées des cases atteignables en fait .

Re: [DB-AL] Calcul de la trajectoire d'un pion

Publié : 02 Nov 2019 15:48
par Alesk
Dans ce cas, tu peux tenter avec le path finding.
Tu calcules les positions des cases se trouvant dans un rayon de X unités autour de ta case de départ (en faisant des ajustements pour t'assurer que ça tombe bien sur le nombre de déplacements que tu veux)
Puis tu utilises le path finding sur chacune de ces cases pour voir si tu y as accès ou pas.

Mais c'est un peu "bourrin" pour un truc aussi simple.
Je pense qu'une fonction récursive serait plus optimale dans ce cas, si la distance est courte.

Re: [DB-AL] Calcul de la trajectoire d'un pion

Publié : 16 Nov 2019 22:22
par AllezCacahuète
Bonsoir ,
J'ai donc étudié un peu le pathfinding et apparemment ça convient , sauf que j'ai petit problème tout bête ...

Donc toutes les cases reçoivent une valeur de 100 et on va dire que j'ai un pion dans une case x et que mon dés égal à 6 , donc si la case au dessus(ou au dessous , ou à gauche , ou à droite) existe et est vide de pion , elle recoit -1 ,ainsi de suite , ensuite il suffit juste de prendre toutes les cases ayant une valeur de 94 , n'est-ce pas ?

Donc je me suis dit que j'allais créer une matrice mais comment faire comprendre à Unity que la case 12 correspond à (Mat [i+1, j]) par rapport à la case 1 par exemple ?

Re: [DB-AL] Calcul de la trajectoire d'un pion

Publié : 17 Nov 2019 23:08
par Alesk
Là il va falloir implémenter le pathfinding toi même en suivant un tuto pas à pas... Ta question est trop spécifique et ne repose encore sur aucun code pour être assez claire.