Cellular Automata C ++(生命游戏)

我试图通过设置4x1组合来测试我的算法,但是它不起作用。它仅在我随机设置所有grid(array)的akk值(1或0)时有效。怎么了?

while(1)
{
    for (int i = 1; i < 29; i++) {
        for (int j = 1; j < 79; j++) {
            lifeNumber = arena[i][j + 1] + arena[i][j - 1] + arena[i + 1][j] + arena[i + 1][j + 1] + arena[i + 1][j - 1] + arena[i - 1][j] + arena[i - 1][j + 1] + arena[i - 1][j - 1];
            if (arena[i][j] == 1) {
                if (lifeNumber < 2 || lifeNumber>3) {
                    arena[i][j] = 0;
                }
            }
            else {
                if (lifeNumber == 3) {
                    arena[i][j] = 1;
                }
            }
        }
    }
    for (int i = 0; i < 30; i++) {
        for (int j = 0; j < 80; j++) {
            if (arena[i][j] == 1)
                DrawPixel(j, i);
        }
    }
    stopTime(1.0f);
    ClearScreen();
}