Salut à tous et à toutes et merci d'avance.
je suis sur un exercice qui consiste à simuler un monde qui contient 2
populations, une de fleurs noirs et une de fleurs blanches, chacun des 3
disposant de caractéristiques propre(température, quantité de population)
ainsi que la possibilité de déclencher un événement, qui influencerait la
température ou le nombre de fleurs d'un type...
j'ai donc pensé faire cela en une class monde, une class popnoir et une autre popblanc, ainsi qu'une class evenement qui extends toutes les 3 de la class monde.
mon problème est que le monde seul peut exister mais pas les sous class
et il n'y a qu'un seul monde pour les 3 sous class.
j'ai essayé de faire de plusieurs façon mais à chaque fois j'obtiens une
erreur ou un résultat non désiré.
le main:
les class
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 public class Main { public static void main(String[] args) { monde terre = new monde(); populationblanc popblanc = new populationblanc(); populationnoir popnoir = new populationnoir(); terre.setPop(popblanc.getPopb()+popnoir.getPopn()); // for(int i = 0; i < 10; i ++){ terre.setTemp((popblanc.getPopb()*(terre.getTemp()-1)+popnoir.getPopn()*(terre.getTemp()+1))/(popblanc.getPopb()+popnoir.getPopn())); System.out.println("température du monde: "+terre.getTemp()); terre.setPop(popblanc.getPopb()+popnoir.getPopn()); System.out.println("population total: "+terre.getPop()); System.out.println("ratio blanc/noir: "+(popblanc.getPopb()*100/terre.getPop())+" / "+(popnoir.getPopn()*100/terre.getPop())); popblanc.reproduit(); popblanc.meurt(); popnoir.reproduit(); popnoir.meurt(); // } } }
monde:
popblanc:
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 public class monde { protected float temp=10; protected int limitpop = 15000; protected int pop; public monde() { } public float getTemp() { return temp; } public int getLimitpop() { return limitpop; } public int getPop() { return pop; } public void setPop(int pop) { this.pop = pop; } public void setTemp(float temp) { this.temp = temp; } }
popnoir et quasi identique à popblanc juste les valeurs des variables de class
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 public class populationblanc extends monde{ protected int popb = 5000; protected int tempideal = 12; protected int tempmaxsup = 20; protected int tempminsup = 5; public populationblanc() { } public int getPopb() { return popb; } public int getTempideal() { return tempideal; } public int getTempmaxsup() { return tempmaxsup; } public int getTempminsup() { return tempminsup; } public void setPopb(int pop) { this.popb = pop; } public void meurt(){ if(super.getTemp()>getTempmaxsup() || super.getTemp()<getTempminsup()){ setPopb(getPopb()/2); }else{ setPopb((getPopb()*80)/100); } } public void reproduit () { float result = super.getTemp()-getTempideal(); if(result<0){ result = result*(-1);} if(result>7){ setPopb((getPopb()*105)/100); }else if(result>4){ setPopb((getPopb()*11)/10); }else{ setPopb((getPopb()*125)/100); } } }
qui sont légèrement différentes.
evenement est encore au début de sa construction:
avec ceci le monde n'évolue pas alors que les population devrait évoluer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class evenement extends monde{ protected String nomeve = ""; protected String typeve = ""; protected int valueve = 0; public void evenement(String nom, String type, int value){ nomeve = nom; typeve = type; valueve = value; } }
Partager