我需要弄清楚如何在数组中的枚举上获取元素。基本上,我有一个 9x9 按钮网格。我有两个包含这些值的多维数组。一个包含他们的名字(如果名字是 43),这意味着 5 向下,4 横(因为它们从 0 开始)。该名称也与数组中自身的 ELEMENT 相同。
string[,] playingField = new string[9, 9];
enum CellType { Empty, Flag, Hidden, Bomb }
CellType[,] cells = new CellType[9, 9];
按钮的名称保存在playField 中。
每个单元格的状态都保存在单元格中(如果它是空的,有炸弹等)
感谢 AbdElRaheim 提供上述内容。我这样做的原因是我可以获得一个按钮名称(与元素名称完全相同),这在两个数组中都是相同的。
例如:我可以这样做:
string dim1 = Convert.ToString(btn.Name[0]);
string dim2 = Convert.ToString(btn.Name[1]);
if (cells[Convert.ToInt32(dim1), Convert.ToInt32(dim2)] == CellType.Bomb)
(请原谅我糟糕的转换。我稍后会修复它;))上面的作用是让我查看您单击的单元格下方是否有炸弹。
但是,我现在需要做的,基本上与此相反。在上面我知道我想要比较它的元素名称,因为元素名称与按钮名称相同。Bomb
但是,现在我需要做的是通过获取cells
.
我不知道该怎么做,我试过:
foreach (CellType Bomb in cells)
{
但它什么也没做。我需要在“单元格”中找到所有“炸弹”并返回元素名称。这样我就可以使用该元素名称,将其转换为字符串,并使用我的StringToButton
方法创建对按钮的引用。
这是我目前正在这样做的方式,供参考,并帮助您更好地理解,但请注意这不是我想继续这样做的方式。我想按照我上面询问的方式来做:)
foreach (string i in minedNodes)
{
Button buttonName = StringToButton(Convert.ToString(i));
buttonName.Image = new Bitmap(dir + "mine.png");
}
谢谢!