gpt4 book ai didi

c++ - 为什么我的 C++ 生命游戏不能正常工作?

转载 作者:行者123 更新时间:2023-11-30 02:11:02 25 4
gpt4 key购买 nike

这个编译和运行没问题,但是结果和他们应该的完全不同。

我剪下了不相关的代码:

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!!!
}



}
}

最佳答案

首先,它不起作用,因为你没有分离每个单元格的结果,即,如果 grid[0][0] 死亡,那么这将立即反射(reflect)在 grid[1][0] 的生命或死亡,这不是 Game of Life 的运作方式。其次,它不起作用,因为您似乎没有多次运行游戏。

关于c++ - 为什么我的 C++ 生命游戏不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4004049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com