![JAR search and dependency download from the Maven repository](/logo.png)
com.github.wakingrufus.elo.PlayerUtil.kt Maven / Gradle / Ivy
package com.github.wakingrufus.elo
fun calculateTeamRating(players: Collection): Int {
return players.sumBy { it.currentRating }.div(players.size)
}
fun calculateTeamGamesPlayed(players: Collection): Int {
return players.sumBy { it.gamesPlayed }.div(players.size)
}
fun buildTeam(allPlayers: Map, teamIds: List): Collection {
if(teamIds.any { !allPlayers.containsKey(it) }) {
throw RuntimeException("playerId list contains ids which no player has")
}
return allPlayers.filterKeys { teamIds.contains(it) }.values
}
fun addNewPlayers(existingPlayers: Map, game: Game, startingRating: Int): Map {
var newPlayerMap = existingPlayers
val allPlayerIds = game.team1PlayerIds + game.team2PlayerIds
allPlayerIds.forEach { playerId ->
if (!newPlayerMap.containsKey(playerId)) {
newPlayerMap += Pair(playerId, Player(
id = playerId,
currentRating = startingRating
))
}
}
return newPlayerMap
}
fun updatePlayer(player: Player, ratingAdjustment: Int, games: Int, wins: Int, losses: Int): Player {
return player.copy(
currentRating = player.currentRating + ratingAdjustment,
gamesPlayed = player.gamesPlayed + games,
wins = player.wins + wins,
losses = player.losses + losses)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy