From 423f74f694476b95fdfce608de07e3c02feed08a Mon Sep 17 00:00:00 2001 From: pacien Date: Sun, 14 Jan 2018 16:32:24 +0100 Subject: Impl. stub Signed-off-by: pacien --- src/main/java/fr/umlv/java/wallj/model/Stage.java | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/main/java/fr/umlv') diff --git a/src/main/java/fr/umlv/java/wallj/model/Stage.java b/src/main/java/fr/umlv/java/wallj/model/Stage.java index b66a7ca..4233326 100644 --- a/src/main/java/fr/umlv/java/wallj/model/Stage.java +++ b/src/main/java/fr/umlv/java/wallj/model/Stage.java @@ -31,6 +31,12 @@ public class Stage { */ public List update(Context context) { //TODO + return null; + } + + public boolean isCleared() { + // TODO + return false; } } -- cgit v1.2.3 From a494bba689e1a95dd17287287c6394cb7a0cb7ef Mon Sep 17 00:00:00 2001 From: pacien Date: Sun, 14 Jan 2018 16:36:04 +0100 Subject: Move neighbour tile list Signed-off-by: pacien --- src/main/java/fr/umlv/java/wallj/board/PathFinder.java | 9 ++------- src/main/java/fr/umlv/java/wallj/board/TileVec2.java | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 7 deletions(-) (limited to 'src/main/java/fr/umlv') diff --git a/src/main/java/fr/umlv/java/wallj/board/PathFinder.java b/src/main/java/fr/umlv/java/wallj/board/PathFinder.java index 9c509f3..8dbab2d 100644 --- a/src/main/java/fr/umlv/java/wallj/board/PathFinder.java +++ b/src/main/java/fr/umlv/java/wallj/board/PathFinder.java @@ -12,11 +12,6 @@ import java.util.stream.Collectors; public class PathFinder { private static final int LEAP_COST = 1; - private static final List NEIGHBOR_OFFSETS = Arrays.asList( - TileVec2.of(0, -1), - TileVec2.of(-1, 0), - TileVec2.of(0, 1), - TileVec2.of(1, 0)); private static class Node { final T val; @@ -99,8 +94,8 @@ public class PathFinder { .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); for (Node node : map.values()) - NEIGHBOR_OFFSETS.stream() - .map(offsetVector -> map.get(node.val.add(offsetVector))) + node.val.neighbors().stream() + .map(map::get) .filter(Objects::nonNull) .forEach(neighbor -> node.neighbors.put(neighbor, LEAP_COST)); diff --git a/src/main/java/fr/umlv/java/wallj/board/TileVec2.java b/src/main/java/fr/umlv/java/wallj/board/TileVec2.java index 70beed9..82200a7 100644 --- a/src/main/java/fr/umlv/java/wallj/board/TileVec2.java +++ b/src/main/java/fr/umlv/java/wallj/board/TileVec2.java @@ -2,7 +2,10 @@ package fr.umlv.java.wallj.board; import org.jbox2d.common.Vec2; +import java.util.Arrays; +import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * A typed immutable tile coordinate vector containing the coordinates of a Tile in a Board. @@ -12,6 +15,11 @@ import java.util.Objects; public final class TileVec2 { private static final int TILE_DIM = 20; + private static final List NEIGHBOR_OFFSETS = Arrays.asList( + of(0, -1), + of(-1, 0), + of(0, 1), + of(1, 0)); /** * @param col the column @@ -62,6 +70,13 @@ public final class TileVec2 { return TileVec2.of(col + v.col, row + v.row); } + /** + * @return a list of the surrounding direct neighbours of this tile + */ + public List neighbors() { + return NEIGHBOR_OFFSETS.stream().map(this::add).collect(Collectors.toList()); + } + @Override public boolean equals(Object o) { if (this == o) return true; -- cgit v1.2.3