我是 C# 的半新手,我决定尝试编写一个 15 谜题。这是我过去在 Delphi (Paschal) 中使用 16 个按钮、16 个按钮单击事件和大量 if 语句完成的练习。这一次,我以编程方式创建了按钮,我使用了一个所有按钮都使用的 buttonClick 方法,它被设置为检查相邻按钮并在有空白按钮时更改按钮的文本。这个我没有问题。然而,当试图创建一个加扰器按钮时,我们在 Delphi 中的做法是创建一个循环 10,000 次的 for 外观。在循环中,我们随机选择一个数字 (0-15) 并为该按钮调用 Click 方法。显然,并非所有点击都会注册,但这样做 10,00 次足以打乱拼图。这在 Delphi 中大约需要 1 秒才能完成。在 C# 中,我很难让代码快速执行。Button.PerformClick 操作的运行速度似乎比我预期的要慢得多。有什么我做错了吗?我很感激任何帮助。谢谢!
这是争夺按钮的代码。
void scramble_Click(object sender, MouseEventArgs e)
{
for (int i = 0; i < 1000; i++)
{
int temp = rand.Next(16);
int div = temp % 4;
int rem = temp / 4;
buttonClick(puzzle[div, rem], new EventArgs());
Refresh();
}
}
这些按钮位于 4x4 网格中,并通过随机数 mod 4 访问,作为 x 坐标和随机数 intDiv 4 用于 y 坐标。如果您想了解其他信息,请告诉我!再次感谢!