begin process at 2012 05 30 10:45:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

Proie_Predateur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Proie_Predateur

mardi 2 décembre 2008 à 14:14:22 | Proie_Predateur

bekha

Bonjour à tous en faite j'ai un problème que j'arrive pas résoudre je demandai si vous pourrez m'aider,
je suis d'ecrire un programme en c++ de 4 prédateurs qui cherchent à encercler une proie

hypothéses

- envronnement est  defini comme une grille 2d
- Pas de mem position por tous les acteurs
- L'environnement est totalement accessible
- Le nbre d'intanciation de mobile_predateur est au moins de 4 le  nbre de mobile est defini par l'utilisateur
- Encerclement ssi presence de 3 predateurs pas capabilité de s'en fuir

classe mobile_proie et classe mobile_predateur heritent de la class mobile

J'ai fait un bout de code mais c pa encore complet

Auriez vous pas des solutions, merci 

beman


* Titre  : Proie_predateur
   Resumé : quatre prédateurs cherchent à encercler une proie
   Auteur :
   Date   : 25-11-2008
*/  
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;

class mobile

{
 protected:
 float x,y,d;

 public :
  mobile(int,int,int);
  ~mobile();
  void deplacement(int,float,float);
  float distance(mobile &);
  void suivre(mobile &);
  void afficher();
  //void ecart(int,int,int,int);
};

mobile :: mobile(int abs,int ord,int c)

{
  x=abs;
  y=ord;
  d=c;
}
 
mobile :: ~mobile()

{
}
 
void mobile :: deplacement(int n,float dx,float dy)

{
 switch(n)
  {
 case 1:
       x=dx++;
       y=dy++;
       break;
 case 2:
       x=dx++;
       y=dy--;
       break;
 case 3:
       x=dx--;
       y=dy++;
       break;
 case 4:
       x=dx--;
       y=dy--;
  }
}

float mobile :: distance(mobile &m)//Methode retournant la distance seperant un mobile M de sa position initiale.

{
   float dx = x-m.x;
   float dy = y-m.y;
      return sqrt(dx*dx + dy*dy);
}

void mobile :: suivre(mobile &n)

{
      //int pas = 1;
      float dist = distance(n);
      float dx,dy;
      dx= (d/dist)*(n.x-x);
      dy= (d/dist)*(n.y-y);
      x = x+dx;
      y = y+dy;
}
     
void mobile :: afficher()
{
      cout <<" les coordonnées de ce mobile sont:"<<""<<x<<" et "<<y<<"\n";
}

 /* 
//class proie derivant de la classe mobile

class mobile_proie : public mobile

{
  public :
         mobile_proie(int, int, int,int);
};
      
mobile_proie :: mobile_proie(int abs,int ord, int xf, int yf) : mobile(abs,ord)
{
         int i;
         if ((x++ != xf)&& (y++ != yf))
         for(i=1; i<4 ;i++)
         do(mobile :: deplacement (i,abs,ord));
         while((x!= xf)&& (y!= yf));
         else
         cout <<"position finale atteinte avec succés"<< endl;
}

//class mobile-predateur derivant de la casse mobile

  class mobile_predateur : public mobile

{
  public :
         float dist1;
         float dist2;
         mobile_predateur(int,int,int,int,int,int);
         void poursuivre(int,int,int,int);
};
         mobile_predateur :: mobile_predateur(int abs,int ord,int xp1,int yp1,int xp2,int yp2): mobile(abs,ord)
{
        //dist1 = ecart(abs,ord,xp1,yp1);
         /*dist2 = mobile :: ecart(abs,ord,xp2,yp2);
}
         void mobile_predateur :: poursuivre(int xp1,int yp1,int xp2,int yp2)
{
         //if(dist1 < dist2)
 { 
         mobile :: suivre(xp2,yp2)
 }
         else
         mobile :: suivre(xp2,yp2)
        
}

*/

//int main(int argc, char *argv[])
 
 main()
{
   
 
           
   }
   system("PAUSE");
    return EXIT_SUCCESS;
}




Cette discussion est classée dans : int, mobile, float, dx, predateur


Répondre à ce message

Sujets en rapport avec ce message

dépassement capacité d'un float et int [ par golum ] result=scanf("%f",&coef); if (result !=0 && coef !=0)Voila si j'entre un nombre délirant style 9999999999999999999999999999999999999999999999999999999 équation et tableaux [ par cabarrus ] je ne trouve pas l'erreur dans mon programme?#include#includeint deltanul(int);float deltainf(float);float deltasup(float);void main(void){float a,b,c petit aide pour prog simple [ par myogtha ] je fais un jeu style serpent mais je ne connais pas encore les pointeur alors j'ai fais ça mais ça tourne pas pouvez vous m'expliqué un peu merci bien arondir un float en int [ par guillaume21 ] je voudrai convertir un float en int (le cast tronque mais n'arrondi pas) sans utiliser la "bidouille" :inr i;float f;char car[6];sprintf(car,"%6.0f", Probl avec float et int [ par David2907 ] Après un calcul, comment faire pour afficher un resultat sans virgule ou un resultat avec virugule???Merci pb incrementation variable. [ par conan76 ] Voila j'ai passé l'après midi a chercher d'ou vient mon problème sans succès.je tente même de faire des affichages console avant et après incrémentati pourquoi ca marche pas :'( [ par xboxut ] salut j ai un probleme avec une fonction pour initialiser des particules,pouvez vous me dire pourquoi il ne marche pas et comment le faire marcher#inc comment tester un type de donné en C++ [ par Armandopoulos ] Salut !!en VC++Je voudrai bien savoir comment tester un type de donné (par ex. int , float , long , char) entré par l utilisateur au clavier.J ai pens C++ -> Java [ par christouilhe ] Bonjour à vous tous.J'ai une question à vous poser ...Il se trouve que je dois retranscrire un programme C++ en Java, mais il y a une fonction que je connection BDD en C [ par naru ] Bjr J'ai un code dans lequel je dois modifier le chemin de la bdd, et rentrer les paramètres de l'utilisteur (login/pass). Seulement, je ne vois pas


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales