From 9663557444611dd2329bd80abb5b50267b0c6ebe Mon Sep 17 00:00:00 2001 From: LeonardoBizzoni Date: Thu, 1 Jul 2021 10:38:49 +0200 Subject: [PATCH] Clean up --- src/main/java/Main/AStar.java | 23 +++++++++----- src/main/java/Main/Map.java | 28 ++++++++++-------- target/PathVisualizer-1.0-SNAPSHOT.jar | Bin 11007 -> 11045 bytes target/classes/Main/AStar.class | Bin 2946 -> 3021 bytes target/classes/Main/Map.class | Bin 7119 -> 7119 bytes target/surefire-reports/Main.AppTest.txt | 2 +- target/surefire-reports/TEST-Main.AppTest.xml | 8 ++--- 7 files changed, 37 insertions(+), 24 deletions(-) diff --git a/src/main/java/Main/AStar.java b/src/main/java/Main/AStar.java index 62aa128..333e84a 100644 --- a/src/main/java/Main/AStar.java +++ b/src/main/java/Main/AStar.java @@ -2,10 +2,11 @@ package Main; public class AStar{ private Map map; + private int x, y; public AStar(Map map) { this.map = map; - PathfinderUtils.path.removeAll(PathfinderUtils.path); + PathfinderUtils.path.clear(); } public void start() { @@ -14,18 +15,19 @@ public class AStar{ public void searchPath(Node parent) { for (int i = 0; i < 4; i++) { - int x = (int) Math.round(parent.getX() + (-map.size* Math.cos((Math.PI / 2) * i))); - int y = (int) Math.round(parent.getY() + (-map.size* Math.sin((Math.PI / 2) * i))); + x = (int) Math.round(parent.getX() + (-map.size* Math.cos((Math.PI / 2) * i))); + y = (int) Math.round(parent.getY() + (-map.size* Math.sin((Math.PI / 2) * i))); calculateOpenNode(x, y, parent); } - parent = getNextBestNode(); + if((parent = getNextBestNode()) == null) + return; PathfinderUtils.closedNodes.add(parent); PathfinderUtils.openNodes.remove(parent); - if (!map.isFinished) + if (!map.isFinished) searchPath(parent); } @@ -86,7 +88,14 @@ public class AStar{ } public Node getNextBestNode() { - PathfinderUtils.sort(); - return PathfinderUtils.openNodes.get(0); + if (PathfinderUtils.openNodes.size() > 0) { + PathfinderUtils.sort(); + return PathfinderUtils.openNodes.get(0); + } + + map.isFinished = true; + ControlPanel.toggleRunBtn.setText("Clear"); + map.repaint(); + return null; } } diff --git a/src/main/java/Main/Map.java b/src/main/java/Main/Map.java index e63983d..c92abfe 100644 --- a/src/main/java/Main/Map.java +++ b/src/main/java/Main/Map.java @@ -16,7 +16,8 @@ import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.event.MouseEvent; import java.awt.event.MouseListener; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import javax.swing.JFrame; @@ -33,7 +34,7 @@ class Map extends JPanel implements ActionListener, MouseListener, MouseMotionLi static int height; boolean isFinished = false; - int size = 30; + int size = 20; public Map() { this.setBackground(new Color(40, 40, 40)); @@ -83,7 +84,7 @@ class Map extends JPanel implements ActionListener, MouseListener, MouseMotionLi } // Draws barrier nodes - g.setColor(new Color(235, 219, 178)); + g.setColor(Color.white); for (Node node : PathfinderUtils.barriers) { g.fillRect(node.getX() + 1, node.getY() + 1, size - 1, size - 1); } @@ -166,11 +167,11 @@ class Map extends JPanel implements ActionListener, MouseListener, MouseMotionLi int posY = e.getY() - (e.getY() % size); Node barrierNode = new Node(posX, posY); - if(PathfinderUtils.startNode != null) - if(PathfinderUtils.isSameNode(barrierNode, PathfinderUtils.startNode)) + if (PathfinderUtils.startNode != null) + if (PathfinderUtils.isSameNode(barrierNode, PathfinderUtils.startNode)) return; - if(PathfinderUtils.endNode != null) - if(PathfinderUtils.isSameNode(barrierNode, PathfinderUtils.endNode)) + if (PathfinderUtils.endNode != null) + if (PathfinderUtils.isSameNode(barrierNode, PathfinderUtils.endNode)) return; PathfinderUtils.barriers.add(barrierNode); @@ -232,8 +233,11 @@ class Map extends JPanel implements ActionListener, MouseListener, MouseMotionLi @Override public void actionPerformed(ActionEvent e) { if (ControlPanel.toggleRunBtn.getText().equals("Run")) { - switch (ControlPanel.algo.getItemAt(ControlPanel.algo.getSelectedIndex())) { + if (PathfinderUtils.startNode == null || PathfinderUtils.endNode == null) + return; + + switch (ControlPanel.algo.getItemAt(ControlPanel.algo.getSelectedIndex())) { case ("A*"): new AStar(this).start(); break; @@ -255,10 +259,10 @@ class Map extends JPanel implements ActionListener, MouseListener, MouseMotionLi } } - else if(ControlPanel.toggleRunBtn.getText().equals("Clear")){ - PathfinderUtils.barriers.removeAll(PathfinderUtils.barriers); - PathfinderUtils.openNodes.removeAll(PathfinderUtils.openNodes); - PathfinderUtils.closedNodes.removeAll(PathfinderUtils.closedNodes); + else if (ControlPanel.toggleRunBtn.getText().equals("Clear")) { + PathfinderUtils.barriers.clear(); + PathfinderUtils.openNodes.clear(); + PathfinderUtils.closedNodes.clear(); PathfinderUtils.startNode = null; PathfinderUtils.endNode = null; diff --git a/target/PathVisualizer-1.0-SNAPSHOT.jar b/target/PathVisualizer-1.0-SNAPSHOT.jar index c080b58abe2c60b61b835439ba8217d266f24b4a..7079e78d0af7ac313cbab28dc5674f69b5c98585 100644 GIT binary patch delta 5871 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 delta 5830 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 C14y9& diff --git a/target/classes/Main/AStar.class b/target/classes/Main/AStar.class index 01b3d6cc68535b2c47ca86c5e0694b0a40414633..b96485953030c467b2c3388d72091fc1c63494c2 100644 GIT binary patch literal 3021 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 delta 3581 zcmai$33yc16~}-7nMvNvcy%eipLT#{zD%xZRJNZRX()19uv@%VN79FL(P{z;6xw&cF@> zI}J2g{N7JejN~3;-RtE(Gv04tm&F5qQhCtNL+m!5h@VgrjmF$#2p%@eM2)rASWU)i zHt>kaZJ(b<*>B)6ACL2dpIrW6;DGTxX?#x^cshZDJd?l%{%GJ?i|5SOJa68;VBkdq zfAVvPm;51KHY6__lE-<)%b&fxYVj98BY4e_KWN}}18;cwtCu$o`&%aXZ4>b~1Mm2G zm-kGf@B47`fu9dK?BydrC46i=fA{kb{%PP7izCMUsh7{ZeD0mV7Z(5WQ_402|Mu}E zUwQf3&wu#F%eP*>^K#V7F|+LVhPcJz2aDqtKU%_)EV&vFYPjTX{LyuTK&2b!naJP*12>US7SbqNdu= zr&{W2tDDknovQA((y6u8!>rI#y=*R`(pHACs*Kg!yzOJYVlC?|oo1`A$t_d;EcLfF zfc3Vr)XP@TK(2zB~IwRa8eqr($jkPt-q&i;RMP4`~J~#YGe3!BbDz-IIqivn3Nwy}d zyQL|%rfQnarCesKMAI#uWow4c7Vgs3)wW7a%uJnQ>0Dd0OwO}4MY@& zf`!Wz6mS{gIOBy>0A5oYXRLBYjEpdUHO_M)!dgKsVr6(<(g5`gZ%n#Av(Td3e+(9q#c);Zf-=^QIgY4 zj;JRmr{!^jT}Auf{_h=x}xuL+UjtxCdAAs=HX89c8Hb1@~aBSbBPP zlwsxOjGOCfx22vtqrbihaA+tx6(}PiZ zH>k=XFF!eXC`MisIHQ$3>*wTI4tZ9LJgc3YqbEo>mVZ%udLum%G7plJX2vE8>hbK3 zkk#tRYAR@R1=BpujBzpBNuI6QO^mH4e1c`d1G_8>jVthU@wo29+r`twcoVl9aATVJ z9SVWfSgawLwe(^gxm?0X)-#b`auy+Gu#s6@PB~Xn#U@s94QsiUi`mRZu4fB3u$?XJ zB1|(kae$k7lC3<;ZM?y@5btsaAG4iLxSP+|K?^&TK!Z}bN9o+F{@kYl+^<}AX#@{w zBoC>Wh$hphY3$WZnzWc^)v`|;cvLsBU$^p@?&N?T;7J|eDIMf#y~uNVl^66TFX~+m z=|f(j&WQ42YbJD}wzvCQD2dHe0!6WTN@WOFupWyA#S`&#ki4^~T7Vi3kQnBMgd|OD1OLN63%aY9v#QWCh(16K}dR!bJ0V z^PMgYIU*?K6yOsQIl^^(&MkbwR=(tJzGesCvWufUL<`LvXTMxLFE_8t!-tCF3&r!5 zEWVYG79|Loe+LtP+Ih8$Nk&XJwjShNN%(f}%F}N&PYa-S&8b~;;dafPkRmnKy)niAoFk^Sn>yw=^@M4}D1OrcMF`Zh1CE - + @@ -16,7 +16,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -59,5 +59,5 @@ - + \ No newline at end of file -- 2.52.0