Exemple #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) {
    }
  }
Exemple #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();
    }
  }
Exemple #3
0
 /**
  * Handles a new move made by player userName on position xy
  *
  * @param userName
  * @param x
  * @param y
  */
 public synchronized void NewMove(String userName, int x, int y) {
   if (userName.equals(player1.getUserName())) {
     if (currentPlayer) {
       System.out.println("preGameCheck");
       gameCheck(player1, player2, x, y, (short) 1);
     } else {
       player1.sendIllegalMove();
     }
   } else if (userName.equals(player2.getUserName())) {
     if (!currentPlayer) {
       gameCheck(player2, player1, x, y, (short) 2);
     } else {
       player2.sendIllegalMove();
     }
   } else System.out.println("oh gawd");
 }
Exemple #4
0
  /**
   * Initilizes the game
   *
   * @param player1
   * @param player2
   * @param timeLimit
   */
  public Game(PlayerConnection player1, PlayerConnection player2, int timeLimit) {
    this.player1 = player1;
    this.player2 = player2;
    this.timeLimit = timeLimit;
    gameEnd = false;

    gameField = new short[15][15]; // Creates the gameField

    // Fills all the cells in gameField to the value of 0.
    for (int a = 0; a < 15; a++) for (int b = 0; b < 15; b++) gameField[a][b] = 0;

    dbHandler = DBHandler.getDatabase(); // Gets a reference to the database

    if (timeLimit > 0) {
      timeLeftP1 = timeLimit * 60;
      timeLeftP2 = timeLeftP1;
      this.start();
    }

    player1.setCurrentGame(this);
    player2.setCurrentGame(this);

    // Choose the random player to start the game
    Random rnd = new Random();
    int temp = rnd.nextInt(9);
    if (temp % 2 == 0) currentPlayer = true;
    else currentPlayer = false;

    // Calls the GameStarted method for every player.
    player1.GameStarted(currentPlayer, player2.getUserName(), timeLimit);
    player2.GameStarted(!currentPlayer, player1.getUserName(), timeLimit);
  }
  public void b() {
    for (int i = 0; i < this.c.size(); ++i) {
      PlayerConnection playerconnection = (PlayerConnection) this.c.get(i);

      try {
        playerconnection.e();
      } catch (Exception exception) {
        if (playerconnection.networkManager instanceof MemoryNetworkManager) {
          CrashReport crashreport =
              CrashReport.a((Throwable) exception, "Ticking memory connection");
          CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Ticking connection");

          crashreportsystemdetails.a(
              "Connection", (Callable) (new CallableConnection(this, playerconnection)));
          throw new ReportedException(crashreport);
        }

        this.b
            .getLogger()
            .warning(
                "Failed to handle packet for "
                    + playerconnection.player.getLocalizedName()
                    + "/"
                    + playerconnection.player.q()
                    + ": "
                    + exception,
                (Throwable) exception);
        playerconnection.disconnect("Internal server error");
      }

      if (playerconnection.disconnected) {
        this.c.remove(i--);
      }

      playerconnection.networkManager.a();
    }
  }
Exemple #6
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;
  }
 public static boolean validatePlayerForConnection(int characterID, PlayerConnection pc) {
   if (pc.getCharacterID() == characterID) {
     return true;
   }
   return false;
 }