我有一个可能非常简单的问题,但我看不到解决方案。
首先,我有一个名为 Seed 的结构,代码如下:
struct Seed
{
int x, y;
int i, j;
int Type;
};
然后我分别创建一个二维数组和一个队列,如下所示:
Seed Grid[ROW][COL];
std::queue<Seed> SeedsToUpdate;
我用循环填充网格:
void CApp::LoopSeeds(int function, int Type)
{
for(int i = 0;i < ROW;i++)
{
for(int j = 0;j < COL;j++)
{
switch (function)
{
case SET:
SetSeed(i, j, Type);
break;
case DRAW:
DrawSeed(i,j);
break;
case GROW:
GrowSeed(i,j,Type);
}
}
}
}
然后,我将数组中的单个种子设置为其他类型,例如GREEN
. GREEN
然后,我通过遍历数组并用所有具有以下类型的数组元素填充队列来填充队列:
void CApp::BuildQueue()
{
for(int i = 0;i < ROW;i++)
{
for(int j = 0;j < COL;j++)
{
if (Grid[i][j].Type != SEED_EMPTY)
{
SeedsToUpdate.push(Grid[i][j]);
}
}
}
}
在这一点上,一切都很好(我认为)。但是,我想做的是以下内容:对于队列中的每个种子,编辑数组中的相邻单元格,例如 Grid[i+1][j].Type = GREEN;
这是我的问题:给定上面的代码,我该怎么做?
谢谢你的耐心。