gpt4 book ai didi

c# - 显示随机网格 c#

转载 作者:太空宇宙 更新时间:2023-11-03 23:47:02 28 4
gpt4 key购买 nike

我在 Windows Phone 中随机显示一些网格时遇到问题。我创建了自己的代码,它工作正常但并不简单。也许有一种更简单的方法可以在 Windows Phone 中显示随机网格。

这是我的应用所需要的:

我想点击一个按钮来显示随机网格。当我再次点击时,它应该显示另一个网格并隐藏之前的网格。它现在应该显示任何网格两次。

这是我自己的代码:

List<int> number = new List<int> { 1,2,3,4,5 }; //create list
private void Button_Click_2(object sender, RoutedEventArgs e)
{
int numberrandom;
Random bsd = new Random();
if (number.Count > 0) // get random number from (numberlist) without repetition
{
int fIndex = bsd.Next(0, number.Count);

numberrandom = number[fIndex];
txtbox1.Text = numberrandom.ToString(); // show random number at txtbox
number.RemoveAt(fIndex);
}
else
{
messagebox.show("no more grid show");
}

int a = Convert.ToInt32(txtbox1.Text); // convert number txtbox from string to int
int val = a;
switch (val)
{
case 1: //show grid 1
grid1.Visibility = Visibility.Visible;
grid2.Visibility = Visibility.Collapsed;
grid3.Visibility = Visibility.Collapsed;
grid4.Visibility = Visibility.Collapsed;
grid5.Visibility = Visibility.Collapsed;
break;
case 2: //show grid 2
grid1.Visibility = Visibility.Collapsed;
grid2.Visibility = Visibility.Visible;
grid3.Visibility = Visibility.Collapsed;
grid4.Visibility = Visibility.Collapsed;
grid5.Visibility = Visibility.Collapsed;
break;
case 3: //show grid 3
grid1.Visibility = Visibility.Collapsed;
grid2.Visibility = Visibility.Collapsed;
grid3.Visibility = Visibility.Visible;
grid4.Visibility = Visibility.Collapsed;
grid5.Visibility = Visibility.Collapsed;
break;
case 4: //show grid 4
grid1.Visibility = Visibility.Collapsed;
grid2.Visibility = Visibility.Collapsed;
grid3.Visibility = Visibility.Collapsed;
grid4.Visibility = Visibility.Visible;
grid5.Visibility = Visibility.Collapsed;
break;
case 5: //show grid 5
grid1.Visibility = Visibility.Collapsed;
grid2.Visibility = Visibility.Collapsed;
grid3.Visibility = Visibility.Collapsed;
grid4.Visibility = Visibility.Collapsed;
grid5.Visibility = Visibility.Visible;
break;
}

最佳答案

您可以进行一些改进:

List<Grid> grids = new List<Grid> { grid1, grid2, grid3, gridN ... };
int gridIndex = 0;

void Load() {
grids.Shuffle(); // use the extension method linked below
}

void Button_Click_2(object sender, RoutedEventArgs e) {
if (gridIndex >= grids.Count)
return;

if (gridIndex > 0) {
grids[gridIndex - 1].Visibility = Visibility.Collapsed;
}
grids[gridIndex].Visibility = Visibility.Visible;
gridIndex++;
}

需要显示原来的格子号吗?如果没有,上面的代码就简单多了。这是 Shuffle() 扩展方法,我从 this answer 得到它:

public static void Shuffle<T>(this IList<T> list)  
{
Random rng = new Random();
int n = list.Count;
while (n > 1) {
n--;
int k = rng.Next(n + 1);
T value = list[k];
list[k] = list[n];
list[n] = value;
}
}

关于c# - 显示随机网格 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27296132/

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