我正在编写一个函数来计算高尔夫比赛的球员得分(不是标准的高尔夫比赛,而是自定义比赛)。
这在实际比分、洞的让分和球员的让分中都有体现。
例如:如果球员打出 6,而该球员的差点为 6,而该洞的差点为 4,则该球员将在该洞得到 5 分。原因如下:
如果球员的让分小于或等于该洞的让分,他们会从他们的实际得分中获得 -1 分。在一个 18 洞的高尔夫球场上,球洞的差点从 1 到 18 不等。因此,如果球员的差点为 18,他们将从每个洞的得分中获得 -1 分。所以只要球员的差点在18或更少,这对我来说很容易弄清楚。我遇到的问题是如果球员的让分超过 18 岁如何计算。球员的让分可能在 1 到 99 之间。
因此,如果球员的差点为 21,他们将在所有 18 个洞中获得 -1 分。然后在让分分别为 1、2 和 3 的洞上,他们也会在这些洞上获得额外的 -1 分。因此,如果球员的差点为 36,他们将在所有洞中获得 -2 分。
这是我到目前为止的功能:
function handicapCalc($hole,$player,$score){
if($player <= 18){
if($hole <= $player){
$finalScore=$score-1;
}else{
$finalScore=$score;
}
}else{
//FIGURE SCORE IF HANDICAP IS LARGER THEN 18
}
return $finalScore;
}
$hole 是该洞让分的变量,$player 是球员的让分 & $score 是球员的得分。
我需要计算出允许超过 18 岁的差点。
感谢您提供的任何帮助。
编辑[已解决]
function handicapCalc($holeHandicap,$playerHandicap,$holes,$score){
$perHoleHandicap=floor($playerHandicap/$holes);
$leftOvers=$playerHandicap % $holes;
if($perHoleHandicap >= 1){
$firstScore=$score-$perHoleHandicap;
if($leftOvers >= $holeHandicap){
$finalScore=$firstScore-1;
}else{
$finalScore=$firstScore;
}
}else{
if($perHoleHandicap >= $holeHandicap){
$finalScore=$score-1;
}else{
$finalScore=$score;
}
}
return $finalScore;
}