From 0f125d4de5d29532e79283b3e7d51822a36e1079 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Wed, 5 Jul 2023 14:22:28 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=94=B1=E4=BA=8E=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E4=B8=8D=E5=90=88=E7=90=86=EF=BC=8C=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E6=8E=92=E8=A1=8C=E6=A6=9C=E4=B8=AD=E7=9A=84=20CompetitorIncre?= =?UTF-8?q?ase=20=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/builtin/ranking_list.go | 20 +++++++++++--------- game/ranking_list.go | 3 --- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/game/builtin/ranking_list.go b/game/builtin/ranking_list.go index 0efc218..80139c3 100644 --- a/game/builtin/ranking_list.go +++ b/game/builtin/ranking_list.go @@ -34,6 +34,8 @@ type scoreItem[CompetitorID comparable, Score generic.Ordered] struct { Score Score `json:"score,omitempty"` } +// Competitor 声明排行榜竞争者 +// - 如果竞争者存在的情况下,会更新已有成绩,否则新增竞争者 func (slf *RankingList[CompetitorID, Score]) Competitor(competitorId CompetitorID, score Score) { v, exist := slf.competitors.GetExist(competitorId) if exist { @@ -62,15 +64,7 @@ func (slf *RankingList[CompetitorID, Score]) Competitor(competitorId CompetitorI } } -func (slf *RankingList[CompetitorID, Score]) CompetitorIncrease(competitorId CompetitorID, score Score) { - oldScore, err := slf.GetScore(competitorId) - if err != nil { - slf.Competitor(competitorId, score) - } else { - slf.Competitor(competitorId, oldScore+score) - } -} - +// RemoveCompetitor 删除特定竞争者 func (slf *RankingList[CompetitorID, Score]) RemoveCompetitor(competitorId CompetitorID) { if !slf.competitors.Exist(competitorId) { return @@ -87,10 +81,12 @@ func (slf *RankingList[CompetitorID, Score]) RemoveCompetitor(competitorId Compe } +// Size 获取竞争者数量 func (slf *RankingList[CompetitorID, Score]) Size() int { return slf.competitors.Size() } +// GetRank 获取竞争者排名 func (slf *RankingList[CompetitorID, Score]) GetRank(competitorId CompetitorID) (int, error) { competitorScore, exist := slf.competitors.GetExist(competitorId) if !exist { @@ -126,6 +122,7 @@ func (slf *RankingList[CompetitorID, Score]) GetRank(competitorId CompetitorID) return 0, ErrRankingListIndexErr } +// GetCompetitor 获取特定排名的竞争者 func (slf *RankingList[CompetitorID, Score]) GetCompetitor(rank int) (competitorId CompetitorID, err error) { if rank < 0 || rank >= len(slf.scores) { return competitorId, ErrRankingListNonexistentRanking @@ -133,6 +130,7 @@ func (slf *RankingList[CompetitorID, Score]) GetCompetitor(rank int) (competitor return slf.scores[rank].CompetitorId, nil } +// GetCompetitorWithRange 获取第start名到第end名竞争者 func (slf *RankingList[CompetitorID, Score]) GetCompetitorWithRange(start, end int) ([]CompetitorID, error) { if start < 1 || end < start { return nil, ErrRankingListNonexistentRanking @@ -151,6 +149,7 @@ func (slf *RankingList[CompetitorID, Score]) GetCompetitorWithRange(start, end i return ids, nil } +// GetScore 获取竞争者成绩 func (slf *RankingList[CompetitorID, Score]) GetScore(competitorId CompetitorID) (score Score, err error) { data, ok := slf.competitors.GetExist(competitorId) if !ok { @@ -159,6 +158,8 @@ func (slf *RankingList[CompetitorID, Score]) GetScore(competitorId CompetitorID) return data, nil } +// GetAllCompetitor 获取所有竞争者ID +// - 结果为名次有序的 func (slf *RankingList[CompetitorID, Score]) GetAllCompetitor() []CompetitorID { var result []CompetitorID for _, data := range slf.scores { @@ -167,6 +168,7 @@ func (slf *RankingList[CompetitorID, Score]) GetAllCompetitor() []CompetitorID { return result } +// Clear 清空排行榜 func (slf *RankingList[CompetitorID, Score]) Clear() { slf.OnRankClearBeforeEvent() slf.competitors.Clear() diff --git a/game/ranking_list.go b/game/ranking_list.go index 35bada5..a74f145 100644 --- a/game/ranking_list.go +++ b/game/ranking_list.go @@ -7,9 +7,6 @@ type RankingList[CompetitorID comparable, Score generic.Ordered] interface { // Competitor 声明排行榜竞争者 // - 如果竞争者存在的情况下,会更新已有成绩,否则新增竞争者 Competitor(competitorId CompetitorID, score Score) - // CompetitorIncrease 积分增量的形式竞争排行榜 - // - 如果竞争者存在的情况下,会更新已有成绩为增加score后的成绩,否则新增竞争者 - CompetitorIncrease(competitorId CompetitorID, score Score) // RemoveCompetitor 删除特定竞争者 RemoveCompetitor(competitorId CompetitorID) // Size 获取竞争者数量