Browse Source

LifeTest final step passed

Finished Version
master
Moritz Neumeier 2 years ago
parent
commit
4e3d87a043

BIN
out/production/GameOfLifeAssignment/Life.class View File


BIN
out/test/GameOfLifeAssignment/LifeTest.class View File


+ 6
- 10
src/Life.java View File

@@ -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;
}
}

}

+ 15
- 8
test/LifeTest.java View File

@@ -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…
Cancel
Save