/Chess/src2/server/GameHandler.java

https://bitbucket.org/revvy/chess · Java · 53 lines · 51 code · 2 blank · 0 comment · 13 complexity · 20a1e582bba41edfbbdd2f55fd070321 MD5 · raw file

  1. package server;
  2. public class GameHandler
  3. {
  4. private RegisterTracker registerTracker = new RegisterTracker();
  5. private TurnTracker turnTracker = new TurnTracker();
  6. private MoveTracker moveTracker = new MoveTracker();
  7. private BoardTracker boardTracker = new BoardTracker();
  8. public synchronized String processInput(String input)
  9. {
  10. if (input.contains("request ID"))
  11. {
  12. return registerTracker.register();
  13. }
  14. else if (input.contains("update board"))
  15. {
  16. return boardTracker.getBoard();
  17. }
  18. else if (input.contains("get latest move"))
  19. {
  20. input = input.replace("white", "");
  21. input = input.replace("black", "");
  22. input = input.replace("viewer", "");
  23. input = input.replace("get latest move", "");
  24. int moveNumber = Integer.parseInt(input);
  25. return moveTracker.getLatestMove(moveNumber);
  26. }
  27. else if (input.contains("get player to move"))
  28. {
  29. return turnTracker.getPlayerToMove();
  30. }
  31. else if (input.contains("make move"))
  32. {
  33. input = input.replace("make move", "");
  34. if (input.contains("white") &&
  35. turnTracker.getPlayerToMove().equals("white"))
  36. {
  37. input = input.replace("white", "");
  38. moveTracker.addMove(input);
  39. turnTracker.nextTurn();
  40. }
  41. else if (input.contains("black") &&
  42. turnTracker.getPlayerToMove().equals("black"))
  43. {
  44. input = input.replace("black", "");
  45. moveTracker.addMove(input);
  46. turnTracker.nextTurn();
  47. }
  48. }
  49. return "no update";
  50. }
  51. }