Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions EvoSim.pde
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@

// fenstergroesse muss seperat geändert werden, sollte immer gleich sein & einen schönen Wert haben, z.B. 100, 500,...
final int fensterGroesse = 1000;

Welt welt = new Welt(100, 10);

void setup(){
size(1000,1000);
welt.showWelt();
welt.showLebewesen(welt.getLebewesen());
}
void draw(){
}
25 changes: 25 additions & 0 deletions Feld.pde
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
class Feld{

// getter müssen noch geschrieben werden
private int posX, posY;
private float nHoehe; //noise-Hoehe

private int feldBreite;
private int regenerationsrate = 3;
private int energiewert = 80;

Feld(int x , int y, float h, int fB){
posX = x;
posY = y;
nHoehe = h;
feldBreite = fB;

}
void drawFeld(){
if(nHoehe>45){
fill((100 - energiewert)*1.5,energiewert*1.5+50,0); //muss noch geändert werden
} else fill(0, 0, 255);
rect(posX, posY, feldBreite, feldBreite);
}

}
17 changes: 17 additions & 0 deletions Lebewesen.pde
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

public class Lebewesen{

private int durchmesser = 15;
private int posX, posY;
private int fressrate;

public Lebewesen(int x, int y){
posX = x;
posY = y;
}

public void drawLebewesen(){
fill((int)random(0,256), (int)random(0,256), (int)random(0,256));
ellipse((int)random(0,fensterGroesse), (int)random(0,fensterGroesse), durchmesser, durchmesser);
}
}
62 changes: 62 additions & 0 deletions Welt.pde
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
public class Welt{

// getter fehlen noch
private Feld[][] welt;
private ArrayList<Lebewesen> bewohner;

private int weltGroesse;
private int fB;

public Welt(int weltGroesse, int lw){

this.weltGroesse = weltGroesse;

// skaliert die Feldbreite and die Fenstergroesse und die Feldanzahl pro Reihe
fB = (int)fensterGroesse/weltGroesse;

// generiert Welt
welt = new Feld[weltGroesse][weltGroesse];
float yNoise = 0.0;
for (int y=0; y<weltGroesse; y++){
float xNoise = 0.0;
for(int x=0; x<weltGroesse; x++){
welt[x][y] = new Feld(x*fB, y*fB, noise(xNoise, yNoise)*100, fB);
xNoise += 0.038;
}
yNoise += 0.038;
}
// generiert Anfangs-Lebewesen
bewohner = new ArrayList<Lebewesen>(lw);
for(int i=0; i<lw; i++){
bewohner.add(new Lebewesen((int)random(0,fensterGroesse),(int)random(0,fensterGroesse)));
}

}

// zeichnet die Welt
public void showWelt(){
for(int x=0; x<weltGroesse; x++){
for(Feld a : welt[x]){
a.drawFeld();
}
}
}

// zeichnet ein Array aus Lebewesen (meistens am Anfang genutzt)
public void showLebewesen(Lebewesen[] lwArray){
for(Lebewesen lw : lwArray){
lw.drawLebewesen();
}
}

// zeichnet ein einziges Lebewesen (eig. unnötig, aber um die Form zu wahren sollte man diese Methode nutzen)
public void showLebewesen(Lebewesen lw){
lw.drawLebewesen();
}

//// Getter
public Lebewesen[] getLebewesen(){
return bewohner.toArray(new Lebewesen[bewohner.size()]);
}

}