Working on gshirt scoring
This commit is contained in:
parent
7a951320a6
commit
1c0dceb278
1 changed files with 52 additions and 18 deletions
|
|
@ -384,7 +384,7 @@ class Tipp extends Model
|
||||||
}
|
}
|
||||||
usort($userRankings, array('App\Tipp','cmpRank'));
|
usort($userRankings, array('App\Tipp','cmpRank'));
|
||||||
|
|
||||||
// Ranknr identifizieren, inkl, geteilter Rankplatzierungen nur für max_round_id notwendig, da der Rest ja gar nicht angezeigt wird
|
// Ranknr identifizieren, inkl, geteilter Rankplatzierungen
|
||||||
$lastScore=-1;
|
$lastScore=-1;
|
||||||
$lastrank=0;
|
$lastrank=0;
|
||||||
$current_list_position=0;
|
$current_list_position=0;
|
||||||
|
|
@ -392,14 +392,16 @@ class Tipp extends Model
|
||||||
$user_id=$userRank[0];
|
$user_id=$userRank[0];
|
||||||
$totalRankScore=$userRank[1];
|
$totalRankScore=$userRank[1];
|
||||||
|
|
||||||
$key=$max_round_id."_".$user_id;
|
foreach($round_ids as $round_id) {
|
||||||
$current_list_position+=1;
|
$key = $round_id . "_" . $user_id;
|
||||||
if ($roundtipps[$key]["totalRankScore"]==$lastScore) {
|
$current_list_position += 1;
|
||||||
$roundtipps[$key]["rank"] = $lastrank;
|
if ($roundtipps[$key]["totalRankScore"] == $lastScore) {
|
||||||
} else {
|
$roundtipps[$key]["rank"] = $lastrank;
|
||||||
$lastrank = $current_list_position;
|
} else {
|
||||||
$roundtipps[$key]["rank"] = $current_list_position;
|
$lastrank = $current_list_position;
|
||||||
$lastScore = $totalRankScore;
|
$roundtipps[$key]["rank"] = $current_list_position;
|
||||||
|
$lastScore = $totalRankScore;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -415,23 +417,55 @@ class Tipp extends Model
|
||||||
// c.) Determine ranks 1-5 and number of points to distribute
|
// c.) Determine ranks 1-5 and number of points to distribute
|
||||||
// d.) Mark Rank1 as is_gshirt_owner
|
// d.) Mark Rank1 as is_gshirt_owner
|
||||||
// e.) Distribute points, set roundtipps[$key]['gshirt_score'], every other to zero
|
// e.) Distribute points, set roundtipps[$key]['gshirt_score'], every other to zero
|
||||||
|
// (B) SET GSCORE_TOTAL EVERY ROUND
|
||||||
// (B) SET TOTAL GSCORE EVERY ROUND
|
|
||||||
// 2.) Loop over roundtipps and: a.) add gshirt_score to gshirt_score_total --OR-- zero gshirt_score_total if foulCount==3
|
// 2.) Loop over roundtipps and: a.) add gshirt_score to gshirt_score_total --OR-- zero gshirt_score_total if foulCount==3
|
||||||
|
|
||||||
/*
|
|
||||||
* foreach($round_ids as $round_id) {
|
|
||||||
$users=array();
|
|
||||||
$gShirtScoreTotal=0;
|
|
||||||
foreach($user_ids as $user_id) {
|
|
||||||
|
|
||||||
// add gshirt_score to $roundtipps[$key]
|
// A) SET GSCORE EVERY ROUND
|
||||||
|
foreach($round_ids as $round_id) {
|
||||||
|
// A-1 fill members with numbers of users per rank
|
||||||
|
$members=array();
|
||||||
|
foreach($user_ids as $user_id) {
|
||||||
|
$key=$round_id."_".$user_id;
|
||||||
|
|
||||||
|
$rank=$roundtipps[$key]["rank"];
|
||||||
|
if(!array_key_exists($rank, $members)) {
|
||||||
|
$members[$rank]=0;
|
||||||
|
}
|
||||||
|
$members[$rank]+=1;
|
||||||
|
}
|
||||||
|
// A-2 compute gain
|
||||||
|
$scoreGain=[0,10,5,3,2,1]; // Rank 0 existiert nicht
|
||||||
|
|
||||||
|
// Move gain out of empty ranks into the upper ones.
|
||||||
|
foreach ([5,4,3,2,1] as $rank) {
|
||||||
|
if (!array_key_exists($rank,$members)) {
|
||||||
|
$scoreGain[$rank-1]+= $scoreGain[$rank];
|
||||||
|
$scoreGain[$rank]=0; // Shouldnt be needed, but makes movement of gain explicit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Distribute gain
|
||||||
|
foreach($user_ids as $user_id) {
|
||||||
|
$key = $round_id . "_" . $user_id;
|
||||||
|
$rank= $roundtipps[$key]["rank"];
|
||||||
|
if ($rank<=5) {
|
||||||
|
$roundtipps[$key]["gshirt_score"] = $scoreGain[$rank] / $members[$rank];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// B) SET GSCORE TOTAL EVERY ROUND ( and take fouls into consideration )
|
||||||
|
|
||||||
|
foreach ($round_ids as $round_id) {
|
||||||
|
foreach($user_ids as $user_id) {
|
||||||
|
$key = $round_id . "_" . $user_id;
|
||||||
|
$roundtipps[$key]['gshirt_totalscore']=0;
|
||||||
|
$roundtipps[$key]['gshirt_foulcount']=0;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////
|
//////////////////////////////
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue