public void addPairing(TournamentPairing match) { this.allPlayers.add(match.getPlayer1()); this.allPlayers.add(match.getPlayer2()); }
public boolean isRoundOver() { boolean roundIsOver = true; for (TournamentPairing pair: pairs) { if (pair.getMatch() != null) { if (!pair.getMatch().hasEnded()) { roundIsOver = false; } else { if (!pair.isAlreadyPublished()) { tournament.updateResults(); pair.setAlreadyPublished(true); if (tournament instanceof TournamentSingleElimination) { pair.eliminatePlayers(); } // if it's the last round, finish all players for the tournament if their match is finished if (getRoundNumber() == tournament.getNumberRounds()) { pair.finishPlayersThatPlayedLastRound(); } } } } } return roundIsOver; }
public RoundPairings getRoundPairings() { // return round pairings with minimal weight List<TournamentPairing> pairings = new ArrayList<>(); List<TournamentPlayer> playerByes = new ArrayList<>(); Map<Integer, TournamentPlayer> map = new HashMap<>(); for (PlayerInfo player : swissPlayers) { map.put(player.id, player.tournamentPlayer); } if (n > playersCount) { // last vertex -- bye playerByes.add(map.get(result[n - 1])); result[result[n - 1]] = -1; result[n - 1] = -1; } for (int i = 0; i < playersCount; i++) { if (result[i] >= 0) { pairings.add(new TournamentPairing(map.get(i), map.get(result[i]))); result[result[i]] = -1; result[i] = -1; } } return new RoundPairings(pairings, playerByes); }
Match match = pair.getMatch(); if (match != null && match.hasEnded()) { TournamentPlayer tp1 = pair.getPlayer1(); TournamentPlayer tp2 = pair.getPlayer2(); MatchPlayer mp1 = match.getPlayer(pair.getPlayer1().getPlayer().getId()); MatchPlayer mp2 = match.getPlayer(pair.getPlayer2().getPlayer().getId());
TournamentGameView(int roundNum, TournamentPairing pair, Game game) { this.roundNum = roundNum; this.matchId = pair.getMatch().getId(); this.gameId = game.getId(); this.players = pair.getPlayer1().getPlayer().getName() + " - " + pair.getPlayer2().getPlayer().getName(); String duelingTime = ""; if (game.hasEnded()) { if (game.getEndTime() != null && game.getStartTime() != null) { duelingTime = " (" + DateFormat.getDuration((game.getEndTime().getTime() - game.getStartTime().getTime())/1000) + ')'; } this.state = "Finished" + duelingTime; this.result = game.getWinner(); } else { if (game.getStartTime() != null) { duelingTime = " (" + DateFormat.getDuration((new Date().getTime() - game.getStartTime().getTime())/1000) + ')'; } this.state = "Dueling" + duelingTime; this.result = ""; } this.tableId = pair.getTableId(); }
table.setTournament(tournament); table.setState(TableState.WAITING); TournamentPlayer player1 = pair.getPlayer1(); TournamentPlayer player2 = pair.getPlayer2(); UUID user1Uuid = null; UUID user2Uuid = null; tableManager.getMatch(table.getId()).ifPresent(match -> { match.setTableId(tableId); pair.setMatch(match); pair.setTableId(table.getId()); player1.setState(TournamentPlayerState.DUELING); player2.setState(TournamentPlayerState.DUELING);
private static String addRoundResult(int round, TournamentPairing pair, TournamentPlayer tournamentPlayer, TournamentPlayer opponentPlayer) { StringBuilder playerResult = new StringBuilder(tournamentPlayer.getResults()); playerResult.append('R').append(round).append(' '); playerResult.append(getMatchResultString(tournamentPlayer, opponentPlayer, pair.getMatch())); return playerResult.toString(); }
public TournamentPairing getPairing(UUID pairId) { for (TournamentPairing pair: pairs) { if (pair.getId().equals(pairId)) { return pair; } } return null; }
private void eliminatePlayers(Round round) { for (TournamentPairing pair: round.getPairs()) { pair.eliminatePlayers(); } }
.setRound(round.getRoundNumber()); for (TournamentPairing pair : round.getPairs()) { Match match = pair.getMatch(); if (match != null && match.hasEnded()) { MatchProto.Builder matchBuilder = roundBuilder.addMatchesBuilder() .setGames(match.getNumGames()) .setDraws(match.getDraws()) .addPlayers(matchToProto(match, pair.getPlayer1())) .addPlayers(matchToProto(match, pair.getPlayer2())) .setMatchOptions(match.getOptions().toProto()) .setEndTimeMs((match.getEndTime() != null ? match.getEndTime() : new Date()).getTime());
public RoundView(Round round) { try { for (TournamentPairing pair : round.getPairs()) { // get info of finished games from match if (pair.getMatch() != null) { for (GameInfo gameInfo : pair.getMatch().getGamesInfo()) { games.add(new TournamentGameView(round.getRoundNumber(), gameInfo.getMatchId(), gameInfo.getGameId(), gameInfo.getState(), gameInfo.getResult(), gameInfo.getPlayers(), gameInfo.getTableId())); } if (!pair.getMatch().hasEnded()) { int numberSavedGames = pair.getMatch().getGamesInfo().size(); if (pair.getMatch() != null) { int gameCount = 0; for (Game game : pair.getMatch().getGames()) { gameCount++; if (gameCount > numberSavedGames) { // only unfinished game info directly from game games.add(new TournamentGameView(round.getRoundNumber(), pair, game)); } } } } } } } catch (Exception ex) { ex.printStackTrace(); } }
private boolean alreadyPaired(List<Round> rounds, TournamentPlayer player1, TournamentPlayer player2) { for (Round round : rounds) { for (TournamentPairing pairing : round.getPairs()) { if (pairing.getPlayer1().equals(player1) || pairing.getPlayer2().equals(player1)) { if (pairing.getPlayer1().equals(player2) || pairing.getPlayer2().equals(player2)) { return true; } } } } return false; } }
if (player2.getPoints() < player1.getPoints() && playerForPossibleSecondPairing != null) { pairings.add(new TournamentPairing(player1, playerForPossibleSecondPairing)); players.remove(playerForPossibleSecondPairing); player1 = null; } else { pairings.add(new TournamentPairing(player1, player2)); players.remove(player2); player1 = null; pairings.add(new TournamentPairing(player1, playerForPossibleSecondPairing)); players.remove(playerForPossibleSecondPairing); } else {
public void playMatch(TournamentPairing pair) { options.getMatchOptions().getPlayerTypes().clear(); options.getMatchOptions().getPlayerTypes().add(pair.getPlayer1().getPlayerType()); options.getMatchOptions().getPlayerTypes().add(pair.getPlayer2().getPlayerType()); tableEventSource.fireTableEvent(EventType.START_MATCH, pair, options.getMatchOptions()); }
protected Round createRoundRandom() { Round round = new Round(rounds.size() + 1, this); rounds.add(round); List<TournamentPlayer> roundPlayers = getActivePlayers(); // search the player with a bye last round List<TournamentPlayer> playerWithByes = getTournamentPlayersWithBye(roundPlayers); while (roundPlayers.size() > 1) { TournamentPlayer player1 = getNextAvailablePlayer(roundPlayers, playerWithByes); TournamentPlayer player2 = getNextAvailablePlayer(roundPlayers, playerWithByes); round.addPairing(new TournamentPairing(player1, player2)); } if (!roundPlayers.isEmpty()) { // player free round - add to bye players of this round TournamentPlayer player1 = roundPlayers.get(0); round.getPlayerByes().add(player1); player1.setState(TournamentPlayerState.WAITING); player1.setStateInfo("Round Bye"); updateResults(); } return round; }
TournamentPlayer player1 = pairing.getPlayer1(); TournamentPlayer player2 = pairing.getPlayer2(); for (Round round : rounds) { for (TournamentPairing pairing : round.getPairs()) { TournamentPlayer player1 = pairing.getPlayer1(); TournamentPlayer player2 = pairing.getPlayer2();