Bonsoir ,
Je dois réaliser un programme java dans lequel des loups mangent des moutons qui mangent de l'herbe (original ), j'ai pour cela créer des classes Position (associée à vivant), Vivant (associée à vivant) , Herbe (fille de vivant) , Animal (fille vivant) , Mouton (fille animal) , Loup (fille loup).
Mon main (appelé LetsEat) demande à l'uttilisateur le nombre d'herbe, de loups et de moutons puis je créer n* instances pour chacune d’entre elles, je veux ensuite afficher leur positions et leur noms.
Mon problème est le suivant; je ne parviens pas à obtenir la position d'une instance et à l'afficher mal grès toutes mes tentatives.
Je suis un novice en Java, j'ai tout appris sur le net (très peu de cours).
Je dois le rendre ce soir, donc c'est plutôt urgent (le prof nous a demandé de finir les classes j'aimerai approfondir un peu )
Code :
- import java.lang.Math;
- import java.util.Random;
- public class Position {
- private int xMax=100;
- private int yMax=100;
- private int X;
- private int Y;
- private Random r = new Random();
- public void Position(int x,int y){
- this.X=x;
- this.Y=y;
- }
- public void Position(){
- // this.X=(int)( Math.random()*( xMax - 1 + 1 ) ) + 1;
- //this.Y=(int)( Math.random()*( yMax - 1 + 1 ) ) + 1;
- this.X=r.nextInt(xMax);
- this.Y=r.nextInt(yMax);
- }
- public int getX(){
- return this.X;
- }
- public int getY(){
- return this.Y;
- }
- public void setX (int x){
- if(x>=0 && x<=100)
- this.X = x;
- }
- public void setY (int y){
- if(y>=0 && y<=100)
- this.Y = y;
- }
- public int distance(Position p){
- int d;
- d = Math.abs(this.X-(p.X)) + Math.abs(this.Y-(p.Y));
- return d;
- }
- }
|
Code :
- public class Vivant {
- protected Position position;
- protected String nom ;
- public void vivant() {
- this.position =new Position();
- }
- public Position getPosition() {
- return this.position;
- }
- public String getNom() {
- return this.nom;
- }
- public void setNom(String name) {
- this.nom=name;
- }
- public void affiche() {
- int pX = this.position.getX();
- int pY = this.position.getY();
- System.out.println(" nom : "+this.nom+" position x:" +pX+"y:"+pY);
- }
- }
|
Code :
- public class Animal extends Vivant{
- public void seDeplace() {
- this.position.setX(this.position.getX()+1);
- this.position.setY(this.position.getY()+1);
- }
- public void mange () {
- }
- }
|
Code :
- public class Herbe extends Vivant{
- private static int nbHerbe=0 ;
- public void Herbe() {
- this.nbHerbe= nbHerbe+1;
- }
- public int getNbHerbe() {
- return this.nbHerbe;
- }
- }
|
Code :
- public class Loup extends Animal {
- private static int nbLoup=0;
- public Loup() {
- this.nbLoup= nbLoup+1;
- }
- public int getnbLoup(){
- return this.nbLoup;
- }
- }
|
Code :
- public class Mouton extends Animal{
- private static int nbMouton=0;
- public void Mouton(){
- this.nbMouton= nbMouton+1;
- }
- public int getNbMouton(){
- return this.nbMouton;
- }
- }
|
Code :
- import java.util.*;
- import java.lang.Math;
- public class LetsEat
- {
- public static void main(String[] args) {
- int a,i;
- int j=0 ,c=0;
- //the user is asked to type the number of wolf, sheep and grass
- Scanner scl = new Scanner(System.in);
- System.out.println("Veuillez saisir le nombre de loups :" );
- int l = scl.nextInt();
- System.out.println("Vous avez saisi le nombre : \n" + l);
- Scanner scm = new Scanner(System.in);
- System.out.println("\nVeuillez saisir le nombre de moutons : " );
- int m = scm.nextInt();
- System.out.println("Vous avez saisi le nombre : \n" + m);
- Scanner sch = new Scanner(System.in);
- System.out.println("\nVeuillez saisir le nombre d'herbes : " );
- int h = sch.nextInt();
- System.out.println("Vous avez saisi le nombre : \n" + h);
- // a is the number of animals which includes wolves and sheeps
- a= l + m;
- //Initialization of an Animal/Herbe array
- Loup tabL[]= new Loup[l];
- Mouton tabM[]= new Mouton[m];
- Herbe tabH[]= new Herbe[h];
- String nomL[]= new String[l];
- String nomM[]= new String[m];
- String nomH[]= new String[h];
- // creation of each instances, l wolves and m sheeps h grasses
- /* for(i=1;i<=l;i++){
- tabM[i]= new Loup();
- } */
- while(j<m){
- tabM[j]= new Mouton();
- nomM[j] = new String("Mouton " +(j+1));
- tabM[j].setNom(nomM[j]);
- tabM[j].affiche();
- tabM[j].Mouton();
- j= tabM[j].getNbMouton();
- }
- while(c<h) {
- tabH[c]= new Herbe();
- nomH[c] = new String("Herbe " +(c+1));
- tabH[c].vivant();
- tabH[c].setNom(nomH[c]);
- tabH[c].affiche();
- tabH[c].Herbe();
- c = tabH[c].getNbHerbe();
- }
- }
- }
|
Merci pour votre attention,