diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/model/Game.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/model/Game.kt index af4bd8c..23ca869 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/model/Game.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/model/Game.kt @@ -26,6 +26,11 @@ data class Game( fun fromSymbol(c: Char) = byChar[c] ?: throw Error("unknown result symbol: $c") } } + // pairing needs to know if there has been a draw-up or a draw-down + internal var blackDrawnUp = false + internal var blackDrawnDown = false + internal var whiteDrawnUp = false + internal var whiteDrawnDown = false } // serialization diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/model/Pairable.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/model/Pairable.kt index 3a97b72..b1dd157 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/model/Pairable.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/model/Pairable.kt @@ -28,13 +28,9 @@ object ByePlayer: Pairable(0, "bye", 0, Int.MIN_VALUE) { override val country = "none" } -fun Pairable.displayRank(): String = when { - rank < 0 -> "${-rank}k" - rank < 10 -> "${rank + 1}d" - else -> "${rank - 9}p" -} +fun Pairable.displayRank() = if (rank < 0) "${-rank}k" else "${rank + 1}d" -private val rankRegex = Regex("(\\d+)([kdp])", RegexOption.IGNORE_CASE) +private val rankRegex = Regex("(\\d+)([kd])", RegexOption.IGNORE_CASE) fun Pairable.Companion.parseRank(rankStr: String): Int { val (level, letter) = rankRegex.matchEntire(rankStr)?.destructured ?: throw Error("invalid rank: $rankStr") @@ -43,7 +39,6 @@ fun Pairable.Companion.parseRank(rankStr: String): Int { return when (letter.lowercase()) { "k" -> -num "d" -> num - 1 - "p" -> num + 9 else -> throw Error("impossible") } }