IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

pathfinding en js


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    53
    D�tails du profil
    Informations personnelles :
    �ge : 34
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 53
    Par d�faut pathfinding en js
    Bonjour!
    Je d�veloppe un jeu en ligne fonctionnant � l'aide d'une carte 2D comportnt des cases de diff�rents types (eau, montagne, for�t, herbe). J'aimerais savoir comment faire pour cr�er un algorithme simple de pathfinding en javascript.
    Je me suis renseign� sur le A*, mais on dirait qu'il n'est pas possible de l'utiliser avec JS (�a ne m'�tonne pas trop, en m�me temps ).
    Et au pire, est-ce qu'un tel script existe en PHP?

    Merci d'avance!

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    rien compris ... ???
    tu peux expliciter un peu ?
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    53
    D�tails du profil
    Informations personnelles :
    �ge : 34
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 53
    Par d�faut
    En fait voil�:
    Un joueur poss�de un quota de d�placement de 9 (par exemple). Il faut qu'il se d�place de A vers B avec un chamin qui lui prendra le moins de d�placement possible.
    Or:
    - une plaine prend un d�placement
    - une foret en prend 2
    - une montagne 3
    - une mer 999 (on ne peut pas passer)
    Comment faire, donc, pour r�ussir � cr�er un script qui permettra de d�finir le chemin le moins "on�reux"? La carte est une grille, donc cel� facilite peut-�tre les chose, je ne sais pas trop...

  4. #4
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    Javatwister ? t'es l� ?
    c'est un challenge pour toi ...
    � moins que tu n'aies d�ja �a dans tes cartons ?
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  5. #5
    LEK
    LEK est d�connect�
    Membre �clair�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Par d�faut
    Pourquoi ce ne serait pas possible d'impl�menter un tel algorithme en js? Le seul probl�me potentiel peut provenir de la grandeur et de la complexit� de la matrice... Mis � part cela, �a � l'air d'�tre un algo largement impl�mentable en js !

  6. #6
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    ben nan j'ai pas fait �a dans ma vie; mais c'est int�ressant!

  7. #7
    R�dacteur
    Avatar de marcha
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    D�cembre 2003
    Messages
    1 571
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 1 571
    Par d�faut
    Salut,

    Voici comment j'imagine ton algo. C'est pas abouti. Mais �a devrait
    te permettre de faire des tests.

    Toute la probl�matique se situe dans la fonction r�cursive findPath
    bon courage

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Gestelle - Gestion de Tutelle</title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <style type='text/css'>
    div { width: 40px; height: 40px; text-align: center; float: left; border: 1px solid black; }
    div.start { background-color: red; }
    div.clearboth { clear: both; }
    </style>
    <script language='javascript' type='text/javascript'>
    var MAPW = 20;
    var MAPH = 10;
    var map = "####################" +
              "####################" +
              "####################" +
              "########33333333####" +
              "#######133333#######" +
              "####11111222222#####" +
              "###11111111222222###" +
              "#####11111111111####" +
              "####################" +
              "####################";
     
    var values = new Array();
     
    function getMapValue(x, y) {
    	var c = map.charAt(x + y * MAPW);
    	if(c=='#') return 999;
    	return c-0;
    }
     
    function findPath(x, y, v) {
        if(values[y][x]!=999) return; // a discuter
    	n = getMapValue(x, y);
    	if(v<n) return;
    	values[y][x] = Math.min( values[y][x], v); // a discuter
    	v = v - n;
            // à modifier, explorer une voie que si elle est non explorée ou 
            // qu'elle est plus honéreuse à ce stade
    	if(x > 0) findPath( x - 1, y, v);
    	if(y > 0) findPath( x, y - 1, v);
    	if(x < MAPW-1) findPath( x + 1, y, v);
    	if(y < MAPH-1) findPath( x, y + 1, v);
    }
     
    function initValues() {
    	values = new Array();
    	for(var y=0;y<MAPH;y++) {
    		values[y] = new Array();
    		for(var x=0;x<MAPW;x++) values[y][x] = 999;
    	}
    }
     
    function showValues() {
    	for(var y=0;y<MAPH;y++) for(var x=0;x<MAPW;x++) {
    		var cl = new Array();
    		if(x==0) cl[cl.length] = 'clearboth';
    		if(y==PY && x==PX) cl[cl.length] = 'start';
    		cl = cl.join(' ');
    		document.write( "<div class='" + cl + "'>" + values[y][x] + "</div>");
    	}
    }
     
    var PX = 10;
    var PY = 5;
    initValues();
    findPath(PX, PY, 8);
    showValues();
     
    </script>
    	</head>
     
    	<body>
    </body>
    </html>

Discussions similaires

  1. Questions autours du pathfinding
    Par valefor dans le forum Algorithmes et structures de donn�es
    R�ponses: 15
    Dernier message: 25/07/2007, 19h41
  2. Biblio pour g�rer pathfinding
    Par Mat.M dans le forum D�veloppement 2D, 3D et Jeux
    R�ponses: 5
    Dernier message: 28/06/2007, 15h07
  3. Pathfinding A* Astar
    Par LEK dans le forum Intelligence artificielle
    R�ponses: 8
    Dernier message: 01/06/2007, 11h33
  4. pathfinding click and play
    Par youp_db dans le forum Algorithmes et structures de donn�es
    R�ponses: 13
    Dernier message: 05/08/2006, 00h28
  5. R�ponses: 8
    Dernier message: 12/04/2006, 01h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo