Browse Source

chooseField returns correekt Field case:Down has Ship

Max Wenzel 3 years ago
parent
commit
d3f1abdd7b
  1. 6
      src/main/java/de/tims/fleetstorm/ai/Logic.java
  2. 20
      src/test/java/de/tims/fleetstorm/ai/LogicTest.java

6
src/main/java/de/tims/fleetstorm/ai/Logic.java

@ -31,8 +31,12 @@ public class Logic {
if (foundShip) {
if (!clearedAbove) {
target = matchfield.getAbove(lastShot);
if (target.equals(lastShot)) {
target = matchfield.getAbove(lastShot);
} else {
target = matchfield.getBelow(lastShot);
}
return target;
}
}

20
src/test/java/de/tims/fleetstorm/ai/LogicTest.java

@ -274,4 +274,24 @@ class LogicTest {
assertEquals(result, expectedResult);
}
@Test
void testChooseFieldBelowAfterHit() {
Logic logic = new Logic();
int size = 4;
Coordinate center = new Coordinate(2, 2);
Coordinate empty = new Coordinate(2, 3);
Coordinate expectedResult = new Coordinate(2, 1);
Matchfield matchfield = new Matchfield(size);
matchfield.createMatchfield();
matchfield.setState(center, Coordinate.HIT);
matchfield.setState(empty, Coordinate.EMPTY);
matchfield.setState(expectedResult, Coordinate.HIT);
logic.setMatchfield(matchfield);
logic.setLastShot(center);
logic.setTarget(empty);
logic.setFoundShip(true);
Coordinate result = logic.chooseField(logic.getEverySecondField());
assertEquals(result, expectedResult);
}
}
Loading…
Cancel
Save