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

Collection et Stream Java Discussion :

Fonction pour se déplacer dans un tableau 2D ?


Sujet :

Collection et Stream Java

  1. #21
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Pourquoi Personne hérite d'Objet qui modélise la carte ?

    Citation Envoyé par guipe Voir le message
    Qu'espères-tu ajouter ici ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     public Carte() {
    		elements = ...;
    Fais moi une proposition.

  2. #22
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Par défaut
    Bé j'aurais dit les différents types d'éléments(hopital, médecin, non médecin sain, non médecin malade, non médecin difficile) mais ça me parait bizarre de le faire ici et pas dans les classes.

    En attendant voici ce que j'ai fait pour le main, on me demande d'initialiser le nombre d'éléments.
    Il manque les accesseurs pour pouvoir accéder aux nombres dans les autres classes bien sur !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    public class Main {
     
    	private int nombre_hopitaux;
    	private int nombre_medecins;
    	private int nombre_non_medecins_sains;
    	private int nombre_non_medecins_malades;
    	private int nombre_non_medecins_cas_difficiles;
     
     
    	public static void main (String args[]) 
    	{	
    		Scanner sc= new Scanner(System.in);
     
    		System.out.println("Veuillez saisir le nombre initial d'hôpitaux");
    		nombre_hopitaux=sc.nextInt();
    		System.out.println("Veuillez saisir le nombre initial de médecins");
    		nombre_medecins=sc.nextInt();
    		System.out.println("Veuillez saisir le nombre initial de non_médecins_sains");
    		nombre_non_medecins_sains=sc.nextInt();
    		System.out.println("Veuillez saisir le nombre initial de non_médecins_malades");
    		nombre_medecins_malades=sc.nextInt();
    		System.out.println("Veuillez saisir le nombre initial de non_médecins_difficiles");
    		nombre_medecins_cas_difficiles=sc.nextInt();
    	}
    }

  3. #23
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Concernant la classe Main, le principe est de faire une classe stupide : une classe avec une seule méthode (main) et rien hors de la méthode. Elle sert juste à démarrer ton appli après c'est aux objets de dialoguer entre eux.

  4. #24
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Par défaut
    Oui d'accord mais c'est bien ici qu'on va lancer toutes les fonctions, remplir mon tableau ...

    Voici ma classe Carte. POuvez vous me dire ce que vous en pensez? Merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    public class Carte
    {
    	private Element[][] elements;
    	private int largeur;
    	private int hauteur;
    	public int i=0;
    	public Carte()
    	{
    		Random generator = new Random();
     
    		while(i<getNombre_hopitaux())
    		{
    			largeur=generator.nextInt(20)+1;
    			hauteur=generator.nextInt(20)+1;
    			if(elements[largeur][hauteur]=null)
    			{
    				elements[largeur][hauteur]=//appel au constructeur de la classe hopital ?
    			}
    			i++;
    		}
    		i=0;
    		while(i<getNombre_medecins())
    		{
    			largeur=generator.nextInt(20)+1;
    			hauteur=generator.nextInt(20)+1;
    			if(elements[largeur][hauteur]=null)
    			{
    			elements[largeur][hauteur]=//appel au constructeur de la classe medecin?
    		    }
    			i++;
    		}
    		i=0;
    		while(i<getNombre_non_medecins_sains())
    		{
    			largeur=generator.nextInt(20)+1;
    			hauteur=generator.nextInt(20)+1;
    			if(elements[largeur][hauteur]=null)
    			{
    			elements[largeur][hauteur]=//appel au constructeur de la classe non medecin "option" sains ?
    			}
    			i++;
    		}
    		i=0;
    		while(i<getNombre_non_medecins_malades())
    		{
    			largeur=generator.nextInt(20)+1;
    			hauteur=generator.nextInt(20)+1;
    			if(elements[largeur][hauteur]=null)
    			{
    			elements[largeur][hauteur]=//appel au constructeur de la classe non medecin "option" malades  ?
    			}
    			i++;
    		}
    		i=0;
    		while(i<getNombre_non_medecins_cas_difficiles())
    		{
    			largeur=generator.nextInt(20)+1;
    			hauteur=generator.nextInt(20)+1;
    			if(elements[largeur][hauteur]=null)
    			{
    			elements[largeur][hauteur]=//appel au constructeur de la classe non medecin "option" cas difficiles ?
    			}
    			i++;
    		}
     
     
    	public int getWidth()
    	{
    		return largeur;
    	}
     
    	public int getHeight()
    	{	
    		return hauteur;
    	}
     
    }
    Comme vous m'avez montré, je suis donc parti sur la base: Classe Carte, Classe Element et Classe Personne(hopital,medecin,non medecin) héritant de la Classe Element. Donc je suppose que pour créer une personne on utilisera le constructeur de la classe Elément.Cependant comment peut-on faire ça alors que selon les différentes personnes les parametres à intégrer dans le constructeur sont différents ?

  5. #25
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private int largeur;
    private int hauteur;
    S'il s'agit des dimensions de la carte, je ne comprends pas leurs utilisations dans les boucles d'initialisation, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    while(i < getNombre_hopitaux())
    {
    	largeur = generator.nextInt(20)+1;
    	hauteur = generator.nextInt(20)+1;
    	if(elements[largeur][hauteur]=null)
    	{
    		elements[largeur][hauteur]=...
    	}
    	i++;
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    generator.nextInt(20)+1;
    Pourquoi +1 ?


    Ça sert à quoi ?


    getNombre_hopitaux(), getNombre_medecins(), ...
    Ça sort d'où ?
    Ce que je t'ai proposé n'est qu'un squelette qui doit être complété, ici peut-être qu'il faudrait ajouter des paramètres au constructeur...


    Donc je suppose que pour créer une personne on utilisera le constructeur de la classe Elément.
    Oui et non, on utilise le constructeur de la classe Elément de façon indirecte, si on souhaite créer une personne on utilise le constructeur de la classe personne et c'est lui qui se charge d'appeler le constructeur de la classe Element.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public Person(Carte owner, int x, int y, boolean isSick) { //constructeur de la classe personne
    	super(owner, x, y); // appelle au constructeur de la classe Element
    	this.isSick = isSick; // information qui ne concerne que les personnes
    }

  6. #26
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Par défaut
    Bonjour, les getNOmbre_hopitaux ... sortent du main ou pour initilaiser je demande le nombre de médecins, d'hopitaux...

    Pour le +1 du generator, on m'avait dit de le mettre sinon on arriverait pas jusqu'à 20, peut être sue c'est une erreur.

    Quand à cette commande je ne la connais pas, peux_tu m'en dire plus sur ça ?
    this.isSick = isSick;


    B dans les boucles d'initialisation de la carte, je choisis(tant que j'ai pas mon nombre d'éléments(par ex hopital) demandé dans le main) un nombre entre 0 et 20. Et je place l'objet à cette place(en faisant appel au constructeur de la classe Person) d'après ce que tu m'as dit. Cependant comme mes objets ont des caracs différentes, il faudrait que je rajoute des instructions au constructeur de la classe Personne( des caracs propres aux différents éléments)

  7. #27
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    les getNOmbre_hopitaux ... sortent du main
    Est bien qu'ils y retournent, ils ne sont pas les bienvenus dans le constructeur.

    Pour le +1 du generator, ... un nombre entre 0 et 20
    Attention "generator.nextInt(20)+1;" ne donne pas un nombre entre 0 et 20.

    Quand à cette commande je ne la connais pas, peux_tu m'en dire plus sur ça ? this.isSick = isSick;
    Ce n'est qu'une affectation (voir this), c'est pour te montrer l'emboitement des constructeurs et comment gérer une une info spécifique d'un constructeur donné.

    B dans les boucles d'initialisation de la carte, je choisis(tant que j'ai pas mon nombre d'éléments(par ex hopital) demandé dans le main) un nombre entre 0 et 20. Et je place l'objet à cette place(en faisant appel au constructeur de la classe Person) d'après ce que tu m'as dit. Cependant comme mes objets ont des caracs différentes, il faudrait que je rajoute des instructions au constructeur de la classe Personne( des caracs propres aux différents éléments)
    Peut-être que pour simplifier, tu devrais te concentrer sur un seul type d'éléments (par exemple les hôpitaux), car les médecins, personne, ... c'est quasiment la même chose.

  8. #28
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Par défaut
    Mais je suis bien obligé d'avoir le nombre d'éléments pour initialiser ma carte puisque je dois placer l'élément aléatoirement sur ma carte, mais je dois le faire autant de fois que j'ai d'hopitaux par exemple.Je dois faire ça dans le main plutôt ? Une fois compris ça, ce sera bien, je commence à y voir clair !

    Non?

    Et pour le generator.

    Je fais Random generator=new Random();
    et value = generator.nextInt(20) + 1 , ce n'est pas comme ça qu'on procède ?

  9. #29
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Mais je suis bien obligé d'avoir le nombre d'éléments pour initialiser ma carte puisque je dois placer l'élément aléatoirement sur ma carte, mais je dois le faire autant de fois que j'ai d'hopitaux par exemple.Je dois faire ça dans le main plutôt ?
    Le paramètre nombre d'hôpitaux est indispensable, ce n'est pas ce que je discute, c'est la façon dont-il arrive dans le constructeur (où il doit arriver au final quoi qu'il en soit).

    value = generator.nextInt(20) + 1 , ce n'est pas comme ça qu'on procède ?
    Ton code est parfait mais il ne répond pas à tes specs qui disent "un nombre entre 0 et 20". Te focalise pas la dessus, avance sur le reste quand ça commencera à tourner tu verras qu'il y a un truc qui cloche et il sera tant de corriger ce qui n'est qu'une petite erreur.

  10. #30
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Par défaut
    Je vais vous mettre le code que j'ai pour le moment, j'ai mis des commentaires explicatifs :

    classe Carte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    public class Carte
    {
    	private Element[][] elements;
    	private int largeur;
    	private int hauteur;
    	public int i=0;
    	public Carte()
    	{
    		Random generator = new Random();
     
    		while(i<getNombre_hopitaux())
    		{
    			largeur=generator.nextInt(20)+1;
    			hauteur=generator.nextInt(20)+1;
    			if(elements[largeur][hauteur]=null)
    			{
    				elements[largeur][hauteur]=//appel au constructeur de la classe hopital ?
    			}
    			i++;
    		}
    		i=0;
    		while(i<getNombre_medecins())
    		{
    			largeur=generator.nextInt(20)+1;
    			hauteur=generator.nextInt(20)+1;
    			if(elements[largeur][hauteur]=null)
    			{
    			elements[largeur][hauteur]=//appel au constructeur de la classe medecin?
    		    }
    			i++;
    		}
    		i=0;
    		while(i<getNombre_non_medecins_sains())
    		{
    			largeur=generator.nextInt(20)+1;
    			hauteur=generator.nextInt(20)+1;
    			if(elements[largeur][hauteur]=null)
    			{
    			elements[largeur][hauteur]=//appel au constructeur de la classe non medecin "option" sains ?
    			}
    			i++;
    		}
    		i=0;
    		while(i<getNombre_non_medecins_malades())
    		{
    			largeur=generator.nextInt(20)+1;
    			hauteur=generator.nextInt(20)+1;
    			if(elements[largeur][hauteur]=null)
    			{
    			elements[largeur][hauteur]=//appel au constructeur de la classe non medecin "option" malades  ?
    			}
    			i++;
    		}
    		i=0;
    		while(i<getNombre_non_medecins_cas_difficiles())
    		{
    			largeur=generator.nextInt(20)+1;
    			hauteur=generator.nextInt(20)+1;
    			if(elements[largeur][hauteur]=null)
    			{
    			elements[largeur][hauteur]=//appel au constructeur de la classe non medecin "option" cas difficiles ?
    			}
    			i++;
    		}
     
     
    	public int getWidth()
    	{
    		return largeur;
    	}
     
    	public int getHeight()
    	{	
    		return hauteur;
    	}
     
    }
    classe Element :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    public abstract class Element
    {
     
    	private Carte owner;
    	private int x,y;
    	private char representation; // la lettre qui va représenter les objets dans la matrice
     
    	public Element(Carte owner, int x, int y,char representation)
    	{
    		if(x<0 || x>=owner.getWidth()) throw new IllegalArgumentException("x:"+x);
    		if(y<0 || y>=owner.getHeight()) throw new IllegalArgumentException("y:"+y);
    	}
     
    	/*Ici je dois définir les méthodes qui sont communes à tous les éléments ==> 
    	 * seul mourrir() est commune à toutes les sous_classes!!!
    	Puis je définis en abstract toutes les autres méthodes ? à savoir Déplacer(l'hopital ne se déplace pas),Soigner,Contaminer,
    	* Approvisionnement_stock_medecin(par l'hopital).*/
     
    	public int getX()
    	{
    		return x;
    	}
     
    	public int getY()
    	{
    		return y;
    	}
     
    	public char getRepresentation()
    	{
    		return representation;
    	}
    classe Hopital:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public class Hopital extends Element 
    {
     
    	public Hopital (Carte owner,int x, int y,char representation)
    	{
    		super.Element(owner,x,y)
    	}
     
    	public void setPosition(int x, int y)
    	{
    		this.x=x;
    		this.y=y;
    	}
     
    	public void setRepresentation(char representation)
    	{
    		this.representation=representation;
    	}
    }
    classe Medecin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    public class Medecin extends Element
    {
    	private int stock_medecin;
     
    	public Medecin (Carte owner,int x, int y,char representation,int stock_medecin)
    	{
    		super.Element(owner,x,y)
    		this.stock_medecin=stock_medecin;
    	}
     
    	public void setPosition(int x, int y)
    	{
    		this.x=x;
    		this.y=y;
    	}
     
    	public void setRepresentation(char representation)
    	{
    		this.representation=representation;
    	}
     
     
    	public int getStock()
    	{
    		return stock_medecin;
    	}
    	public void setStock(int stock)
    	{
    		stock_medecin=stock;
    	}
     
     
    	// Ici je dois définir les méthodes Soigner() et Deplacer()
     
    }
    classe Non_medecin:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    public class Non_medecin extends Element
    {
    	private String etat_maladie; // cas_difficile,malade ou sain
    	private int resistance; // les malades difficiles ont besoin de 3 médicaments, les normaux d'un seul.
    	private int debut_contamination; 
    	/* compteur du début de la contamination(4 tours après la contamination si le compteur resistance n'est pas à 0, 
    	l'élément meurt)*/
     
    	public Non_medecin(Carte owner,int x,int y,char representation,String etat_maladie,int resistance,int debut_contamination)
    	{
    		super.Element(owner,x,y);
    		this.etat_maladie=etat_maladie;
    		this.resistance=resistance;
    		this.debut_contamination=debut_contamination;
    	}
     
    	public void setPosition(int x,int y)
    	{
    		this.x=x;
    		this.y=y;
    	}
     
    	public void setRepresentation(char representation)
    	{
    		this.representation=representation;
    	}
     
    	public void setEtat_maladie(String etat_maladie)
    	{
    		this.etat_maladie=etat_maladie;
    	}
     
    	public void setResistance(int resistance)
    	{
    		this.resistance=resistance;
    	}
     
    	public void setDebut_contamination(int debut_contamination)
    	{
    		this.debut_contamination=debut_contamination;
    	}
     
    	public void getEtat_maladie(String etat_maladie)
    	{
    		return etat_maladie;
    	}
     
    	public void getResistance(int resistance)
    	{
    		return resistance;
    	}
     
    	public void getDebut_contamination(int debut_contamination)
    	{
    		return debut_contamination;
    	}
     
    }
    Dites moi ce que vous en pensez, merci !!!!!!

    J'accepte toutes les remarques et c'est bien pour ça que je suis là !!!

    Merci à vous !!!

  11. #31
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    1) Pour la class Element:

    - il faut ajouter les methodes suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    	public void setPositionX(int x)
    	{
    		this.x=x;
    	}	
    	public void setPositionY(int y)
    	{
    		this.y=y;
    	}	
    	public void setPosition(int x, int y)
    	{
    		setPositionX(x);
    		setPositionY(y);
    	}	
    	public void setRepresentation(char representation)
    	{
    		this.representation=representation;
    	}
    - Enlever Carte de la classe Element a moins que tu veuilles utiliser plus tard.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	public Element(int width, int height, int x, int y,char representation)
    	{
    		if(x<0 || x>=width) throw new IllegalArgumentException("x:"+x);
    		if(y<0 || y>=height) throw new IllegalArgumentException("y:"+y);
     
                    this.representation=representation;
                    this.x=x;
                    this.y=y;
    	}
    2) Enlever les methodes setRepresentation, setPosition des classes Hopital, Medecin et Non_medecin

    3) Pour la classe Carte, c'est quoi les fonctions getNombre_hopitaux(), getNombre_medecins(), getNombre_non_medecins_sains() ...? Pas dans ton code

    4) Comment veux-tu definir ta classe Non_medecine avec des options sains, malades, ...? On ne voit pas dans ton code?

  12. #32
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Par défaut
    3) Pour la classe Carte, c'est quoi les fonctions getNombre_hopitaux(), getNombre_medecins(), getNombre_non_medecins_sains() ...? Pas dans ton code
    C'est dans le main
    ==>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    import java.util*;
     
    public class Main 
    {
     
    	private static int nombre_hopitaux;
    	private static int nombre_medecins;
    	private static int nombre_non_medecins_sains;
    	private static int nombre_non_medecins_malades;
    	private static int nombre_non_medecins_cas_difficiles;
     
    	public int getNombre_hopitaux()
    	{
    		return nombre_hopitaux;
    	}
    	public int getNombre_medecins()
    	{
    		return nombre_medecins;
    	}
    	public int getNombre_non_medecins_sains()
    	{
    		return nombre_non_medecins_sains;
    	}
    	public int getNombre_non_medecins_malades()
    	{
    		return nombre_non_medecins_malades;
    	}
    	public int getNombre_non_medecins_cas_difficiles()
    	{
    		return nombre_non_medecins_cas_difficiles;
    	}
     
    	public static void main (String args[]) 
    	{	
    		Scanner sc= new Scanner(System.in);
     
    		System.out.println("Veuillez saisir le nombre initial d'hôpitaux");
    		nombre_hopitaux=sc.nextInt();
    		System.out.println("Veuillez saisir le nombre initial de médecins");
    		nombre_medecins=sc.nextInt();
    		System.out.println("Veuillez saisir le nombre initial de non_médecins_sains");
    		nombre_non_medecins_sains=sc.nextInt();
    		System.out.println("Veuillez saisir le nombre initial de non_médecins_malades");
    		nombre_medecins_malades=sc.nextInt();
    		System.out.println("Veuillez saisir le nombre initial de non_médecins_difficiles");
    		nombre_medecins_cas_difficiles=sc.nextInt();
     
    		/* Peut être qu'ici je dois définir les cas ou je dois sortir du programme :
    		 * - lorsque l'on tape sur F
    		 * - lorsqu'il n'y a plus de malades
    		 * - lorsqu'il ne reste plus que des medecins
    		 * 
    		 A chaque fois que j'appuie sur une touche, un tour doit être effectué aussi(c'est à dire que 
    		 * les éléments se déplacent sur une des 8 cases possibles du tableau et ils agissent ou non selon
    		 * si c'est possible(contaminer,soigner...)
    		 * 
    		 * 
    		 * 
    		 * */
    	}
    }
    Comment veux-tu definir ta classe Non_medecine avec des options sains, malades, ...? On ne voit pas dans ton code?
    Avec le String etat dans le constructeur de Non_medecin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public void setPositionX(int x)
    	{
    		this.x=x;
    	}	
    	public void setPositionY(int y)
    	{
    		this.y=y;
    	}	
    	public void setPosition(int x, int y)
    	{
    		setPositionX(x);
    		setPositionY(y);
    	}
    POurquoi veux-tu définir 2 modifieurs pour la position verticale et horizontale ?

  13. #33
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Par défaut
    Voilà sinon j'ai fait les modifs que tu m'as indiqué.

    Il me reste à initialiser ma carte aléatoirment avec les différents objets(je ne sais pas si je l'ai bien fait !)

    Et à définir les méthodes deplacer, mourrir, soigner, appovisionner_stock et contaminer().

    Voici ma classe Carte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    public class Carte
    {
    	private Element[][] elements;
    	private int largeur;
    	private int hauteur;
    	public int i=0;
    	public Carte(int largeur,int hauteur)
    	{
     
    		this.largeur=largeur;
    		this.hauteur=hauteur;
    		Random generator = new Random();
     
    		while(i<getNombre_hopitaux())
    		{
    			largeur=generator.nextInt(20)+1;
    			hauteur=generator.nextInt(20)+1;
    			if(elements[largeur][hauteur]=null)
    			{
    				elements[largeur][hauteur]=//appel au constructeur de la classe hopital ?
    			}
    			i++;
    		}
    		i=0;
    		while(i<getNombre_medecins())
    		{
    			largeur=generator.nextInt(20)+1;
    			hauteur=generator.nextInt(20)+1;
    			if(elements[largeur][hauteur]=null)
    			{
    			elements[largeur][hauteur]=//appel au constructeur de la classe medecin?
    		    }
    			i++;
    		}
    		i=0;
    		while(i<getNombre_non_medecins_sains())
    		{
    			largeur=generator.nextInt(20)+1;
    			hauteur=generator.nextInt(20)+1;
    			if(elements[largeur][hauteur]=null)
    			{
    			elements[largeur][hauteur]=//appel au constructeur de la classe non medecin "option" sains ?
    			}
    			i++;
    		}
    		i=0;
    		while(i<getNombre_non_medecins_malades())
    		{
    			largeur=generator.nextInt(20)+1;
    			hauteur=generator.nextInt(20)+1;
    			if(elements[largeur][hauteur]=null)
    			{
    			elements[largeur][hauteur]=//appel au constructeur de la classe non medecin "option" malades  ?
    			}
    			i++;
    		}
    		i=0;
    		while(i<getNombre_non_medecins_cas_difficiles())
    		{
    			largeur=generator.nextInt(20)+1;
    			hauteur=generator.nextInt(20)+1;
    			if(elements[largeur][hauteur]=null)
    			{
    			elements[largeur][hauteur]=//appel au constructeur de la classe non medecin "option" cas difficiles ?
    			}
    			i++;
    		}
    	}
     
    	public int getWidth()
    	{
    		return largeur;
    	}
     
    	public int getHeight()
    	{	
    		return hauteur;
    	}
     
    	public int setWidth(int largeur)
    	{
    		this.largeur=largeur;
    	}
     
    	public int setHeigth(int hauteur)
    	{
    		this.hauteur=hauteur;
    	}
     
    }

  14. #34
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Trop de code !
    Avance étape par étape et compile ton code, si tu cherches à tout écrire avant de compiler tu vas pas t'en sortir.

    Par exemple, commence pas te concentrer sur les classes Main, Carte, Element et Hopital, et une fois que ça fonctionnera tu avanceras sur le reste.

    Pour ma par, je te répondrai que sur le code de ces classes et sur du code qui a été compilé (quitte à t'aider sur les erreurs de compile).

  15. #35
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Par défaut
    Déjà je suis bloqué dans le Main, je veux saisir des entiers avec la classe Scanner mais ça marche pas. J'ai importé java.util.Scanner, j'ai essayé aussi import java.util.*; mais rien à faire. On dirait que Scanner n'est pas importé puisque le compilateur me dit "Scanner cannot be resolved to a type".

  16. #36
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Qu'elle est la version de ton JRE ?
    Tu l'obtiens avec : java -version

  17. #37
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Par défaut
    Je suis sous Windows mais j'utilise Portable Ubuntu. J'ai tapé la commande mais rien ne se passe, on me dit commande introuvable.

  18. #38
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Par défaut
    A si c'est bon : java version "1.5.0"

    Si jpeux meme pas bien compiler je suis bien barré ^^

  19. #39
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Ça sa fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import java.util.Scanner;
     
    public class Main2 {
     
    	public static void main(String[] args) {
    		Scanner scn = new Scanner(System.in);
    		System.out.print("Choix: ");
    		int i = scn.nextInt();
    		System.out.println("resultat: "+ i);
    	}
     
    }

  20. #40
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Par défaut
    Bé oui ça marche si on arrive à importer Scanner mais moi ça ne marche pas !

Discussions similaires

  1. une fonction pour le bgcolor dans une datatable
    Par ghnawfal dans le forum JSF
    Réponses: 2
    Dernier message: 09/04/2008, 14h33
  2. Réponses: 3
    Dernier message: 22/03/2008, 12h48
  3. Réponses: 9
    Dernier message: 05/11/2007, 12h05
  4. Réponses: 1
    Dernier message: 05/09/2006, 18h56
  5. Problème pour centrer verticalement dans un tableau
    Par navis84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 18/07/2006, 17h56

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