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 :

Conception d'un algorithme de conception de plateaux de jeu


Sujet :

Algorithmes et structures de données

  1. #1
    Membre habitué Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Points : 191
    Points
    191
    Par défaut Conception d'un algorithme de conception de plateaux de jeu
    Bonjour à tous.

    Voilà mon problème. Je dois réaliser un script PHP capable de générer des plateaux de jeu. Ces plateaux devront être enregistrables dans une base de donnée de type MySQL/PostgreSQL. Voici les contraintes que je dois respecter:

    - plateau de jeu 2D à nombre variable de cases fixé dans les paramètres du script (par exemple 50x50 ou plus compliqué 50x120)
    - Passer en paramètre le type de case désiré ainsi que sa fréquence (par exemple 6% des cases du plateau seront de type 1), et ce pour chaque type de case que je veux ajouter
    - Définir les contraintes de localisation de chaque case (par exemple les case de type 1 devront obligatoirement être en contact avec 1 à 3 autres cases de type 1 et ne pas être en contact avec des cases de type 2)
    - Définir pour un type de case la probabilité de présence d'un bâtiment (par exemple j'ai 0.5% de chance d'avoir une auberge sur les cases du type 1, avec un minimum de 3 case de type 1 avec une auberge sur le plateau).

    Voilà, je cherche donc des conseil sur le meilleur moyen de réaliser un tel script. Pour ma part, je pensais faire une classe PHP avec une fonction de génération. Chaque contrainte étant analysé par une autre fonction de la classe. La où je coince c'est vraiment la partie algorithmique.

    En sachant que la carte sera générée une fois pour toute, donc même si le script et long et lent ce n'est pas trop grave.

    En vous remerciant
    Quelques conseils:

    Utilisez <?php plutôt que <?
    Utilisez des ' et la concaténation plutôt que "
    Pensez à revenir à la ligne après chaque ; pour plus de clarté.
    // Commentez votre code un maximum

  2. #2
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 114
    Points : 120
    Points
    120
    Par défaut
    Ce que tu decris la ressemble beaucoup au "jeu de la vie", qui est un automate cellulaire Lien.

    L'idée c'est de partir d'une repartition aleatoire qui reponderait au contraintes de fréquence et a certaines contraintes d'ordre global ( du genre centre de type 1, bord de type 2... ), un algo de generation de map probabiliste classique ferait surement l'affaire.
    Ensuite, il faut transformer les contraintes de localisation en régles de vie.
    ex :
    par exemple les case de type 1 devront obligatoirement être en contact avec 1 à 3 autres cases de type 1 et ne pas être en contact avec des cases de type 2
    donnerais :

    • Une case de type 1 qui est en contact avec une case de type 2 meurt.

    • une case de type 1 qui a plus de 3 voisins de type 1 meurt.

    • Une case de type 1 qui n'a pas de voisin de type 1 meurt.

    • Une case morte ayant aucun voisins de type 2 et entre 1 et 3 voisins de type 1 devient une case de type 1

    • Une case de type 1 qui n'a qu'un seul voisin de type 1 ( Candidat valide mais faible) + le nombre de cases de type 1 > max meurt.

    • ...



    Le nombre de generations reste a determiner, soit à l'aide d'une fonction de test (lorsque le nombre de changement d'etat < n ) ou alors de facon arbitraire.
    Il faudra aussi prevoir une fonction de remplissage des cases mortes ( une simple case par defaut devrait suffire ).
    Avec ca tu devrais avoir une map repondant à toute les contraintes , ou du moins assez proche.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/01/2015, 14h27
  2. Réponses: 7
    Dernier message: 07/07/2013, 18h32
  3. Réponses: 6
    Dernier message: 04/01/2011, 18h18
  4. conception algorithme génétique
    Par debalgo dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 05/01/2009, 14h10

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