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