Bonjour à toutes et à tous,
Je me tourne vers vous suite à un problème que je n'arrive pas à résoudre depuis bientôt un mois malgré tout mes efforts.
Effectivement je suis actuellement entrain de développer un jeu de plateau en JavaScript et je bloque sur l'algorithme à utiliser pour le déplacement.
Pour mieux vous situer le contexte, le jeu est tour par tour, les joueurs (au nombre de 2) choisisses un vaisseau en début de partis qui à 2 caractéristiques à prendre pour mon algorithme :
- le nombre de case de déplacement sont différent selon le vaisseau (et cette propriété peux changer aussi pendant la partie).
- la taille du vaisseau peux varier de 1 à 3 cases de long (il à donc une orientation qui change selon ou il se déplace).
La carte peux posséder divers obstacles :
- les obstacles joueurs qui peuvent donc faire de 1 à 3 cases.
- les obstacles de carte qui font tous une case.
Ma problématique est donc quel serais le meilleur algorithme pour trouver ou peux se déplacer le joueur ou non. Jusqu'ici j'ai réussi à définir le périmètre maximum de déplacement, mais le problème est qu'il ne prend pas en charge les obstacles présent ni sa rotation si il se dirige vers tel ou tel endroit.
Voici donc ou j'en suis dans ma recherche.
Actuellement mon algorithme me donne ceci comme déplacement possible :
Dans ce cas de figure le vaisseau fait 2 cases de taille (il avance par l'avant du vaisseau pour ce qui est de la rotation cependant son rayon de déplacement et calculer pour l'élément avant comme arrière) et son nombre de cases sur le quel il peux se déplacer est de 4.
(carré vert = joueur / zone bleu = zone de déplacement / rond gris = obstacle)
Hors ce que je cherche à obtenir est ceci :
Si vous avez donc des idées, des débuts de piste ou même de la documentation que je n'aurais pas trouvé à ce sujet je suis preneur !! Merci d'avance pour votre temps et votre aide.
Partager