gpt4 book ai didi

c# - picturebox 图像随机化 C#

转载 作者:行者123 更新时间:2023-11-30 14:04:06 26 4
gpt4 key购买 nike

我正在开发一个拼图 slider 程序,并尝试随机化图片框内的图像。我在互联网上做了一些研究,找不到任何我可以处理的例子。这些是我的代码:

        Random r = new Random();

PictureBox[] picBox = new PictureBox[9];
picBox[0] = new PictureBox();
picBox[1] = new PictureBox();
picBox[2] = new PictureBox();
picBox[3] = new PictureBox();
picBox[4] = new PictureBox();
picBox[5] = new PictureBox();
picBox[6] = new PictureBox();
picBox[7] = new PictureBox();
picBox[8] = new PictureBox();

我也有位图数组:

        Bitmap[] pictures = new Bitmap[9];
pictures[0] = new Bitmap(@"1.1Bright.jpg");
pictures[1] = new Bitmap(@"1.2Bright.jpg");
pictures[2] = new Bitmap(@"1.3Bright.jpg");
pictures[3] = new Bitmap(@"2.1Bright.jpg");
pictures[4] = new Bitmap(@"2.2Bright.jpg");
pictures[5] = new Bitmap(@"2.3Bright.jpg");
pictures[6] = new Bitmap(@"3.1Bright.jpg");
pictures[7] = new Bitmap(@"3.2Bright.jpg");
pictures[8] = new Bitmap(@"3.3Dark.jpg");

我尝试了几种方法,但我不知道如何将随机图片[]设置到picBox[]中:

        for(int i=0; i<=8;i++)
{
picBox[i].Image= pictures[r.Next(0,9)];
}

这里的问题是一些图片框例如 picBox[1] 和 picBox[6] 是重复的图片。我如何使它们不重复?非常感谢示例。

最佳答案

创建一个与图片数组大小相等的 bool 数组

bool[] usedPictures = new bool[pictures.Length];

将此数组的值设置为 false。现在确定您的随机数,并测试是否使用了该元素,例如:

int iCount = 0;
Random random = new Random();
while (iCount < pictures.Length)
{
int attempt = random.Next(0, pictures.Length);

//Ensures you will only use an available picture
if (usedPictures[attempt] == false)
{
picBox[attempt].Image= pictures[iCount];
doorUsed[attempt] = true;
iCount++;
}
}

关于c# - picturebox 图像随机化 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846693/

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