From 3f7fc718fb8bf4cc0a1deaa76aee1b5fca466630 Mon Sep 17 00:00:00 2001 From: NET-D3v3l0p3r <3r0rxx@gmail.com> Date: Tue, 27 Apr 2021 20:34:05 +0200 Subject: [PATCH] =?UTF-8?q?2=20Ans=C3=A4tze=20->=20simples=20flood=20fill?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Program.java | 4 ++++ src/approach2/algorithm/Explorer.java | 25 +++++++++++++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/Program.java b/src/Program.java index ee73c02..2dda244 100644 --- a/src/Program.java +++ b/src/Program.java @@ -3,10 +3,14 @@ import window.MainWindowApproach1; import window.MainWindowApproach2; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.ReentrantLock; + public class Program { public static void main(String[] args) throws Exception { + MainWindowApproach2 window = new MainWindowApproach2("Pathfinder v1", 1080, 1080); window.run(); diff --git a/src/approach2/algorithm/Explorer.java b/src/approach2/algorithm/Explorer.java index 727edd3..dcff27d 100644 --- a/src/approach2/algorithm/Explorer.java +++ b/src/approach2/algorithm/Explorer.java @@ -42,13 +42,25 @@ public class Explorer { boolean - left = SharedRessources.getInstance().isWall(x - 1, y); + left = SharedRessources.getInstance().isWall(x - 1, y) ; boolean - right = SharedRessources.getInstance().isWall(x + 1, y); + right = SharedRessources.getInstance().isWall(x + 1, y) ; boolean up - = SharedRessources.getInstance().isWall(x, y - 1); + = SharedRessources.getInstance().isWall(x, y - 1) ; boolean down - = SharedRessources.getInstance().isWall(x, y + 1); + = SharedRessources.getInstance().isWall(x, y + 1) ; + + boolean leftUp = + SharedRessources.getInstance().isWall(x - 1, y- 1); + boolean rightUp = + SharedRessources.getInstance().isWall(x + 1, y- 1); + + boolean leftDown = + SharedRessources.getInstance().isWall(x - 1, y + 1); + boolean rightDown = + SharedRessources.getInstance().isWall(x + 1, y + 1); + + int stepLeft = SharedRessources.getInstance().getStep(x - 1, y); @@ -59,6 +71,9 @@ public class Explorer { int stepDown = SharedRessources.getInstance().getStep(x, y + 1); + if(!left && !right && !up && !down && !rightDown && !rightUp && !leftDown && !leftUp) + continue; + if (!left) { if (steps < stepLeft) { SharedRessources.getInstance() @@ -113,6 +128,8 @@ public class Explorer { } + System.out.println("Done."); + } -- GitLab