Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Game {
- private final Grid grid;
- private final PlacementError placementError;
- private Mark playingMark;
- public Game(PlacementError placementError) {
- grid = new Grid();
- playingMark = Mark.x();
- this.placementError = placementError;
- }
- public Game submit(Placement placement) {
- placement.validate(playingMark, grid, this);
- return this;
- }
- public Game validPlacement(Placement placement) {
- place(placement).switchPlayers();
- return this;
- }
- private Game place(Placement placement) {
- placement.place(grid);
- return this;
- }
- public Game invalidPlacement(Placement placement) {
- placementError.report(placement);
- return this;
- }
- private Game switchPlayers() {
- playingMark = playingMark.opponent();
- return this;
- }
- public Game printOn(GameMedia gameMedia) {
- grid.printOn(gameMedia);
- return this;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement