C++ 生活游戏中的随机播种不能很好地发挥作用

C++ 生活游戏中的随机播种不能很好地发挥作用,c++,random,seeding,C++,Random,Seeding,我正在为我的任务开发生活游戏。我尝试使用随机数进行播种,但下一代不起作用。如何使用随机种子来检查下一代。当我使用手动播种时,代码运行良好。但当我使用随机种子时将不起作用 人工播种 for (int i = 0;i<n;i++) { cout << "Enter the coordinates of cell " << i + 1 << " : "; cin >> x >> y; gridOne[x][y]

我正在为我的任务开发生活游戏。我尝试使用随机数进行播种,但下一代不起作用。如何使用随机种子来检查下一代。当我使用手动播种时,代码运行良好。但当我使用随机种子时将不起作用

人工播种

for (int i = 0;i<n;i++)
{
    cout << "Enter the coordinates of cell " << i + 1 << " : ";
    cin >> x >> y;
    gridOne[x][y] = true;
    printGrid(gridOne);
}
for(int i=0;i y;
gridOne[x][y]=真;
printGrid(gridOne);
}
随机播种

void generation(int gridOne[gridSize + 1][gridSize + 1])
{
int row, col;
srand(time(0));
for (row = 0; row < gridSize + 1; row++)
{
    for (col = 0; col < gridSize + 1; col++)
    {
        gridOne[gridSize + 1][gridSize + 1] = (int)(rand() % 2);
        cout << gridOne[gridSize + 1][gridSize + 1] << ' ';
    }
    cout << endl;
}
}
void生成(int-gridOne[gridSize+1][gridSize+1])
{
int row,col;
srand(时间(0));
对于(行=0;行for(col=0;colrand()
。可能相关
int main()
{
clock_t begin, finish;
bool gridOne[gridSize + 1][gridSize + 1] = {};

//seeding code

cout << "Please enter number of iteration : " << endl;
cin >> iteration;

for (int a = 0; a<iteration; a++)
{
    begin = clock();

    printGrid(gridOne);
    determineState(gridOne);
    cout << endl;
}
finish = clock();
cout << "The elapsed time : " << (double)(finish - begin) / CLOCKS_PER_SEC;
system("pause");
return 0;
}


void printGrid(bool gridOne[gridSize + 1][gridSize + 1]) {
for (int a = 1; a < gridSize; a++)
{
    for (int b = 1; b < gridSize; b++)
    {
        if (gridOne[a][b] == true)
        {
            cout << " \xDB ";
        }
        else
        {
            cout << " . ";
        }
        if (b == gridSize - 1)
        {
            cout << endl;
        }
    }
    }
    }


     void compareGrid(bool gridOne[gridSize + 1][gridSize + 1], bool gridTwo[gridSize + 1][gridSize + 1]) {

for (int a = 0; a < gridSize; a++)
{
    for (int b = 0; b < gridSize; b++)
    {
        gridTwo[a][b] = gridOne[a][b];
    }
}
}

void determineState(bool gridOne[gridSize + 1][gridSize + 1]) {
bool gridTwo[gridSize + 1][gridSize + 1] = {};
compareGrid(gridOne, gridTwo);

for (int a = 1; a < gridSize; a++)
{
    for (int b = 1; b < gridSize; b++)
    {
        int alive = 0;
        for (int c = -1; c < 2; c++)
        {
            for (int d = -1; d < 2; d++)
            {
                if (!(c == 0 && d == 0))
                {
                    if (gridTwo[a + c][b + d])
                    {
                        ++alive;
                    }
                }
            }
        }
        if (alive < 2)
        {
            gridOne[a][b] = false;
        }
        else if (alive == 3)
        {
            gridOne[a][b] = true;
        }
        else if (alive > 3)
        {
            gridOne[a][b] = false;
        }
    }
}
}
for (col = 0; col < gridSize + 1; col++)
{
    gridOne[gridSize + 1][gridSize + 1] = (int)(rand() % 2);
    cout << gridOne[gridSize + 1][gridSize + 1] << ' ';
}
for (col = 0; col < gridSize + 1; col++)
{
    gridOne[row][col] = (int)(rand() % 2);
    cout << gridOne[row][col] << ' ';
}