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 :

Amas aléatoires sur un tableau


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut Amas aléatoires sur un tableau
    Bonjour, c'est mon 1er post sur ce forum alors j'espere le mettre au bon endroit ^^

    Mon soucis est le suivant :

    J'aimerais remplir aleatoirement un tableau (100*100) mais par amas!
    Ce tableau contient uniquement les entiers 1,2,3 et j'aimerais faire des paquets de 1, de 2, et de 3 , une procedure me permettant par la suite de l'afficher par 3 couleurs sur une grille: il faudrait commes des taches ^^

    J'ai pensé a un algorithme avec des germes puis une croissances (en cercle) jusqu'à toucher un autre 'cercle croissant' pour remplir le tableau, mais voila de 1 j'ai du mal a le codé et de 2 cela ne me semble pas super optimal car multiplie les boucles..

    Donc voila si il existe deja un algorithme du meme type ou si quelqu'un a une petite idée ca serait super sympa

    (Je code sous delphi, c'est pour un petit projet 'scolaire')

    Merci a tous

  2. #2
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    Je ne suis pas sûr de comprendre ce que tu veut faire:

    Pour ma part, il me semble, que tu veut générer quelques points alléatoires autour desquels doit "fleurir" une forme gérée par ton algo.

    Dans ce cas, il y a plusieurs points à élucider :
    • Tes Amas ont ils une distance minimale/maximale ou une contrainte du genre "ne pas se toucher" ou bien peuvent-ils être confondus (grandir après s'être touchés)?
    • Est-ce que la série "1,2,3" doit être aléatoire aussi ou juste le point de départ, ou même pas du tout ?
    • La croissance doit-elle être progressive ou seul le résulta compte ?
    • A-tu une contraine particulière ou une idée précise de la tête de ces amas ou bien ce n'est pas important du moment que c'est "joli" ?


    Sinon, sache que la plupart du temps, faire plein de boucles est plus économique que de faire appel à la fonction aléatoire.

    Bonne chance

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    Je vais tenté d'être plus précis!

    Le projet est un automate cellulaire 'simulant' des feux de forêt!

    Le programme est presque fini mais j'ai envie d'implémenter une fonction aléatoire permettant de remplir le 'terrain' aléatoirement, mais par amas:

    3 correspond a de la foret, 2 a des 'buissons' et 1 a une zone désertique

    Ce que j'aimerais c'est créer des zones aléatoires automatiquement, soit remplir le tableau 100*100 de 1, 2 et 3 en faisant des amas!

    Pour répondre plus précisement à tes questions:
    => les amas doivent se toucher , pas de zone vides, ou alors faire des amas de 2 et de 3 puis remplir le reste par des 1, mais je préfère un rendu 'patates qui se touchent' lol
    => les points de départs peuvent être totalement aléatoires!
    => seul le résultat compte, mais si une croissance est possible, pourquoi pas, mais ce n'est pas la priorité du tout !!
    =>il faudrait un résultat joli, des taille aléatoires , mais des amas de plus de 20 cases je dirais ^^



    Voila si cela peut répondre a tes questions!
    Merci pour l'interet que tu y porte

  4. #4
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    Voilà qui change déjà pas mal.

    Pour ce qui est de la génération, il suffit de mettre quelques randoms sur une paire de valeur (x,y)

    Pour avoir des "jolis" amas de plus de 20 cases, il suffit d'augmenter la taille de la grille ou de diminuer le nombres de "points de départs" (générés aléatoirement).


    Si tu ne veut pas de zone vides, il suffit, je pense, de choisir des vitesses de croissances différentes pour les types 1,2,3 (genre les buissons poussent plus vite que les arbres), puis faire un algo qui checke le tableau du type: si il y a une case vide a coté pendant n itérations (n inversement proportionnels à la vitesse de croissance) le type de ma case est mis dans la case adjacente
    etc...
    et tu fait ça jusquà ce que ton tableau soit rempli (ou bien que tu l'arrête au bout de P itérations) en regardant pour chaque cases le type des cases à coté (0(vide), 1,2 ou 3).
    Si tu veut améliorer, tu peut aussi définir des règles d'interaction entre cases non vides du genre "les conifères tuent les cases adjacentes de buissons en p itérations"...

    Techniquement, je dirais que du doit définir pour chaque case une valeur (ou plusieurs) qui définirons leur "tendance", les cases adjacentes ayant un effet dans un sens ou dans un autre sur ces valeurs, la case pouvant devenir d'un certains type selon un critère de domaine de ces valeurs.
    Tu peut d'ailleurs faire en sorte qu'un type aie une portée à plusieurs cases de distances (qui va en s'atténuant) ce qui renforcera l'effet d'"amas".

    L'algo me parait relativement simple à écrire, c'est l'ajustement des différents paramètres et la définition des règles qui peut être longue.

    Ensuite, si tu veut t'amuser, tu peut créer différent types de terrains modifiant telle ou telle valeur dans un sens ou dans un autre, mais tu n'est pas obligé d'être aussi suicidaire que moi

    En tout cas, bonne chance

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    Bon alors comme tu a dit, pour la generation , des random sur des (x,y), c'est deja fait ^^

    Je commence a visualisé l'algorithme qu'il me faut grace a tes pistes !
    J'irais pas aussi loin que de faire des tendances etc.. parce que des amas sommaires me suffise mais maintenant j'ai une idée du procédé, qui ressemble d'ailleur pas mal à l'algorithme de l'automate cellulaire gérant le feu^^

    Je vais maintenant essayer de coder ca!


    merci beaucoup

  6. #6
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    De rien.

    Quand j'ai vu quel étais ton problème, ça m'a tout de suite fait penser au jeu de la vie. c'est le même principe avec des rêgles plus compliquée.

    En tout cas bonne chance

    (ensuite, tu pourra t'amuser à mettre le feu au milieu et a voir si il existe un équilibre sachant que les terres brulées sont plsu fertiles qu'il y as des saisons ou le feu est inexistant et d'autres ou il nait :p

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Random aléatoire sur un tableau !
    Par sayajin dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 25/06/2006, 02h20
  2. function sur un tableau
    Par bibi2607 dans le forum ASP
    Réponses: 9
    Dernier message: 17/02/2005, 09h54
  3. Réponses: 2
    Dernier message: 08/04/2004, 16h30
  4. Comment faire un Drag&Drop sur un tableau
    Par Stef.web dans le forum Composants VCL
    Réponses: 6
    Dernier message: 11/10/2003, 13h12
  5. [VBA-E] Dim dynamique sur un tableau
    Par Vince69 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/12/2002, 13h32

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