Advertisement
Guest User

Untitled

a guest
Jan 8th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. package de.tuberlin.pes.swtpp.chess.control;
  2. import java.util.HashMap;
  3. import de.tuberlin.pes.swtpp.chess.model.User;
  4. import de.tuberlin.pes.swtpp.chess.model.Bot;
  5. import de.tuberlin.pes.swtpp.chess.model.Game;
  6.  
  7. public class GameController {
  8. //MoveCounter in Game.java
  9. private Game PendingGame;
  10. private Bot Ernie;
  11. private int GameCounter;
  12. private static GameController instance = null;
  13. private HashMap<Integer, Game> games;
  14.  
  15. public GameController() {
  16. this.games = new HashMap<Integer, Game>();
  17. this.GameCounter = 0;
  18. this.PendingGame = null;
  19. this.Ernie = new Bot();
  20.  
  21. }
  22.  
  23. public static synchronized GameController getInstance() {
  24. if (instance == null) instance = new GameController();
  25. return instance;
  26. }
  27.  
  28. public boolean checkGameExists(int id) {
  29. return games.containsKey(id);
  30. }
  31.  
  32. public Game findGameByID(int id) {
  33. if (games.containsKey(id)) return games.get(id);
  34. return null;
  35. }
  36. public boolean CheckForPendingGame() {
  37. if (this.PendingGame == null) return false;
  38. return true;
  39. }
  40. public void SetGameAsPending(Game temp) {
  41. this.PendingGame = temp;
  42. }
  43.  
  44. public synchronized int startBotGame(User player) {
  45. Game BotGame = createGame(player);
  46. BotGame.setWhitePlayer(player);
  47. BotGame.setBlackPlayer(Ernie);
  48. return BotGame.getGameID();
  49. }
  50.  
  51. public synchronized int startUserGame(User player) {
  52. if (CheckForPendingGame()) {
  53. Game GameToBeStarted = joinGame(player);
  54. return GameToBeStarted.getGameID();
  55. }
  56.  
  57. Game NewUserGame = createGame(player);
  58.  
  59. NewUserGame.setWhitePlayer(player);
  60. player.addGame(NewUserGame.getGameID(), NewUserGame);
  61. SetGameAsPending(NewUserGame);
  62. return NewUserGame.getGameID();
  63. }
  64.  
  65. public synchronized Game joinGame(User player) {
  66. Game temp = PendingGame;
  67. PendingGame = null;
  68. temp.setBlackPlayer(player);
  69. player.addGame(temp.getGameID(), temp);
  70. return temp;
  71. }
  72.  
  73. public synchronized Game createGame(User player) {
  74. Game GameToBeCreated = new Game();
  75. GameToBeCreated.setGameID(GameCounter);
  76. GameToBeCreated.getBoard().FEN_String = "";
  77. games.put(GameToBeCreated.id, GameToBeCreated);
  78. player.getGameList().add(GameToBeCreated.getGameID(), GameToBeCreated);
  79. GameCounter++;
  80.  
  81. return GameToBeCreated;
  82. }
  83. //TODO: Not complete yet. (Irgendwas mit Referenzen, was genau wird sich zeigen.)
  84. public synchronized boolean deleteGame(Game game) {
  85. if (game.isFinished()) {
  86. game.getWhitePlayer().
  87. game.getBlackPlayer()
  88. games.remove(game.getGameID());
  89. GameCounter--;
  90. return true;
  91. }
  92. return false;
  93.  
  94. }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement