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

 C++ Discussion :

Sujet : Proie_Predateur


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Sujet : Proie_Predateur
    Bonjour à tous en faite j'ai un problème que j'arrive pas résoudre je demandai si vous pourrez m'aider,
    je suis entrain 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;
    }

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Visiblement ton problème est algorithmique... c'est donc dans le forum idoine qu'il faut poster. Sinon pour les problèmes techniques, il y a le forum C++. Pas ici donc en somme.

    Finalement, n'oublies pas de lire les règles du forums et !

Discussions similaires

  1. [Débat] Expériences au sujet de .NET
    Par DevX dans le forum Débats sur le développement - Le Best Of
    Réponses: 46
    Dernier message: 25/05/2014, 11h16
  2. Au sujet des mots de passe
    Par FranT dans le forum Langage
    Réponses: 6
    Dernier message: 17/09/2002, 22h16
  3. [DB2] Au sujet de...
    Par Eric Denné dans le forum DB2
    Réponses: 2
    Dernier message: 16/09/2002, 19h21
  4. Au sujet des constantes
    Par FranT dans le forum Langage
    Réponses: 8
    Dernier message: 09/08/2002, 11h03

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