Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.tuberlin.pes.swtpp.chess.control;
- import java.util.HashMap;
- import de.tuberlin.pes.swtpp.chess.model.User;
- import de.tuberlin.pes.swtpp.chess.model.Bot;
- import de.tuberlin.pes.swtpp.chess.model.Game;
- public class GameController {
- //MoveCounter in Game.java
- private Game PendingGame;
- private Bot Ernie;
- private int GameCounter;
- private static GameController instance = null;
- private HashMap<Integer, Game> games;
- public GameController() {
- this.games = new HashMap<Integer, Game>();
- this.GameCounter = 0;
- this.PendingGame = null;
- this.Ernie = new Bot();
- }
- public static synchronized GameController getInstance() {
- if (instance == null) instance = new GameController();
- return instance;
- }
- public boolean checkGameExists(int id) {
- return games.containsKey(id);
- }
- public Game findGameByID(int id) {
- if (games.containsKey(id)) return games.get(id);
- return null;
- }
- public boolean CheckForPendingGame() {
- if (this.PendingGame == null) return false;
- return true;
- }
- public void SetGameAsPending(Game temp) {
- this.PendingGame = temp;
- }
- public synchronized int startBotGame(User player) {
- Game BotGame = createGame(player);
- BotGame.setWhitePlayer(player);
- BotGame.setBlackPlayer(Ernie);
- return BotGame.getGameID();
- }
- public synchronized int startUserGame(User player) {
- if (CheckForPendingGame()) {
- Game GameToBeStarted = joinGame(player);
- return GameToBeStarted.getGameID();
- }
- Game NewUserGame = createGame(player);
- NewUserGame.setWhitePlayer(player);
- player.addGame(NewUserGame.getGameID(), NewUserGame);
- SetGameAsPending(NewUserGame);
- return NewUserGame.getGameID();
- }
- public synchronized Game joinGame(User player) {
- Game temp = PendingGame;
- PendingGame = null;
- temp.setBlackPlayer(player);
- player.addGame(temp.getGameID(), temp);
- return temp;
- }
- public synchronized Game createGame(User player) {
- Game GameToBeCreated = new Game();
- GameToBeCreated.setGameID(GameCounter);
- GameToBeCreated.getBoard().FEN_String = "";
- games.put(GameToBeCreated.id, GameToBeCreated);
- player.getGameList().add(GameToBeCreated.getGameID(), GameToBeCreated);
- GameCounter++;
- return GameToBeCreated;
- }
- //TODO: Not complete yet. (Irgendwas mit Referenzen, was genau wird sich zeigen.)
- public synchronized boolean deleteGame(Game game) {
- if (game.isFinished()) {
- game.getWhitePlayer().
- game.getBlackPlayer()
- games.remove(game.getGameID());
- GameCounter--;
- return true;
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement