AIDE SVP : modéliser comportement animal

cs_Kaylia Messages postés 10 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 12 mai 2006 - 26 nov. 2005 à 06:17
cs_Kaylia Messages postés 10 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 12 mai 2006 - 26 nov. 2005 à 19:30
Salut à tous!

Débutante en JAVA, j'aimerai avoir vos avis sur le sujet suivant:

Il s'agit de modéliser le comportement d'amimaux vivants en société. On fera donc 4 animaux évoluer dans un espace rectangulaire métrique doté d'un repère orthonormé. Lors de leur déplacement, les aminaux laissent une trace odoriférante (une odeur quoi!). Au départ chaque animal (rappel: ils sont 4 en tout) se trouvent aux quatre coins de l'espace et ils se déplacent de la façon suivante : chaque animal essaie d'aller vers l'odeur la plus proche de son voisin de droite, les animaux s'arrêtent lorsqu'ils sont nez à nez. Voilà.

J'ai pensé à faire un tableau à deux dimensions dans lequel je placerai un animal dans chaque coin, mais pour les déplacer selon les conditions énoncées, je ne sais pas comment faire!

J'aimerais savoir comment vous auriez géré les déplacements des animaux.

Merci pour votre aide, @bientôt.

Cordialement, Kaylia

8 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
26 nov. 2005 à 08:57
Salut,



Ben déjà, si tout les animaux sont attirées par l'odeur la plus à
droite, le premier déplacement n'est pas trop compliqué : il faut
qu'ils aillent à droite.

Ensuite, c'est une question de géomètrie : il doivent emprunter la route la plus courte vers l'odeur la plus à droite.

Un tableau à deux dimensions me semble en effet être une bonne
solution. Tu mets un 0 pour une case du rectangle n'ayant pas d'odeur,
un 1 pour une case ayant une odeur, et un 2 pour la position des
animaux par exemple.

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
cs_Kaylia Messages postés 10 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 12 mai 2006 1
26 nov. 2005 à 16:23
Salut!

Merci Dark Sidious, j'étais donc sur la bonne voie.

Concernant les déplacements, comment dois-je faire pour que les animaux ne sortent pas du tableau et pour qu'ils empruntent la route la plus courte? Quelle genre de structure serait la mieux adaptée (pour, si, répéter... jusqu'à, tant que... faire)?

Une précision: si l'animal A est attiré par l'animal B, l'animal A doit mémoriser la position de l'animal B puis se déplacer près de cette position (il se déplace vers l'odeur la plus récente que son voisin de droite a laissé en partant), en gros: animal = odeur, donc il n'y aura pas de distinction entre l'animal et son odeur car il en laisse toujours une.

Merci pour votre aide, @ bientôt.

Cordialement, Kaylia
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
26 nov. 2005 à 16:48
Pour qu'ils ne sortent pas, il suffit de tester les limites de ton
tableaux : si tu dépasse les limites de ton tableau lors du prochain
déplacement, c'est que l'animal va sortir de son enclos !



je te conseille une boucle while pour faire cà, car une boucle for n'est pas utile.

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
cs_Kaylia Messages postés 10 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 12 mai 2006 1
26 nov. 2005 à 17:09
Ok merci de me répondre.

J'ai schématisé le tableau à deux dimensions (un petit 4*5) avec les animaux sur papier, à la fin, tous mes animaux se trouvent à droite du tableau, dans quatre cases formant un carré.
J'ai une question: en algorithmie et en langage JAVA, comment dois je faire pour que l'animal B prenne en compte les coordonnées de l'animal A (qui l'attire) avant de se déplacer?

Merci pour votre aide, @ bientôt.

Cordialement, Kaylia
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
26 nov. 2005 à 17:45
Moi je te conseillerai de faire une classe pour représenter tes animaux, et une classe pour représenter ton rectangle.



Chaque animal doit avoir au moins une propriété : sa position actuelle, et une fonction : le déplacement.



Dans le déplacement, il faut tester quel est l'animal le plus proche, et si rendre par le plus court chemin (ligne droite donc).



Grosso-modo, cela équivaut à dire : Animal B aux coordonnées (x2, y2) va vers animal A aux coordonnées (x1, y1).

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
cs_Kaylia Messages postés 10 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 12 mai 2006 1
26 nov. 2005 à 18:16
En fait, quand tu me dis de faire une classe pour représenter mes animaux, cela veut dire que quelque soit le nombre d'animaux que j'aurais, ils utiliseront tous la même classe?
Ensuite, peux tu me donner un exemple de classe s'il te plaît?

Merci de me répondre, @ bientôt.

Cordialement, Kaylia
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
26 nov. 2005 à 19:26
Non justement, chaque animal utilisera une instance différente de la classe (ce sera des objets indépendants).



En gros, cela donne :



class Animal {

private int positionX;

private int positionY;



public int getPositionX() {

return positionX;

}



public void setPositionX(int X)

this.positionX = X;

}



public int getPositionY() {


return positionY;


}





public void setPositionY(int Y)


this.positionY = Y;


}


public void Deplace (int[] positionAutresAnimaux) {

// déplacer positionX et positionY
selon la position des autres animaux dans le tableaux passé en
paramètre.

}

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
cs_Kaylia Messages postés 10 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 12 mai 2006 1
26 nov. 2005 à 19:30
Merci beaucoup!

Je m'y mets et je te tiens au courant, encore merci

Cordialement, Kaylia
0
Rejoignez-nous