Я создаю игру "Броненосец" для класса и имею сетку ящиков для картин, выложенную в качестве платы.
Мне интересно, есть ли какой-либо способ, который я могу ссылаться на окно изображения как переменную, чтобы я мог перебирать их через цикл.
Схема именования pA1-pA10 для столбца 1, pB1-pB10 для столбца2 и т.д. Через столбец 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");
}
Получил это понять. Именно то, что вы сказали 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");
}
}
}
Каков тип pA1 и т.д.? Вам не нужна схема именования, в которой вам нужна схема индексирования. Независимо от типа, вы можете поместить все эти указатели в массив размером 10 x 10 и затем выполнить итерацию для обработки всех пространств сетки.