c#怎么重复利用图形列表形成随机排列的图形方阵
时间: 2023-08-02 07:27:44 浏览: 36
你可以尝试使用C#中的System.Random类生成随机数,然后将生成的随机数与图形列表的元素进行随机交换,从而形成随机排列的图形方阵。以下是一个可能的实现:
```csharp
// 假设你有一个图形列表shapesList,以及一个表示方阵大小的变量size
Random rand = new Random();
for (int i = 0; i < shapesList.Count; i++) {
// 生成0到size*size-1之间的随机整数
int j = rand.Next(size * size);
// 将当前元素与随机位置上的元素进行交换
Shape temp = shapesList[i];
shapesList[i] = shapesList[j];
shapesList[j] = temp;
}
```
注意,这个方法并没有考虑图形方阵中每个位置应该只有一个图形的限制,你可能需要在交换元素时添加一些额外的逻辑来确保这一点。
相关问题
c#怎么让图形列表里的图形以超过原列表个数的方式用图形方阵按随机顺序显示出来
你可以通过以下步骤来实现:
1. 创建一个图形列表,用于存储所有的图形。
2. 创建一个新的图形列表,用于存储随机排序后的图形。
3. 使用随机数生成器,生成一个随机顺序。
4. 遍历随机顺序,将原图形列表中对应位置的图形添加到新的图形列表中。
5. 将新的图形列表中的图形以方阵的形式显示出来。
下面是示例代码:
```csharp
// 创建图形列表
List<Shape> shapeList = new List<Shape>();
shapeList.Add(new Shape("Shape1"));
shapeList.Add(new Shape("Shape2"));
shapeList.Add(new Shape("Shape3"));
shapeList.Add(new Shape("Shape4"));
shapeList.Add(new Shape("Shape5"));
shapeList.Add(new Shape("Shape6"));
// 创建新的图形列表,并随机排序
List<Shape> randomShapeList = new List<Shape>();
Random random = new Random();
List<int> randomIndexList = Enumerable.Range(0, shapeList.Count).OrderBy(x => random.Next()).ToList();
foreach (int index in randomIndexList)
{
randomShapeList.Add(shapeList[index]);
}
// 显示图形
int row = 3; // 行数
int col = 4; // 列数
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
int index = i * col + j;
if (index < randomShapeList.Count)
{
Console.Write(randomShapeList[index].Name + "\t");
}
}
Console.WriteLine();
}
```
请注意,这只是一个示例代码,你需要根据你的具体需求进行修改。
c#如何让已知图形列表以超过原图形列表的个数以图形方阵的形式出现,可以重复
你可以使用嵌套的 for 循环来实现已知图形列表以图形方阵的形式出现。假设你已经有一个包含所有图形的列表 shapes,你可以使用以下代码:
```
int numRows = 5; //方阵的行数
int numCols = 5; //方阵的列数
int index = 0; //当前图形的索引
for (int i = 0; i < numRows; i++)
{
for (int j = 0; j < numCols; j++)
{
//重置索引,以便可以重复使用图形列表
if (index >= shapes.Count)
{
index = 0;
}
//在当前位置上显示图形
DrawShape(shapes[index], i, j);
index++;
}
}
```
在上面的代码中,我们使用两个嵌套的 for 循环来遍历方阵中的每个位置。在每个位置上,我们使用 DrawShape 函数来显示当前的图形。我们还使用一个变量 index 来跟踪我们在图形列表中的位置,并在到达列表的末尾时将其重置为零,以便我们可以重复使用列表。
请注意,上述代码中的 DrawShape 函数是一个虚构的函数,你需要根据你的具体情况来实现该函数。此外,你需要根据你的实际需求来设置 numRows 和 numCols 变量的值。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)