0

おそらく非常に単純な質問がありますが、解決策がわかりません。

まず、次のコードを含む Seed という名前の構造体があります。

struct Seed
{
    int x, y;
    int i, j;
    int Type;
};

次に、次のように 2D 配列とキューをそれぞれ作成します。

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;

そして、ここに私の問題があります:上記のコードを考えると、どうすればいいですか?

お待ち頂きまして、ありがとうございます。

4

2 に答える 2