From 3a2175a5f6d5e8687c969b5177c27e165454d2b3 Mon Sep 17 00:00:00 2001 From: Xavier Fontanet Date: Thu, 20 Jun 2024 23:28:33 +0200 Subject: [PATCH] remove redundancy/duplicity --- .../hack3/codingtests/marsrover/MarsMap.java | 46 ++++++++++--------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/src/main/java/cat/hack3/codingtests/marsrover/MarsMap.java b/src/main/java/cat/hack3/codingtests/marsrover/MarsMap.java index 3650405..91e0801 100644 --- a/src/main/java/cat/hack3/codingtests/marsrover/MarsMap.java +++ b/src/main/java/cat/hack3/codingtests/marsrover/MarsMap.java @@ -39,40 +39,44 @@ public class MarsMap { private void incrementLatitude() { int latitude = currentPosition.getLatitude(); - int newLatitude = latitude + 1 > height - ? 1 - : ++latitude; + int newLatitude = getIncrementedPosition(latitude, height); setNewLatitude(newLatitude); } - private void decrementLatitude() { - int latitude = currentPosition.getLatitude(); - int newLatitude = latitude - 1 < 1 - ? height - : --latitude; - setNewLatitude(newLatitude); - } - - private void setNewLatitude(int newLatitude) { - currentPosition = currentPosition.ofUpdatedLatitude(newLatitude); - } - private void incrementLongitude() { int longitude = currentPosition.getLongitude(); - int newLongitude = longitude + 1 > width - ? 1 - : ++longitude; + int newLongitude = getIncrementedPosition(longitude, width); setNewLongitude(newLongitude); } + private int getIncrementedPosition(int currentPosition, int threshold) { + return currentPosition + 1 > threshold + ? 1 + : ++currentPosition; + } + + private void decrementLatitude() { + int latitude = currentPosition.getLatitude(); + int newLatitude = decrementPosition(latitude, height); + setNewLatitude(newLatitude); + } + private void decrementLongitude() { int longitude = currentPosition.getLongitude(); - int newLongitude = longitude - 1 < 1 - ? width - : --longitude; + int newLongitude = decrementPosition(longitude, width); setNewLongitude(newLongitude); } + private int decrementPosition(int currentPosition, int threshold) { + return currentPosition - 1 < 1 + ? threshold + : --currentPosition; + } + + private void setNewLatitude(int newLatitude) { + currentPosition = currentPosition.ofUpdatedLatitude(newLatitude); + } + private void setNewLongitude(int newLongitude) { currentPosition = currentPosition.ofUpdatedLongitude(newLongitude); }