package adapter; import model.Board; import observer.*; import java.util.*; /** * Created by loic on 21/09/16. */ public class ModelAdapter implements IObservable{ private Board model; private Collection observers; public ModelAdapter(Board model){ this.model=model; observers = new ArrayList(); } /** * Add a random number on the board */ public void addRandomNumber() { this.model.addRandomNumber(); this.notifyObservers(); } /** * Go up */ public void goUp() { model.goUp(); this.notifyObservers(); } /** * Go down */ public void goDown() { model.goDown(); this.notifyObservers(); } /** * Go left */ public void goLeft() { model.goLeft(); this.notifyObservers(); } /** * Go right */ public void goRight() { model.goRight(); this.notifyObservers(); } /** * Return true if the game is loose, false else * @return */ public boolean isLoosed() { return this.model.isLoosed(); } @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 i=this.observers.iterator(); while(i.hasNext()){ i.next().update(); } } }