diff --git a/out/production/GameOfLifeAssignment/Life.class b/out/production/GameOfLifeAssignment/Life.class index 7ed1173..51e3062 100644 Binary files a/out/production/GameOfLifeAssignment/Life.class and b/out/production/GameOfLifeAssignment/Life.class differ diff --git a/out/test/GameOfLifeAssignment/LifeTest.class b/out/test/GameOfLifeAssignment/LifeTest.class index cafc26e..91b85cf 100644 Binary files a/out/test/GameOfLifeAssignment/LifeTest.class and b/out/test/GameOfLifeAssignment/LifeTest.class differ diff --git a/src/Life.java b/src/Life.java index a2c2759..caf62b4 100644 --- a/src/Life.java +++ b/src/Life.java @@ -92,7 +92,7 @@ public class Life implements ILife { else if(isAlive(x,y) && alive < 2){ nextBoard[y] = nextBoard[y].substring(0, x) + ' ' + nextBoard[y].substring(x+1); } - else{ + 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); } } diff --git a/test/LifeTest.java b/test/LifeTest.java index ba3d9e7..5631c4f 100644 --- a/test/LifeTest.java +++ b/test/LifeTest.java @@ -40,6 +40,18 @@ public class LifeTest { @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); + l.setAlive(0, 1); + l.setAlive(0, 2); + + // Act: Berechnung der Folgegeneration + l.nextGeneration(); + + // Assert: Rasterpunkt mit zwei oder 3 lebenden Nachbarn bleibt am Leben + assertTrue(l.isAlive(0, 1)); }