Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. public class Game {
  2.  
  3. private final Grid grid;
  4. private final PlacementError placementError;
  5. private Mark playingMark;
  6.  
  7. public Game(PlacementError placementError) {
  8. grid = new Grid();
  9. playingMark = Mark.x();
  10. this.placementError = placementError;
  11. }
  12.  
  13. public Game submit(Placement placement) {
  14. placement.validate(playingMark, grid, this);
  15. return this;
  16. }
  17.  
  18. public Game validPlacement(Placement placement) {
  19. place(placement).switchPlayers();
  20. return this;
  21. }
  22.  
  23. private Game place(Placement placement) {
  24. placement.place(grid);
  25. return this;
  26. }
  27.  
  28. public Game invalidPlacement(Placement placement) {
  29. placementError.report(placement);
  30. return this;
  31. }
  32.  
  33. private Game switchPlayers() {
  34. playingMark = playingMark.opponent();
  35. return this;
  36. }
  37.  
  38. public Game printOn(GameMedia gameMedia) {
  39. grid.printOn(gameMedia);
  40. return this;
  41. }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement