Визуализация в Visual C ++ с помощью переменной

Я создаю игру «Морской бой» для класса, и в качестве доски я выложил сетку с картинными коробками.

Мне интересно, есть ли какой-нибудь способ, которым я могу ссылаться на графическое окно как на переменную, чтобы я мог перебирать их, используя цикл.

Схема именования: 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");
}

0

Решение

Какой тип pA1 и т. Д.? Вам не нужна схема именования, вам нужна схема индексации. Независимо от типа, вы можете поместить все эти указатели в массив 10 x 10, а затем выполнить итерацию для обработки всех пространств сетки.

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");
}
}
}
0

По вопросам рекламы [email protected]