Bonjour.
Après avoir généré une map grâce a l’algorithme Diamond Square, j'aimerais pouvoir gérer un algorithme qui crée des rivière, en fonction de la répartition de la pluie.
Pour ce faire, je donne à chaque "objet" de terrain qui comporte de la pluie, un objet cible qui va recevoir l'eau accumulé par la pluie. Cet objet "receveur" sera celui qui sera le plus bas alentour.
Si cet objet "receveur" contient lui même de la pluie, alors cette eau va s'accumuler et le prochain "receveur" va recevoir lui même plus d'eau, jusqu'a ce que cette eau se voit graphiquement par exemple et puisse former une rivière.
Ex pseudo code :
Le problème : si un carré reçoit plusieurs sources d'eau, comment exécuter l'algorithme dans le bon ordre pour qu'aucune pluie ne puisse être oublié ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 //je trouve l'objet receveur de chaque partie du terrain qui recoit de la pluie Pour tous les objets "pluie" P : ObjetLePlusBas OB = chercher le plus bas allentour(); P.receveur = OB ; //J'actualise pour créer la répartition de l'eau Pour tous les objets "pluie" P : P.actualise() ; //la fonction actualise de l'objet j'envoie l'eau que l'objet contien sur son receveur : actualise() : receveur.eaurecu += pluie + eaurecu ;
C'est un peu floue mais j'espère que vous aurez compris le pb.
Mon objectif étant de trouver le moyen le plus simple et léger possible pour faire ce calcul...
Si quelqu'un a une idée merci
Partager