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

Java Discussion :

Aquarium, Proies, Prédateurs, algorithmes Java !


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 21
    Par défaut Aquarium, Proies, Prédateurs, algorithmes Java !
    Bonjour a tous, je suis en License 2 de Mathématique à l'Université ! Le seul probleme c'est que je ne suis pas passé par une L1 mais par un classe prépa avant, et je n'est pas fait de java la-bas, ce qui fait que Java pour moi c'est nouveau, et j'ai 1 an de retard par rapport aux autres, je ne comprend donc absolument rien !!

    J'ai ceci à regarder pour demain mais je ne sais donc pas quoi écrire aux emplacements prévues (voire pièces jointes................)
    Ca m'énerve un peu cette situation car certains de mes profs me rabaissent un peu trop......................!
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Mais c'est quoi l'énoncé au juste ? Parce que je n'ai pas trouvé dans le code joint une mention de quelque chose qu'il faudrait implémenter ou modifier (enfin, si, je vois des formes de code plus ou moins horribles qu'on pourrait/devrait mieux écrire, mais quelque chose qui ressemble de près ou de loin à un énoncé d'exercice, non. Je pourrais me lancer dans un exercice de divination et imaginer tout ce qu'on veut (comme un bouton pour ajouter un prédateur ou une proie dans l'arène, par exemple), mais ce serait mieux d'avoir un énoncé, histoire de ne pas perdre son temps à répondre à des questions non posées...

    De plus, si tu as déjà appris un autre langage que Java, ça ne devrait pas être difficile de comprendre l'algo (des déplacements, des collisions, des trucs comme çà). Pour l'affichage, je veux bien que ça ne te parle pas directement, mais tu peux deviner (ce qu'est une fenêtre, un bouton, tout ça). Pour le reste, sur des points particuliers sur lesquels tu sèches, tu peux poser la question. Mais je ne pense que tu trouveras quelqu'un pour passer la journée à t'expliquer le programme ligne par ligne. Quant à te faire ton exercice d'ici demain, n'y compte pas trop non plus. Déjà, ce n'est pas l'objet de ce forum, mais en plus ça ne servirait pas à apprendre, et tu te retrouverais dans la même situation pour l'exercice suivant.

    Si tu ne connais aucun langage de programmation, c'est déjà beaucoup plus difficile, et me semble plutôt compromis pour demain, même si tu trouvais quelqu'un pour passer une nuit blanche à t'expliquer les rudiments de programmation, programmation orientée objet et Java (Pas moi en tout cas, je passe mes nuits blanches sur Destiny en ce moment).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 21
    Par défaut
    Ah oui pardon voila l'énoncé !! Cela correspond au TP2 a l'intérieur de l'énoncé, le TP1 étant complètement autre chose !!

    MDR oui je comprend, passe tes nuit sur Destiny, c'est surement plus amusant

    Et non, le seul autre langage que je connais est MAPLE !! Les profs m'ont dit que j'avais beaucoup de boulot, car c'était très loin de JAVA !! En plus en MAPLE, j'étais loin d'être une bête............................!! Peut tu m'aider juste rapidement, au moins le début de ce qu'il faut écrire sur chaque classe ??
    Images attachées Images attachées

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Oui, effectivement, Maple et Java, n'ont pas grand chose en commun.

    A mon avis, tu vas être obligé de passer par la case "apprentissage des bases" : tu peux commencer par les tutoriels présents sur DVP. En tout cas, sans ces bases, il est difficile de faire quoique ce soit.

    Commençons par simple : la question 2b)

    Impossible de modifier le constructeur d'une classe, si on ne sait pas ce qu'est une classe, ou ce qu'est un constructeur de classe. Je pourrais te dire que chaque fichier .java définit une classe, définition caractérisée par le début sous la forme "public class NomDeClasse". Mais il faudra voir par toi-même ce que représente ce concept de classe dans un langage orienté objet et les particularités inhérentes au langage Java concernant les classes. Et en particulier, les constructeurs.

    Pour simplifier, le constructeur d'une classe, c'est un peu comme une fonction d'initialisation : c'est un sous-programme qui sera exécuté lorsqu'une instance de classe est créée (une classe définit un comportement, et il peut y avoir plusieurs instances particulières (différentes) ayant ce comportement). En Java, le constructeur est une méthode qui a pour nom le nom de la classe, et aucun type de retour.



    Le code évoqué est celui-là : le constructeur de la classe Aquarium.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Aquarium (int NbProies, int NbPredateurs)
       {
       	lesProies = new ArrayList(); // 1
       	this.lesPredateurs = new ArrayList(); // 2
     
       	this.lesProies.add( new Proie( Aleatoire(0, ESPACEVITALX) , Aleatoire(0, ESPACEVITALY) )  );  // 3
     
       	maFenetre = new Fenetre("Proies Predateurs", 500, 500, this.lesProies, this.lesPredateurs, 0, Color.RED, Color.BLACK); // Création de la fenêtre graphique
     
       }
    Dans ce constructeur, on passe 2 paramètres : un nombre de proies, appelé NbProies, et un nombre de prédateurs, appelé NpPredateurs. Ensuite, on initialise 2 attributs, qui représent respectivement des listes de proies, et des listes de prédateurs (lignes notées // 1 et // 2).

    Puis en //3, on ajoute une instance de classe Proie dans la liste de proies. Comme la question de l'enoncé est d'ajouter autant de proie que NbProies, il suffit de répéter cette opération NbProies fois. Evidemment, on va faire une boucle pour ça. Une boucle for, par exemple. Je ne sais pas s'il y a des for, ou d'autres types de structure, en MAPLE, mais là aussi, il est indispensable que tu apprennes (par toi-même) les bases de la programmation structurée ( les sequences, les options, les alternatives, les boucles...), si tu ne les connais pas déjà.

    Voir Tutoriel Oracle.

    A la fin on créé une Fenêtre pour l'affichage.

    Ensuite, si tu regardes la classe Proie et son constructeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Proie (int xx, int yy )
    {
    	this.x = xx;
    	this.y = yy;
     
    	this.duréeVie = DUREEVIE;
    	this.gaugeFaim = Aleatoire(3,8);
    	this.pasX = Aleatoire( -2, 2 );
    	this.pasY = Aleatoire( -2, 2 );
     
     
    }
    On voit qu'on initialise la variable duréeVie avec la valeur de DUREEVIE qui est déclarée comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static final int DUREEVIE = 300;
    Donc tu devrais au moins pouvoir répondre à la première partie de la question "La durée de vie d'une proie est de combien normalement ?"; Pour la seconde partie, pour pouvoir y répondre, on voit que cette variable est décrémentée dans la méthode déplacement() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.duréeVie--;  							 // il viellit
    A chaque déplacement, on enlève 1 à duréeVie. Ensuite, il suffit de regarder si dans cette classe, il existe un test qui détermine que si duréeVie==0 (vaut 0) alors la proie est morte. Non. Et comme l'attribut duréeVie est private, seul l'instance peut le tester. Tu peux donc répondre en toute logique à la seconde partie.

    Pour le point 2c), on demande justement de coder la méthode mortalité() qui va devoir tester les valeurs de duréeVie de toutes les proies (et prédateurs à priori), pour savoir si elles sont encore vivantes ou mortes. En cas de mort, il faut la supprimer de la liste respective, avec la méthode remove(), ou.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 21
    Par défaut
    J'ai pas tout compris mais d'accord ! Je vais essayer !

    La durée de vie au départ est de 300 pour toutes les proies ?

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par TheRogerFederer Voir le message
    La durée de vie au départ est de 300 pour toutes les proies ?
    Exactement.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. Algorithme Java simple
    Par n00dl3f1sh dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 26/01/2015, 18h22
  2. Problème algorithme Java
    Par Alba.1337 dans le forum Général Java
    Réponses: 4
    Dernier message: 21/03/2012, 13h56
  3. Question d'algorithme Java
    Par Annsen dans le forum Développement Web en Java
    Réponses: 5
    Dernier message: 04/08/2011, 11h18
  4. cherche l'algorithme d'un programme en language java
    Par rafik larbi dans le forum Langage
    Réponses: 19
    Dernier message: 06/06/2006, 21h05
  5. cours d'algorithmes en java :?:
    Par imane1 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 18/09/2005, 09h18

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