给我一段c++生命游戏代码
时间: 2023-08-24 13:38:35 浏览: 48
以下是一个简单的 C++ 生命游戏代码:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
const int ROW = 20;
const int COL = 20;
void init_board(int board[][COL]) {
srand(time(nullptr));
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
board[i][j] = rand() % 2;
}
}
}
void print_board(int board[][COL]) {
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
if (board[i][j] == 1) {
cout << "* ";
} else {
cout << ". ";
}
}
cout << endl;
}
}
int count_neighbors(int board[][COL], int row, int col) {
int count = 0;
for (int i = -1; i <= 1; i++) {
for (int j = -1; j <= 1; j++) {
if (i == 0 && j == 0) {
continue;
}
int r = row + i;
int c = col + j;
if (r < 0 || r >= ROW || c < 0 || c >= COL) {
continue;
}
count += board[r][c];
}
}
return count;
}
void update_board(int board[][COL]) {
int new_board[ROW][COL] = {0};
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
int count = count_neighbors(board, i, j);
if (board[i][j] == 1) {
if (count < 2) {
new_board[i][j] = 0;
} else if (count == 2 || count == 3) {
new_board[i][j] = 1;
} else {
new_board[i][j] = 0;
}
} else {
if (count == 3) {
new_board[i][j] = 1;
} else {
new_board[i][j] = 0;
}
}
}
}
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
board[i][j] = new_board[i][j];
}
}
}
int main() {
int board[ROW][COL] = {0};
init_board(board);
for (int i = 0; i < 10; i++) {
print_board(board);
update_board(board);
cout << endl;
}
return 0;
}
```
该代码使用了二维数组来表示生命游戏的棋盘,使用随机数来初始化棋盘中的细胞。`count_neighbors` 函数用于计算某个细胞周围的存活细胞数量,`update_board` 函数用于更新棋盘中的细胞状态。最后,`main` 函数使用循环调用 `print_board` 和 `update_board` 函数来模拟生命游戏的演化过程。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)