diff --git a/src/main/java/de/tims/fleetstorm/matchfield/Coordinate.java b/src/main/java/de/tims/fleetstorm/matchfield/Coordinate.java index f31b14c..7ce2692 100644 --- a/src/main/java/de/tims/fleetstorm/matchfield/Coordinate.java +++ b/src/main/java/de/tims/fleetstorm/matchfield/Coordinate.java @@ -45,7 +45,12 @@ public class Coordinate { } public void shoot() { - this.setState(Coordinate.HIT); + if (this.state == Coordinate.SHIP) { + this.state = Coordinate.HIT; + return; + } + + this.state = Coordinate.SHOT; } } diff --git a/src/test/java/de/tims/fleetstorm/matchfield/CoordinateTest.java b/src/test/java/de/tims/fleetstorm/matchfield/CoordinateTest.java index 9705b32..0aefe99 100644 --- a/src/test/java/de/tims/fleetstorm/matchfield/CoordinateTest.java +++ b/src/test/java/de/tims/fleetstorm/matchfield/CoordinateTest.java @@ -60,7 +60,8 @@ class CoordinateTest { } static Stream ShootFunctionFieldStates() { - return Stream.of(Arguments.of("Field State is HIT", new Coordinate(0, 0), Coordinate.HIT)); + return Stream.of(Arguments.of("Field State is HIT", new Coordinate(0, 0), Coordinate.HIT), + Arguments.of("Field State is SHOT", new Coordinate(0, 1), Coordinate.SHOT)); } }