Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package projekt;
- /**
- * State
- * Use: Board b = new Board(); b.change(); b.change();
- * @author toor
- */
- public class Board {
- private BoardState current;
- public Board() {
- current = new FirstPlayer();
- }
- // Exporting non-public type through public API
- public void setBoardState(BoardState s) {
- current = s;
- }
- public void change() {
- current.change(this);
- }
- }
- interface BoardState {
- public void change(Board board);// {
- //board.setBoardState(new FirstPlayer());
- // }
- }
- class FirstPlayer implements BoardState {
- @Override
- public void change(Board board) {
- board.setBoardState(new SecondPlayer());
- }
- }
- class SecondPlayer implements BoardState {
- @Override
- public void change(Board board) {
- board.setBoardState(new FirstPlayer());
- }
- }
Add Comment
Please, Sign In to add comment