fin de cours mardi avec actualiser

master
Victor BRUN 1 year ago
parent e1ce31ee69
commit 6fd8c1d517

@ -15,6 +15,7 @@ public class Animal extends Cellule{
public void Manger(int quantite){
for ( int i = 0; i > quantite; i++){
energie_ = getEnergie()+1;
setEnergie(energie_);
}
}
@ -45,32 +46,39 @@ public class Animal extends Cellule{
}
public void Bouger(Ecosysteme ecosysteme){
int random = (int)(Math.random()*4);
int nx = getX();
int ny = getY();
if (random == 1){
nx = nx + 1;
}else if(random == 2){
nx = nx - 1;
}else if(random == 3){
ny = ny + 1;
}else if(random == 0){
ny = ny - 1;
}
if(nx <= ecosysteme.grille_.length && nx >= 0 && ny <= ecosysteme.grille_[1].length && ny >= 0){
if (ecosysteme.grille_[nx][ny] == null){
setX(nx);
setY(ny);
}else if(ecosysteme.grille_[nx][ny] instanceof Nourriture){
setX(nx);
setY(ny);
Nourriture nourriture = (Nourriture)ecosysteme.grille_[nx][ny];
Manger(nourriture.getCalories_());
}else if(ecosysteme.grille_[nx][ny] instanceof Predateur){
}
}
// int random = (int)(Math.random()*4);
// int nx = getX();
// int ny = getY();
// if (random == 1){
// nx = nx + 1;
// }else if(random == 2){
// nx = nx - 1;
// }else if(random == 3){
// ny = ny + 1;
// }else if(random == 0){
// ny = ny - 1;
// }
// if(nx > 10){
// nx = 0;
// }else if(nx < 0){
// nx = 10;
// }
// if(ny > 10){
// ny = 0;
// }else if(ny < 0){
// ny = 10;
// }
// if(ecosysteme.grille_[nx][ny] == null){
// setX(nx);
// setY(ny);
// }else if(ecosysteme.grille_[nx][ny] instanceof Nourriture){
// setX(nx);
// setY(ny);
// Nourriture nourriture = (Nourriture)ecosysteme.grille_[nx][ny];
// Manger(nourriture.getCalories_());
// }else if(ecosysteme.grille_[nx][ny] instanceof Predateur){
// }
}

@ -17,17 +17,15 @@ public class Ecosysteme {
public static void main(String[] args) {
Ecosysteme eco_ = new Ecosysteme(10,15);
eco_.creerNourriture(6);
eco_.creerAnimal(15, 0);
eco_.remplirGrille();
eco_.Afficher();
Ecosysteme eco_ = new Ecosysteme(5,5);
eco_.Initialiser(10, 5, 5);
}
private void remplirGrille(){
viderGrille();
for (int i = 0; i < nourriture_.length; i++){
grille_[nourriture_[i].getX()][nourriture_[i].getY()] = nourriture_[i];
}
for (int i = 0; i < animaux_.length; i++){
for (int i = 0; i < nbAnimal_; i++){
grille_[animaux_[i].getX()][animaux_[i].getY()] = animaux_[i];
}
}
@ -38,7 +36,7 @@ public class Ecosysteme {
if(grille_[i][j] != null){
System.out.print(grille_[i][j]);
}else{
System.out.print(" ");
System.out.print(" ");
}
}
System.out.println();
@ -58,12 +56,12 @@ public class Ecosysteme {
} while (grille_[x][y] != null);
nourriture_[i] = nourriture;
}
for (int i = 0; i< quantite; i++){
System.out.print(nourriture_[i]);
// System.out.print(nourriture_[i].getX());
// System.out.print(nourriture_[i].getY());
}
System.out.println("");
// for (int i = 0; i< quantite; i++){
// System.out.print(nourriture_[i]);
// System.out.print(nourriture_[i].getX());
// System.out.print(nourriture_[i].getY());
// }
System.out.println();
}
@ -71,8 +69,8 @@ public class Ecosysteme {
public void creerAnimal(int nbProies, int nbPredateur){
int quantite = nbPredateur + nbProies;
animaux_ = new Animal[quantite];
nbAnimal_ = nbPredateur + nbProies;
animaux_ = new Animal[nbAnimal_];
for (int i = 0; i < nbProies; i++){
int x = (int)(Math.random()*grille_.length);
int y = (int)(Math.random()*grille_[1].length);
@ -83,20 +81,21 @@ public class Ecosysteme {
} while (grille_[x][y] != null);
animaux_[i] = proie;
}
// for (int i = 0; i < nbPredateur; i++){
// int x = (int)(Math.random()*grille_.length);
// int y = (int)(Math.random()*grille_[1].length);
// Predateur predateur = new Predateur(x,y);
// do{
// x = (int)(Math.random()*grille_.length);
// y = (int)(Math.random()*grille_[1].length);
// } while (grille_[x][y] != null);
// animaux_[i] = predateur;
// }
for (int i = nbProies; i < nbAnimal_; i++){
int x = (int)(Math.random()*grille_.length);
int y = (int)(Math.random()*grille_[1].length);
Predateur predateur = new Predateur(x,y);
do{
x = (int)(Math.random()*grille_.length);
y = (int)(Math.random()*grille_[1].length);
} while (grille_[x][y] != null);
animaux_[i] = predateur;
}
// remplirGrille();
// for (int i = 0; i< quantite; i++){
// System.out.print(animaux_[i]);
// }
// System.out.println();
}
public int getHauteur() {
@ -106,5 +105,52 @@ public class Ecosysteme {
return largeur_;
}
public void viderGrille(){
for(int i = 0; i < grille_.length; i++){
for(int j = 0; j < grille_[1].length; j++){
grille_[i][j] = null;
}
}
}
public void Initialiser(int nourriture, int proie, int predateur){
creerAnimal(proie, predateur);
creerNourriture(nourriture);
remplirGrille();
Afficher();
Simuler();
}
public void Simuler(){
while(nbAnimal_ > 0){
try{
Thread.sleep(1000);
Actualiser();
}catch (Exception e){
}
}
}
public void Actualiser(){
for(int i = 0; i < animaux_.length; i++){
animaux_[i].Deperit();
animaux_[i].Bouger(this);
}
int i = 0;
while (i < nbAnimal_){
if(animaux_[i].getEnergie() <= 0){
animaux_[i] = animaux_[nbAnimal_-1];
nbAnimal_--;
}else{
i++;
}
}
System.out.println();
System.out.println();
System.out.println();
remplirGrille();
Afficher();
}
}

@ -22,7 +22,7 @@ public class Nourriture extends Cellule{
}
return symbole;
}
public int getCalories_() {
public int getCalories() {
return calories_;
}
@Override

@ -1,6 +1,81 @@
package ecosysteme;
public class Predateur extends Animal{
private static int energie_max = 16;
public Predateur(int x, int y){
super(x, y, energie_max);
}
@Override
public void Manger(int quantite){
for(int i = 0; i < quantite; i++){
if (getEnergie() < energie_max){
setEnergie(getEnergie() + 1);
}
}
}
@Override
public String toString() {
String symbole = " x" + getEnergie();
return symbole;
}
@Override
public int getX() {
// TODO Auto-generated method stub
return super.getX();
}
@Override
public int getY() {
// TODO Auto-generated method stub
return super.getY();
}
public void Mourir(){
setEnergie(0);
}
@Override
public void Bouger(Ecosysteme ecosysteme){
int random = (int)(Math.random()*4);
int nx = getX();
int ny = getY();
if (random == 1){
nx = nx + 1;
}else if(random == 2){
nx = nx - 1;
}else if(random == 3){
ny = ny + 1;
}else if(random == 0){
ny = ny - 1;
}
if(nx > ecosysteme.grille_.length-1){
nx = 0;
}else if(nx < 0){
nx = ecosysteme.grille_.length-1;
}
if(ny > ecosysteme.grille_[1].length-1){
ny = 0;
}else if(ny < 0){
ny = ecosysteme.grille_[1].length-1;
}
if(ecosysteme.grille_[nx][ny] == null){
setX(nx);
setY(ny);
}else if(ecosysteme.grille_[nx][ny] instanceof Nourriture){
setX(nx);
setY(ny);
}else if(ecosysteme.grille_[nx][ny] instanceof Proie){
setX(nx);
setY(ny);
Proie proie = (Proie)ecosysteme.grille_[nx][ny];
Manger(15);
proie.setEnergie(0);
}else if(ecosysteme.grille_[nx][ny] instanceof Predateur){
}
}
}

@ -19,7 +19,7 @@ public class Proie extends Animal{
@Override
public String toString() {
String symbole = "z" + getEnergie();
String symbole = " z" + getEnergie();
return symbole;
}
@Override
@ -37,5 +37,44 @@ public class Proie extends Animal{
setEnergie(0);
}
@Override
public void Bouger(Ecosysteme ecosysteme){
int random = (int)(Math.random()*4);
int nx = getX();
int ny = getY();
if (random == 1){
nx = nx + 1;
}else if(random == 2){
nx = nx - 1;
}else if(random == 3){
ny = ny + 1;
}else if(random == 0){
ny = ny - 1;
}
if(nx > ecosysteme.grille_.length-1){
nx = 0;
}else if(nx < 0){
nx = ecosysteme.grille_.length-1;
}
if(ny > ecosysteme.grille_[1].length-1){
ny = 0;
}else if(ny < 0){
ny = ecosysteme.grille_[1].length-1;
}
if(ecosysteme.grille_[nx][ny] == null){
setX(nx);
setY(ny);
}else if(ecosysteme.grille_[nx][ny] instanceof Nourriture){
setX(nx);
setY(ny);
Nourriture nourriture = (Nourriture)ecosysteme.grille_[nx][ny];
Manger(nourriture.getCalories());
ecosysteme.grille_[nx][ny] = null;
}
// else if(ecosysteme.grille_[nx][ny] instanceof Predateur){
// }
}
}

Loading…
Cancel
Save