diff --git a/src/AbstractStrategy.java b/src/AbstractStrategy.java new file mode 100644 index 0000000..1845d4a --- /dev/null +++ b/src/AbstractStrategy.java @@ -0,0 +1,60 @@ +public abstract class AbstractStrategy { + private IMoveableObject moveableObject; + private Status state = Status.NOT_INIT; + private int fieldWidth; + protected int getFieldWidth(){return fieldWidth;} + private int fieldHeight; + protected int getFieldHeight(){return fieldHeight;} + public Status getStatus() {return state;} + public void setData(IMoveableObject moveableObject, int width, int height){ + if (moveableObject == null) + { + state = Status.NOT_INIT; + return; + } + state = Status.IN_PROGRESS; + this.moveableObject = moveableObject; + fieldWidth = width; + fieldHeight = height; + } + public void makeStep(){ + if (state != Status.IN_PROGRESS) { + return; + } + if (isTargetDestination()) { + state = Status.FINISH; + return; + } + moveToTarget(); + } + protected boolean moveLeft() {return moveTo(DirectionType.LEFT);} + protected boolean moveRight() {return moveTo(DirectionType.RIGHT);} + protected boolean moveUp() {return moveTo(DirectionType.UP);} + protected boolean moveDown() {return moveTo(DirectionType.DOWN);} + protected ObjectParameters getObjectParameters(){ + if(moveableObject != null) + return moveableObject.getObjectPosition(); + else return null; + } + protected Integer getStep() { + if (state != Status.IN_PROGRESS) + { + return null; + } + return moveableObject.getStep(); + } + protected abstract void moveToTarget(); + protected abstract boolean isTargetDestination(); + private boolean moveTo(DirectionType directionType) { + if (state != Status.IN_PROGRESS) + { + return false; + } + if (moveableObject.checkCanMove(directionType)) + { + moveableObject.moveObject(directionType); + return true; + } + return false; + } +} diff --git a/src/DrawingBus.java b/src/DrawingBus.java new file mode 100644 index 0000000..1c8f8af --- /dev/null +++ b/src/DrawingBus.java @@ -0,0 +1,2 @@ +package PACKAGE_NAME;public class DrawingBus { +} diff --git a/src/DrawingDoorsRoundedUp.java b/src/DrawingDoorsRoundedUp.java new file mode 100644 index 0000000..ec2c0ac --- /dev/null +++ b/src/DrawingDoorsRoundedUp.java @@ -0,0 +1,2 @@ +package PACKAGE_NAME;public class DrawingDoorsRoundedUp { +} diff --git a/src/DrawingDoorsRoundedUpAndDown.java b/src/DrawingDoorsRoundedUpAndDown.java new file mode 100644 index 0000000..b0df919 --- /dev/null +++ b/src/DrawingDoorsRoundedUpAndDown.java @@ -0,0 +1,2 @@ +package PACKAGE_NAME;public class DrawingDoorsRoundedUpAndDown { +} diff --git a/src/DrawingObjectBus.java b/src/DrawingObjectBus.java new file mode 100644 index 0000000..ae1c60a --- /dev/null +++ b/src/DrawingObjectBus.java @@ -0,0 +1,2 @@ +package PACKAGE_NAME;public class DrawingObjectBus { +} diff --git a/src/EntityBus.java b/src/EntityBus.java new file mode 100644 index 0000000..2eb5b6c --- /dev/null +++ b/src/EntityBus.java @@ -0,0 +1,2 @@ +package PACKAGE_NAME;public class EntityBus { +} diff --git a/src/IDrawDoors.java b/src/IDrawDoors.java new file mode 100644 index 0000000..2cc9af2 --- /dev/null +++ b/src/IDrawDoors.java @@ -0,0 +1,2 @@ +package PACKAGE_NAME;public interface IDrawDoors { +} diff --git a/src/IMoveableObject.java b/src/IMoveableObject.java new file mode 100644 index 0000000..7c1970d --- /dev/null +++ b/src/IMoveableObject.java @@ -0,0 +1,2 @@ +package PACKAGE_NAME;public interface IMoveableObject { +} diff --git a/src/MoveToBorder.java b/src/MoveToBorder.java new file mode 100644 index 0000000..ff02190 --- /dev/null +++ b/src/MoveToBorder.java @@ -0,0 +1,2 @@ +package PACKAGE_NAME;public class MoveToBorder { +} diff --git a/src/ObjectParameters.java b/src/ObjectParameters.java new file mode 100644 index 0000000..b8149d0 --- /dev/null +++ b/src/ObjectParameters.java @@ -0,0 +1,2 @@ +package PACKAGE_NAME;public class ObjectParameters { +}