diff options
Diffstat (limited to 'src/main/java/adapter')
| -rw-r--r-- | src/main/java/adapter/IModelAdapter.java | 12 | ||||
| -rw-r--r-- | src/main/java/adapter/ModelAdapter.java | 80 |
2 files changed, 92 insertions, 0 deletions
diff --git a/src/main/java/adapter/IModelAdapter.java b/src/main/java/adapter/IModelAdapter.java new file mode 100644 index 0000000..86139ee --- /dev/null +++ b/src/main/java/adapter/IModelAdapter.java @@ -0,0 +1,12 @@ +package adapter; + +/** + * Created by loic on 21/09/16. + */ +public interface IModelAdapter { + void goUp(); + void goDown(); + void goLeft(); + void goRight(); + boolean isLoosed(); +} diff --git a/src/main/java/adapter/ModelAdapter.java b/src/main/java/adapter/ModelAdapter.java new file mode 100644 index 0000000..1eac58a --- /dev/null +++ b/src/main/java/adapter/ModelAdapter.java @@ -0,0 +1,80 @@ +package adapter; + +import model.Board; +import observer.IObservable; +import observer.IObserver; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; + +/** + * Created by loic on 21/09/16. + */ +public class ModelAdapter implements IModelAdapter, IObservable{ + + private Board model; + private Collection<IObserver> observers; + + public ModelAdapter(Board model){ + this.model=model; + observers = new ArrayList<IObserver>(); + } + + @Override + public void goUp() { + model.goUp(); + model.addRandomNumber(); + this.notifyObservers(); + } + + @Override + public void goDown() { + model.goDown(); + model.addRandomNumber(); + this.notifyObservers(); + } + + @Override + public void goLeft() { + model.goLeft(); + model.addRandomNumber(); + this.notifyObservers(); + } + + @Override + public void goRight() { + model.goRight(); + model.addRandomNumber(); + this.notifyObservers(); + } + + + @Override + public boolean isLoosed() { + return this.model.isLoosed(); + } + + public void addRandomNumber() { + this.model.addRandomNumber(); + this.notifyObservers(); + } + + @Override + public void addObserver(IObserver observer) { + this.observers.add(observer); + } + + @Override + public void removeObserver(IObserver observer) { + this.observers.remove(observer); + } + + @Override + public void notifyObservers() { + Iterator<IObserver> i=this.observers.iterator(); + while(i.hasNext()){ + i.next().update(); + } + } +} |
