1. 包含必要的头文件
```c
include include include ``` 2. 定义常量和变量 ```c define HIGH 40 define WIDTH 70 int cells[HIGH][WIDTH]; ``` 3. 初始化细胞状态 ```c void DataInit() { srand(time(NULL)); // 设置随机种子 for (int i = 0; i < HIGH; i++) { for (int j = 0; j < WIDTH; j++) { cells[i][j] = rand() % 2; // 随机生成细胞状态,0表示死,1表示活 } } } ``` 4. 显示细胞状态 ```c void Show() { for (int i = 0; i < HIGH; i++) { for (int j = 0; j < WIDTH; j++) { if (cells[i][j] == 1) { printf("*"); } else { printf(" "); } } printf("\n"); } } ``` 5. 更新细胞状态 ```c void UpdateWithoutInput() { int newCells[HIGH][WIDTH]; for (int i = 0; i < HIGH; i++) { for (int j = 0; j < WIDTH; j++) { int liveNeighbors = 0; // 计算周围活细胞的数量 for (int x = i - 1; x <= i + 1; x++) { for (int y = j - 1; y <= j + 1; y++) { if (x >= 0 && x < HIGH && y >= 0 && y < WIDTH && cells[x][y] == 1) { liveNeighbors++; } } } // 根据规则更新细胞状态 if (cells[i][j] == 1 && (liveNeighbors < 2 || liveNeighbors > 3)) { newCells[i][j] = 0; // 活细胞变死细胞 } else if (cells[i][j] == 0 && liveNeighbors == 3) { newCells[i][j] = 1; // 死细胞变活细胞 } else { newCells[i][j] = cells[i][j]; // 状态不变 } } } // 将新状态复制回原细胞数组 for (int i = 0; i < HIGH; i++) { for (int j = 0; j < WIDTH; j++) { cells[i][j] = newCells[i][j]; } } } ``` 6. 主函数 ```c int main() { DataInit(); // 初始化细胞状态 while (1) { Show(); // 显示当前细胞状态 UpdateWithoutInput(); // 更新细胞状态 // 可以添加暂停或退出功能 } return 0; } ``` 7. 编译和运行 将上述代码保存为`life.c`,然后使用C编译器(如GCC)进行编译: ```sh gcc life.c -o life ./life ``` 这样就完成了一个简单的生命游戏的C语言实现。你可以根据需要调整代码,例如添加用户输入来控制游戏速度或重新生成世界等。