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

Algorithmes et structures de données Discussion :

Générateur de carte ( 2D )


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Par défaut Générateur de carte ( 2D )
    Bonjour,

    je souhaite savoir si il existe des algo dont je pourrais m'inspirer (ou du code C++ déjà existant) et qui me permettrait de travailler sur un générateur de carte 2D.

    Le but : générer une carte en 2D (avec "tile") représentant une ville avec des cases de rue, des cases batiments etc..... J'aimerais pouvoir également paramétrer cette fonction pour avoir par exemple plus ou moins d'éléments.

    Je vous remercie par avance.

  2. #2
    Membre émérite Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Par défaut
    Pas d'algo connus, mais tu peut un concept de "graine" (seed), et de probas.
    Par exemple, si un suppose qu'un carré (tile) contient soit du vide soit un élément de batiment :

    Tu as une première proba qui te donne la chance d'avoir une graine sur un carré.
    Ensuite une 2ème proba (plus faible) qui te donne la chance d'avoir un carré avec batiment sur les carrés voisins de chaque graine (4 ou 8 voisins).
    Et enfin éventuellement un facteur de décroissance de la prob2 au fur et à mesure que l'on s'éloigne de chaque graine.

    L'algo consiste à :
    1. mettre à vide la map
    2. pour chaque carré tu test proba1, si c'est vrai alors tu place un élément de batiment pour la graine et :
    2.1 tu fait une récursion sur chaque voisin :
    tu part de la graine et tu test la proba2 * coef de décroissance, si c'est vrai :
    - tu place un élément de batiment
    - tu récurse 2.1 sur les voisins du voisins, ....etc

    Sans oublier que dans 2 et 2.1 si le carré à tester n'est pas vide tu passe à la case suivante.

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Par défaut
    Un grand merci pour ta réponse.
    J'ai le point de départ et il n'y a plus qu'à se retrousser les manches et élaborer tout ça.

  4. #4
    Membre émérite Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Par défaut
    Pour finir, si le résultat est un peu trop aléatoire tu peut aussi ajouter des contraintes géométriques pendant la récursion. Soit des contraintes fixes, soit des contraintes sous forme de proba.

    Par exemple si le carré courant à tester est trop éloigné en x et y de la graine tu stop la récursion sur cette branche.

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    L'idée d'utiliser les proba pour la génération de "monde" a déjà été proposée par un membre du forum et formalisée dans un document:

    http://www.developpez.net/forums/sho...55&postcount=3
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Membre expérimenté
    Inscrit en
    Mars 2008
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 209
    Par défaut
    il existe un plug-in de 3dsmax qui s appelle Greeble qui est exactement ce que tu recherche en 3d a partir d'une surface mais vu que tu veux de la 2d il suffit de faire une projection . avec un peu de chance tu peux trouver son algorithme.

Discussions similaires

  1. Générateur de cartes de voeux
    Par Miche13 dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 31/10/2008, 09h30
  2. Réponses: 6
    Dernier message: 09/04/2007, 16h52
  3. [DX 9][C++]Plein ecran + carte graphique
    Par delire8 dans le forum DirectX
    Réponses: 2
    Dernier message: 09/05/2003, 20h11
  4. [Turbo Pascal] [MS-DOS] Lire la Mac-address de la carte réseau
    Par toctoc dans le forum Turbo Pascal
    Réponses: 14
    Dernier message: 21/02/2003, 22h08
  5. Accès au port 700h pour une carte d'interface
    Par haypo dans le forum Matériel
    Réponses: 3
    Dernier message: 07/11/2002, 11h30

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