Line data Source code
1 : /// 동점자 처리 옵션 열거형
2 : enum TieBreakerOption {
3 : /// 핸디캡을 적게 받은 사람이 우선(마이너스 포함)
4 : lowerHandicap,
5 :
6 : /// 같은 이벤트 내 게임 중 하이 점수와 로우 점수의 격차가 적은 사람이 우선
7 : lowerScoreGap,
8 :
9 : /// 연장자 우선
10 : olderAge,
11 :
12 : /// 기본값: 동점자 처리 없음 (동일 순위 표시)
13 : none;
14 :
15 : /// 열거형 값을 문자열로 변환
16 0 : String toDisplayString() {
17 : switch (this) {
18 0 : case TieBreakerOption.lowerHandicap:
19 : return '핸디캡이 적은 사람 우선';
20 0 : case TieBreakerOption.lowerScoreGap:
21 : return '점수 격차가 적은 사람 우선';
22 0 : case TieBreakerOption.olderAge:
23 : return '연장자 우선';
24 0 : case TieBreakerOption.none:
25 : return '동점자 처리 없음';
26 : }
27 : }
28 :
29 : /// 문자열에서 열거형 값으로 변환
30 0 : static TieBreakerOption fromString(String? value) {
31 : if (value == null) return TieBreakerOption.none;
32 :
33 : switch (value) {
34 0 : case 'lowerHandicap':
35 : return TieBreakerOption.lowerHandicap;
36 0 : case 'lowerScoreGap':
37 : return TieBreakerOption.lowerScoreGap;
38 0 : case 'olderAge':
39 : return TieBreakerOption.olderAge;
40 : default:
41 : return TieBreakerOption.none;
42 : }
43 : }
44 : }
|