From c0be2de7c1d74033ae267662b67653beefb96f79 Mon Sep 17 00:00:00 2001 From: Arthur Bols Date: Fri, 13 Apr 2018 16:12:45 +0200 Subject: [PATCH] fix ispassable --- OGP1718-Worms/src/worms/facade/Facade.java | 1 - OGP1718-Worms/src/worms/model/World.java | 16 ++++++++++++---- .../worms/model/PartialPart2FacadeTest.java | 7 +++---- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/OGP1718-Worms/src/worms/facade/Facade.java b/OGP1718-Worms/src/worms/facade/Facade.java index f23832b..f438c49 100644 --- a/OGP1718-Worms/src/worms/facade/Facade.java +++ b/OGP1718-Worms/src/worms/facade/Facade.java @@ -1,6 +1,5 @@ package worms.facade; -import com.sun.org.apache.xpath.internal.operations.Mod; import worms.model.Food; import worms.model.Team; import worms.model.World; diff --git a/OGP1718-Worms/src/worms/model/World.java b/OGP1718-Worms/src/worms/model/World.java index bdd670a..c2d611a 100644 --- a/OGP1718-Worms/src/worms/model/World.java +++ b/OGP1718-Worms/src/worms/model/World.java @@ -142,13 +142,21 @@ public class World { public boolean isPassable(double[] center, double radius) { for (double i = 0; i < 2 * Math.PI; i += Math.PI / 180) { - double lenX = center[0] + radius * Math.cos(i); - double lenY = center[1] + radius * Math.sin(i); + double lenX = Math.round((center[0] + radius * Math.cos(i)) * 10000) / 10000; + double lenY = Math.round((center[1] + radius * Math.sin(i)) * 10000) / 10000; - if (!isPassable(lenX, lenY)) return false; + if (i < 1.58 && i > 1.57) { + lenY -= 0.00001; + } + else if (i < 0.79 && i > 0.78 ) { + lenX -= 0.00001; + } + + if (!isPassable(lenX, lenY)) { + return false; + } } return true; - } private boolean isUnderCircle(Coordinate square, Coordinate center, double radius) { diff --git a/OGP1718-Worms/tests/worms/model/PartialPart2FacadeTest.java b/OGP1718-Worms/tests/worms/model/PartialPart2FacadeTest.java index 71f2690..c1e88d1 100644 --- a/OGP1718-Worms/tests/worms/model/PartialPart2FacadeTest.java +++ b/OGP1718-Worms/tests/worms/model/PartialPart2FacadeTest.java @@ -33,7 +33,7 @@ public class PartialPart2FacadeTest { world = facade.createWorld(4.0, 4.0, passableMap); } - @Test + @Test public void testMaximumActionPoints() { Worm worm = facade.createWorm(world, new double[] { 1, 2 }, 0, 1, "Test", null); assertEquals(4448, facade.getMaxNbActionPoints(worm)); @@ -48,7 +48,7 @@ public class PartialPart2FacadeTest { assertEquals(2, xy[1], EPS); } - @Test + @Test public void testMoveVertical() { Worm worm = facade.createWorm(world, new double[] { 1, 1.5 }, Math.PI / 2, 0.5, "Test", null); facade.move(worm); @@ -56,8 +56,7 @@ public class PartialPart2FacadeTest { assertEquals(1, xy[0], EPS); assertEquals(2.0, xy[1], EPS); } - - @Test + @Test public void testFall() { // . X . // . w .