2025-11-11 14:30:29 +08:00

78 lines
2.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Drawing;
using System.Runtime.CompilerServices;
using System.Text;
using Wpf_AiSportsMicrospace.MyUserControl;
using Yztob.AiSports.Postures.Sports;
namespace Dto
{
public class GroupJumpRopeContext
{
// 静态字段,保存排名列表
public static List<RankItem> RankList { get; set; } = new List<RankItem>();
public List<(double XNorm, double YNorm)> CirclePositions { get; set; } = new List<(double XNorm, double YNorm)>();
public List<SportUserItem> UserList { get; private set; }
public List<string> UserNumberList { get; private set; }
public List<SportBase> Sports { get; private set; }
public List<string> UseNameList { get; private set; } = new()
{
"游客-A", "游客-B", "游客-C", "游客-D", "游客-E", "游客-F"
};
public GroupJumpRopeContext()
{
CirclePositions = new List<(double XNorm, double YNorm)>
{
(0.21, 0.88 ),
(0.36, 0.58 ),
(0.50, 0.88),
(0.64, 0.58 ),
(0.78, 0.88),
(0.92, 0.58 )
};
UserList = new List<SportUserItem>();
UserNumberList = new List<string>();
Sports = new List<SportBase>();
}
// 更新排行榜方法
public List<RankItem> UpdateRankList()
{
var rankList = UserNumberList
.Select((numStr, index) => new
{
Index = index,
Name = UseNameList[index],
Number = int.TryParse(numStr, out var n) ? n : 0
})
.OrderByDescending(x => x.Number)
.Select((x, rank) => new RankItem
{
Rank = rank + 1,
Name = x.Name,
Number = x.Number
})
.ToList();
RankList = rankList;
return rankList;
}
}
// 排名项
public class RankItem
{
public int Rank { get; set; }
public string Name { get; set; }
public int Number { get; set; }
public double Score { get; set; }
}
}