From 1e2eff1e9829f8ffa694f3258433c91c804ab473 Mon Sep 17 00:00:00 2001 From: Pacien TRAN-GIRARD Date: Thu, 26 Nov 2015 10:00:43 +0100 Subject: Improve choice filtering --- src/ch/epfl/maze/physical/World.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/ch/epfl/maze/physical') diff --git a/src/ch/epfl/maze/physical/World.java b/src/ch/epfl/maze/physical/World.java index 257fa65..9f4f155 100644 --- a/src/ch/epfl/maze/physical/World.java +++ b/src/ch/epfl/maze/physical/World.java @@ -7,6 +7,7 @@ import java.util.ArrayList; import java.util.EnumSet; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; /** * World that is represented by a labyrinth of tiles in which an {@code Animal} @@ -136,13 +137,12 @@ public abstract class World { * @return A set of all available choices at a position */ public final Set getChoiceSet(Vector2D position) { - Set choices = EnumSet.noneOf(Direction.class); + Set freeDirections = Direction.MOVING_DIRECTIONS + .stream() + .filter(dir -> this.isFree(position.addDirectionTo(dir))) + .collect(Collectors.toSet()); - for (Direction dir : Direction.POSSIBLE_DIRECTIONS) - if (this.isFree(position.addDirectionTo(dir))) - choices.add(dir); - - return choices.isEmpty() ? EnumSet.of(Direction.NONE) : choices; + return freeDirections.isEmpty() ? EnumSet.of(Direction.NONE) : freeDirections; } /** -- cgit v1.2.3