我正在为一个班级创建一个战舰游戏,并且有一个图片框网格作为棋盘。
我想知道是否有任何方法可以将图片框称为变量,因此我可以使用循环遍历它们。
命名方案是第1列为pA1-pA10,第2列为pB1-pB10,第10列。
我需要做的是找出一种方法将这个函数放在一个循环中,这样它就可以遍历列表,而不必为每个图片框都有这个代码。
此代码用于检查数组中存储的值,并将正确的图像加载到图片框中。
if (pIsShip(0, 0)=='s')
{
pA1->Load("Ship.png");
}
else if (pIsShip(0, 0) == 'w')
{
pA1->Load("Water.png");
}
else if (pIsShip(0, 0) == 'h')
{
pA1->Load("Hit.png");
}
else if (pIsShip(0, 0) == 'm')
{
pA1->Load("Miss.png");
}
答案 0 :(得分:0)
pA1等的类型是什么?您不需要命名方案,您需要索引方案。无论何种类型,您都可以将所有这些指针放入一个10 x 10数组,然后迭代以处理网格的所有空间。
答案 1 :(得分:0)
弄清楚了。正是你所说的ScottMcP。谢谢您的帮助。出于某种原因,我的想法正在消除那个。
static array<PictureBox^, 2>^ picBoxNames = gcnew array<PictureBox^, 2>(10, 10);
然后初始化数组中的每个项目并运行此代码,它完美地运行。
for (int row = 0; row < 10; row++)
{
for (int column = 0; column < 10; column++)
{
if (pIsShip(row, column) == 's')
{
picBoxNames[row,column]->Load("Ship.png");
}
else if (pIsShip(row, column) == 'w')
{
picBoxNames[row,column]->Load("Water.png");
}
else if (pIsShip(row, column) == 'h')
{
picBoxNames[row,column]->Load("Hit.png");
}
else if (pIsShip(row, column) == 'm')
{
picBoxNames[row,column]->Load("Miss.png");
}
}
}