From 38bf71356209375c6f88c65f98607162d85399fa Mon Sep 17 00:00:00 2001 From: Chris Cromer Date: Sat, 26 Oct 2019 20:23:31 -0300 Subject: [PATCH] Remove sort destinations from AI class Change enemy to 600ms sleep Change chest number back to 2 Turn lock back on for enemies Signed-off-by: Chris Cromer --- src/main/java/cl/cromer/azaraka/Constants.java | 2 +- src/main/java/cl/cromer/azaraka/Scene.java | 2 +- src/main/java/cl/cromer/azaraka/ai/AI.java | 9 --------- src/main/java/cl/cromer/azaraka/ai/EnemyAI.java | 2 +- src/main/java/cl/cromer/azaraka/ai/PlayerAI.java | 3 ++- src/main/java/cl/cromer/azaraka/ai/PlayerAStarAI.java | 1 - 6 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/main/java/cl/cromer/azaraka/Constants.java b/src/main/java/cl/cromer/azaraka/Constants.java index 7ad53f6..bdeba51 100644 --- a/src/main/java/cl/cromer/azaraka/Constants.java +++ b/src/main/java/cl/cromer/azaraka/Constants.java @@ -69,7 +69,7 @@ public interface Constants { /** * The amount of chests to draw, if less then 2 the game cannot be won */ - int CHESTS = 3; + int CHESTS = 2; /** * The amount of enemies to draw */ diff --git a/src/main/java/cl/cromer/azaraka/Scene.java b/src/main/java/cl/cromer/azaraka/Scene.java index 1507ae9..d3d5990 100644 --- a/src/main/java/cl/cromer/azaraka/Scene.java +++ b/src/main/java/cl/cromer/azaraka/Scene.java @@ -195,7 +195,7 @@ public class Scene extends JComponent implements Constants { } } - final Lock lock = new ReentrantLock(false); + final Lock lock = new ReentrantLock(true); for (int i = 0; i < ENEMIES; i++) { random = randomCoordinates(); cells.get(random[0]).get(random[1]).setObject(new Enemy(this, cells.get(random[0]).get(random[1]), lock)); diff --git a/src/main/java/cl/cromer/azaraka/ai/AI.java b/src/main/java/cl/cromer/azaraka/ai/AI.java index f54ff85..53e257f 100644 --- a/src/main/java/cl/cromer/azaraka/ai/AI.java +++ b/src/main/java/cl/cromer/azaraka/ai/AI.java @@ -87,15 +87,6 @@ public class AI implements Runnable { throw new AIException("The addDestination method should be run by the child only!"); } - /** - * Sort the destinations - * - * @throws AIException Thrown when the parent method is called directly - */ - public void sortDestinations() throws AIException { - throw new AIException("The addDestination method should be run by the child only!"); - } - /** * The AI should run in a loop */ diff --git a/src/main/java/cl/cromer/azaraka/ai/EnemyAI.java b/src/main/java/cl/cromer/azaraka/ai/EnemyAI.java index 25ff01a..4660ec7 100644 --- a/src/main/java/cl/cromer/azaraka/ai/EnemyAI.java +++ b/src/main/java/cl/cromer/azaraka/ai/EnemyAI.java @@ -215,7 +215,7 @@ public class EnemyAI extends AI implements Runnable, Constants { public void run() { while (getActive()) { try { - Thread.sleep(700); + Thread.sleep(600); } catch (InterruptedException e) { logger.info(e.getMessage()); diff --git a/src/main/java/cl/cromer/azaraka/ai/PlayerAI.java b/src/main/java/cl/cromer/azaraka/ai/PlayerAI.java index 12b2081..b81f456 100644 --- a/src/main/java/cl/cromer/azaraka/ai/PlayerAI.java +++ b/src/main/java/cl/cromer/azaraka/ai/PlayerAI.java @@ -89,7 +89,6 @@ public interface PlayerAI extends Runnable, Constants { * @return Returns the new sorted destinations */ default List sortDestinations(List destinations, State initial) { - // TODO: make the AI look for the goal farthest from the enemy destinations.sort((state1, state2) -> { if (state1.getImportance() > state2.getImportance()) { // The first state is more important @@ -103,7 +102,9 @@ public interface PlayerAI extends Runnable, Constants { // The states have equal importance, so let's compare distances between them if (initial != null) { double state1Distance = heuristic(initial, state1); + // TODO: Find closest enemy to state 1, if player distance is closer than enemy, go for it double state2Distance = heuristic(initial, state2); + // TODO: Find closest enemy to state 2, if player distance is closer than enemy, go for it return Double.compare(state1Distance, state2Distance); } else { diff --git a/src/main/java/cl/cromer/azaraka/ai/PlayerAStarAI.java b/src/main/java/cl/cromer/azaraka/ai/PlayerAStarAI.java index a0b39b3..241a8e1 100644 --- a/src/main/java/cl/cromer/azaraka/ai/PlayerAStarAI.java +++ b/src/main/java/cl/cromer/azaraka/ai/PlayerAStarAI.java @@ -445,7 +445,6 @@ public class PlayerAStarAI extends AI implements PlayerAI, Constants { /** * Sort the destinations by importance, if the importance is the same then sort them by distance */ - @Override public void sortDestinations() { if (initial == null) { initial = new State(player.getCell().getX(), player.getCell().getY(), State.Type.PLAYER, null, 0);