Question

compile et fonctionne bien, mais les résultats sont tout à fait différents de ce qu'ils devraient être.

Je suis Snipped Code hors de propos:

bool grid[1280][1024]; // hardcoded to my screen res for now

for (int x = 0; x<1280; x++)     //init grid to false
{
    for (int y = 0; y<1024; y++)
    {
        grid[x][y] = false;
    }
}

grid[320][120] = true; // add a simple pattern
grid[320][121] = true;
grid[320][122] = true;
grid[320][123] = true;
grid[320][124] = true;
grid[320][125] = true;
grid[320][126] = true;
grid[320][127] = true;
grid[320][128] = true;

// [snipped]

for (int x = 1; x< (1280 - 1); x++)
{
    for (int y = 1; y< (1024 - 1); y++)
    {
        int n = 0; // neighbours
        if (grid[x-1][y-1]) n++; // top left
        if (grid[x][y-1])   n++; // top middle
        if (grid[x+1][y-1]) n++; // top right

        if (grid[x-1][y])   n++; // left
        if (grid[x+1][y])   n++; // right

        if (grid[x-1][y+1]) n++; // bottom left
        if (grid[x][y+1])   n++; // bottom middle
        if (grid[x+1][y+1]) n++; // bottom right


        if (grid[x][y]) // current cell is on
        {
            SetPixel(screen, x, y, on); // drawing function

            if (n < 2) grid[x][y] = false; // die. :(
            if (n > 3) grid[x][y] = false; // die. :(
            // otherwise (2 or 3), survive. :)

        }
        else // current cell is off
        {
            SetPixel(screen, x, y, off); // drawing function

            if (n == 3) grid[x][y] = true; // IT'S ALIVE!!!
        }



    }
}
Était-ce utile?

La solution

Tout d'abord, il ne fonctionne pas parce que vous n'êtes pas séparés, à savoir si la grille des résultats de chaque cellule [0] [0] meurt, ce sera immédiatement répercutée sur la grille [1] [0] de la vie ou la mort, ce qui est la façon dont fonctionne la vie de jeu. En second lieu, cela ne fonctionne pas parce que vous ne semblez pas avoir couru le jeu plus d'une itération.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top