LifeTest final step passed
Finished Version
This commit is contained in:
parent
c620449f0f
commit
4e3d87a043
Binary file not shown.
Binary file not shown.
@ -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));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user