always choose white for the strongest player with handicap
This commit is contained in:
@@ -187,13 +187,19 @@ sealed class BaseSolver(
|
|||||||
// This cost is never applied if potential Handicap != 0
|
// This cost is never applied if potential Handicap != 0
|
||||||
// It is fully applied if wbBalance(sP1) and wbBalance(sP2) are strictly of different signs
|
// It is fully applied if wbBalance(sP1) and wbBalance(sP2) are strictly of different signs
|
||||||
// It is half applied if one of wbBalance is 0 and the other is >=2
|
// It is half applied if one of wbBalance is 0 and the other is >=2
|
||||||
val potentialHd: Int = pairing.handicap.handicap(p1, p2)
|
val hd1 = pairing.handicap.handicap(p1, p2)
|
||||||
|
val hd2 = pairing.handicap.handicap(p2, p1)
|
||||||
|
val potentialHd: Int = max(hd1, hd2)
|
||||||
val score = if (potentialHd == 0) {
|
val score = if (potentialHd == 0) {
|
||||||
val wb1: Int = p1.colorBalance
|
val wb1: Int = p1.colorBalance
|
||||||
val wb2: Int = p2.colorBalance
|
val wb2: Int = p2.colorBalance
|
||||||
if (wb1 * wb2 < 0) colorBalanceWeight
|
if (wb1 * wb2 < 0) colorBalanceWeight
|
||||||
else if (wb1 == 0 && abs(wb2) >= 2 || wb2 == 0 && abs(wb1) >= 2) colorBalanceWeight / 2 else 0.0
|
else if (wb1 == 0 && abs(wb2) >= 2 || wb2 == 0 && abs(wb1) >= 2) colorBalanceWeight / 2 else 0.0
|
||||||
} else 0.0
|
} else {
|
||||||
|
// apply a *big* score to let the stronger player have white
|
||||||
|
if (hd2 == 0) colorBalanceWeight * 10
|
||||||
|
else 0.0
|
||||||
|
}
|
||||||
return score
|
return score
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user