@@ -13,7 +13,6 @@ public class Life implements ILife { | |||
l = (Life) l.nextGeneration(); | |||
} | |||
public Life() { | |||
nukeAll(); | |||
} | |||
@@ -26,7 +25,6 @@ public class Life implements ILife { | |||
setAlive(x, y); | |||
} | |||
} | |||
//System.out.println(board[y]); | |||
} | |||
printTable(board); | |||
} | |||
@@ -36,7 +34,6 @@ public class Life implements ILife { | |||
System.out.println("________"); | |||
} | |||
@Override | |||
public void nukeAll() { //works | |||
// TODO Auto-generated method stub | |||
@@ -45,7 +42,6 @@ public class Life implements ILife { | |||
setDead(x, y); | |||
} | |||
} | |||
} | |||
@Override | |||
@@ -72,7 +68,7 @@ public class Life implements ILife { | |||
@Override | |||
public ILife nextGeneration() { | |||
//Problem mehrere steps auf einmal da gesetzer * bei nachfolgendem durchlauf mitberücksichtigt wird | |||
int alive; | |||
String[] nextBoard = new String[]{ " ", | |||
" ", | |||
@@ -88,11 +84,12 @@ public class Life implements ILife { | |||
if(!isAlive(x,y) && alive == 3) { | |||
nextBoard[y] = nextBoard[y].substring(0, x) + '*' + nextBoard[y].substring(x+1); | |||
} | |||
//Cell is lonely and dies | |||
else if(isAlive(x,y) && alive < 2){ | |||
//Cell is lonely and dies or cell is overpopulated and dies | |||
else if((isAlive(x,y) && (alive < 2)) || (alive > 3)){ | |||
nextBoard[y] = nextBoard[y].substring(0, x) + ' ' + nextBoard[y].substring(x+1); | |||
} | |||
else if(isAlive(x,y) && (alive==2 || alive ==3)){ | |||
//Cell with two or three living neighbours lives on | |||
else if(isAlive(x,y) && (alive == 2 || alive == 3)){ | |||
nextBoard[y] = nextBoard[y].substring(0, x) + board[y].charAt(x) + nextBoard[y].substring(x+1); | |||
} | |||
} | |||
@@ -150,5 +147,4 @@ public class Life implements ILife { | |||
} | |||
return neighbours; | |||
} | |||
} | |||
} |
@@ -20,10 +20,8 @@ public class LifeTest { | |||
assertTrue(l.isAlive(1, 1)); | |||
} | |||
@Test | |||
public void destroyLonelyCell() { | |||
//Lebende Zellen mit weniger als zwei lebenden Nachbarn sterben in der Folgegeneration an Einsamkeit. | |||
// Arrange: drei lebende Zellen | |||
Life l = new Life(); | |||
l.setAlive(0, 0); | |||
@@ -33,14 +31,12 @@ public class LifeTest { | |||
// Act: Berechnung der Folgegeneration | |||
l.nextGeneration(); | |||
// Assert: Rasterpunkt mit weniger als zwei Nachbarn sollte sterben | |||
// Assert: Lebende Zellen mit weniger als zwei lebenden Nachbarn sterben in der Folgegeneration an Einsamkeit | |||
assertFalse(l.isAlive(0, 0)); | |||
} | |||
@Test | |||
public void keepAliveCell() { | |||
//Eine lebende Zelle mit zwei oder drei lebenden Nachbarn bleibt in der Folgegeneration am Leben. | |||
// Arrange: drei lebende Zellen | |||
Life l = new Life(); | |||
l.setAlive(0, 0); | |||
@@ -50,14 +46,25 @@ public class LifeTest { | |||
// Act: Berechnung der Folgegeneration | |||
l.nextGeneration(); | |||
// Assert: Rasterpunkt mit zwei oder 3 lebenden Nachbarn bleibt am Leben | |||
// Assert: Eine lebende Zelle mit zwei oder drei lebenden Nachbarn bleibt in der Folgegeneration am Leben. | |||
assertTrue(l.isAlive(0, 1)); | |||
} | |||
@Test | |||
public void destroyCrowdedCell() { | |||
} | |||
// Arrange: vier lebende Zellen | |||
Life l = new Life(); | |||
l.setAlive(0, 0); | |||
l.setAlive(0, 1); | |||
l.setAlive(0, 2); | |||
l.setAlive(1, 1); | |||
l.setAlive(1, 0); | |||
// Act: Berechnung der Folgegeneration | |||
l.nextGeneration(); | |||
// Assert: Lebende Zellen mit mehr als drei lebenden Nachbarn sterben in der Folgegeneration an Überbevölkerung | |||
assertFalse(l.isAlive(0, 1)); | |||
} | |||
} |