From dfab0d7ddfa462eec50114ac978f92c2a58530d4 Mon Sep 17 00:00:00 2001 From: CJK_mkp <113243675+CJKmkp@users.noreply.github.com> Date: Fri, 7 Nov 2025 10:35:27 +0800 Subject: [PATCH] =?UTF-8?q?improvve:=E7=82=B9=E5=90=8D=E5=BF=AB=E6=8A=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/Windows/QuickDrawWindow.cs | 45 ++++++++++++++++----------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/Ink Canvas/Windows/QuickDrawWindow.cs b/Ink Canvas/Windows/QuickDrawWindow.cs index eb92a816..e8bfec04 100644 --- a/Ink Canvas/Windows/QuickDrawWindow.cs +++ b/Ink Canvas/Windows/QuickDrawWindow.cs @@ -99,7 +99,7 @@ namespace Ink_Canvas { const int animationTimes = 100; // 动画次数 const int sleepTime = 5; // 每次动画间隔(毫秒) - + new System.Threading.Thread(() => { if (nameList.Count > 0) @@ -121,7 +121,7 @@ namespace Ink_Canvas private void StartNameDrawAnimation(int animationTimes, int sleepTime) { List usedNames = new List(); - + for (int i = 0; i < animationTimes; i++) { // 随机选择一个名字进行动画显示,避免立即重复 @@ -130,25 +130,29 @@ namespace Ink_Canvas { randomName = nameList[random.Next(0, nameList.Count)]; } while (usedNames.Count > 0 && usedNames[usedNames.Count - 1] == randomName); - + usedNames.Add(randomName); - + Application.Current.Dispatcher.Invoke(() => { MainResultDisplay.Text = randomName; }); - + System.Threading.Thread.Sleep(sleepTime); } - + // 动画结束,显示最终结果 Application.Current.Dispatcher.Invoke(() => { - // 随机选择一个最终名字 - string finalName = nameList[random.Next(0, nameList.Count)]; + // 使用降重抽选方法选择最终名字 + var selectedNames = NewStyleRollCallWindow.SelectNamesWithML(nameList, 1, random); + string finalName = selectedNames.Count > 0 ? selectedNames[0] : nameList[random.Next(0, nameList.Count)]; MainResultDisplay.Text = finalName; + + // 更新历史记录 + NewStyleRollCallWindow.UpdateRollCallHistory(new List { finalName }); }); - + // 显示结果后,等待一段时间让用户看到结果,然后关闭窗口 new System.Threading.Thread(() => { @@ -166,7 +170,7 @@ namespace Ink_Canvas private void StartNumberDrawAnimation(int animationTimes, int sleepTime) { List usedNumbers = new List(); - + for (int i = 0; i < animationTimes; i++) { // 随机选择一个数字进行动画显示,避免立即重复 @@ -175,25 +179,30 @@ namespace Ink_Canvas { randomNumber = random.Next(1, 61); // 1-60 } while (usedNumbers.Count > 0 && usedNumbers[usedNumbers.Count - 1] == randomNumber); - + usedNumbers.Add(randomNumber); - + Application.Current.Dispatcher.Invoke(() => { MainResultDisplay.Text = randomNumber.ToString(); }); - + System.Threading.Thread.Sleep(sleepTime); } - + // 动画结束,显示最终结果 Application.Current.Dispatcher.Invoke(() => { - // 随机选择一个最终数字 - int finalNumber = random.Next(1, 61); - MainResultDisplay.Text = finalNumber.ToString(); + // 使用降重抽选方法选择最终数字 + var numberList = Enumerable.Range(1, 60).Select(n => n.ToString()).ToList(); + var selectedNumbers = NewStyleRollCallWindow.SelectNamesWithML(numberList, 1, random); + string finalNumber = selectedNumbers.Count > 0 ? selectedNumbers[0] : random.Next(1, 61).ToString(); + MainResultDisplay.Text = finalNumber; + + // 更新历史记录 + NewStyleRollCallWindow.UpdateRollCallHistory(new List { finalNumber }); }); - + // 显示结果后,等待一段时间让用户看到结果,然后关闭窗口 new System.Threading.Thread(() => {