gpt4 book ai didi

c# - 使用 C# 设计 Card Trick Game 的一个问题

转载 作者:太空狗 更新时间:2023-10-29 22:16:22 26 4
gpt4 key购买 nike

我想使用 C# 创建纸牌魔术游戏。我将表格上的图片框设计为卡片(背面)。我还为每张图片创建了一个 Click 方法,该方法创建一个介于 0 和 51 之间的随机数,并使用该数字从 ImageList 设置图像。

        Random random = new Random();
int i = random.Next(0, 51);
pictureBox1.Image = imageList1.Images[i];

我的问题是有时我会得到相同的数字(例如:两个黑桃 J),我该如何防止这种情况发生?! (我的意思是,例如,如果我得到(5),我可能会得到另一个(5))

最佳答案

将您已经选择的号码存储在 HashSet<int> 中并继续选择,直到当前号码不在 HashSet 中:

// private HashSet<int> seen = new HashSet<int>();
// private Random random = new Random();

if (seen.Count == imageList1.Images.Count)
{
// no cards left...
}

int card = random.Next(0, imageList1.Images.Count);
while (!seen.Add(card))
{
card = random.Next(0, imageList1.Images.Count);
}

pictureBox1.Image = imageList1.Images[card];

或者,如果您需要选择多个数字,您可以用序列号填充一个数组,并将每个索引中的数字与另一个随机索引中的数字交换。然后从随机数组中取出前 N 个需要的项目。

关于c# - 使用 C# 设计 Card Trick Game 的一个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16637175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com