Beispiel #1
0
  /** Keps track of the player times; */
  public void run() {
    try {
      while (!gameEnd) {
        Thread.sleep(1000);
        if (gameEnd) break;

        if (currentPlayer) {
          timeLeftP1--;
          if (timeLeftP1 <= 0) {
            player1.sendGameEnd(false);
            player2.sendGameEnd(true);
            dbHandler.saveGame(player2.getUserName(), player1.getUserName(), timeLimit);
            gameEnd = true;
            break;
          }
        } else {
          timeLeftP2--;
          if (timeLeftP2 <= 0) {
            player2.sendGameEnd(false);
            player1.sendGameEnd(true);
            dbHandler.saveGame(player1.getUserName(), player2.getUserName(), timeLimit);
            gameEnd = true;
            break;
          }
        }

        player1.sendTimeUpdate(timeLeftP1, timeLeftP2);
        player2.sendTimeUpdate(timeLeftP2, timeLeftP1);
      }
    } catch (InterruptedException e) {
    }
  }
Beispiel #2
0
  /**
   * Checks and handle victory and filled board
   *
   * @param activePlayer
   * @param inactivePlayer
   * @param x
   * @param y
   * @param symbol
   */
  private void gameCheck(
      PlayerConnection activePlayer, PlayerConnection inactivePlayer, int x, int y, short symbol) {
    if (gameField[x][y] == 0) {
      gameField[x][y] = symbol;

      if (this.VictoryCheck()) {
        activePlayer.sendGameEnd(true);
        inactivePlayer.sendGameEnd(false);
        dbHandler.saveGame(activePlayer.getUserName(), inactivePlayer.getUserName(), timeLimit);
        gameEnd = true;

      } else if (this.checkBoardFull()) {
        activePlayer.sendGameEnd(false);
        inactivePlayer.sendGameEnd(true);
        dbHandler.saveGame(inactivePlayer.getUserName(), activePlayer.getUserName(), timeLimit);
        gameEnd = true;
      } else {
        inactivePlayer.sendYourTurn(x, y);
      }

      currentPlayer = !currentPlayer;
    } else {
      activePlayer.sendIllegalMove();
    }
  }
Beispiel #3
0
  /**
   * Handles the case when a player disconects
   *
   * @param disconectedPlayer
   */
  public void disconnect(PlayerConnection disconectedPlayer) {
    if (disconectedPlayer == player1) {
      player2.sendGameEnd(true);
      dbHandler.saveGame(player2.getUserName(), player1.getUserName(), timeLimit);
    } else if (disconectedPlayer == player2) {
      player1.sendGameEnd(true);
      dbHandler.saveGame(player1.getUserName(), player2.getUserName(), timeLimit);
    }

    gameEnd = true;
  }