@@ -41,11 +41,12 @@ export class PageResultsComponent implements OnInit {
41
41
const scorePositions : { [ score : number ] : { from : number , to : number } } = { } ;
42
42
43
43
users . forEach ( ( u ) => {
44
- if ( ! ( u . score in scoresCount ) ) {
45
- scores . push ( u . score ) ;
46
- scoresCount [ u . score ] = 0 ;
44
+ const key = PageResultsComponent . getScoreKey ( u ) ;
45
+ if ( ! ( key in scoresCount ) ) {
46
+ scores . push ( key ) ;
47
+ scoresCount [ key ] = 0 ;
47
48
}
48
- scoresCount [ u . score ] = scoresCount [ u . score ] + 1 ;
49
+ scoresCount [ key ] = scoresCount [ key ] + 1 ;
49
50
} ) ;
50
51
51
52
let previousEndingPos = 1 ;
@@ -57,14 +58,21 @@ export class PageResultsComponent implements OnInit {
57
58
previousEndingPos = scorePositions [ score ] . to + 1 ;
58
59
}
59
60
60
- return users . map ( ( user ) => ( {
61
- ...user ,
62
- position :
63
- scorePositions [ user . score ] . from === scorePositions [ user . score ] . to ?
64
- `${ scorePositions [ user . score ] . from } .`
65
- : `${ scorePositions [ user . score ] . from } .-${ scorePositions [ user . score ] . to } .` ,
66
- } ) ) . sort ( ( a , b ) => b . score - a . score ) ;
61
+ return users . map ( ( user ) => {
62
+ const key = PageResultsComponent . getScoreKey ( user ) ;
63
+ return {
64
+ ...user ,
65
+ position :
66
+ scorePositions [ key ] . from === scorePositions [ key ] . to ?
67
+ `${ scorePositions [ key ] . from } .`
68
+ : `${ scorePositions [ key ] . from } .-${ scorePositions [ key ] . to } .` ,
69
+ } ;
70
+ } ) . sort ( ( a , b ) => PageResultsComponent . getScoreKey ( b ) - PageResultsComponent . getScoreKey ( a ) ) ;
67
71
} )
68
72
) ;
69
73
}
74
+
75
+ private static getScoreKey ( user : User ) : number {
76
+ return ! user . cheat ? user . score : - 1000 ;
77
+ }
70
78
}
0 commit comments