用c语言写一段生命游戏代码
时间: 2023-04-12 22:01:55 浏览: 70
以下是一段用 C 语言编写的生命游戏代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ROWS 20
#define COLS 40
void init_board(int board[][COLS]) {
int i, j;
srand(time(NULL));
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
board[i][j] = rand() % 2;
}
}
}
void print_board(int board[][COLS]) {
int i, j;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
if (board[i][j] == 1) {
printf("*");
} else {
printf(" ");
}
}
printf("\n");
}
}
int count_neighbors(int board[][COLS], int row, int col) {
int i, j, count = 0;
for (i = row - 1; i <= row + 1; i++) {
for (j = col - 1; j <= col + 1; j++) {
if (i >= 0 && i < ROWS && j >= 0 && j < COLS && board[i][j] == 1) {
count++;
}
}
}
if (board[row][col] == 1) {
count--;
}
return count;
}
void update_board(int board[][COLS]) {
int i, j, count;
int new_board[ROWS][COLS];
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
count = count_neighbors(board, i, j);
if (board[i][j] == 1 && (count == 2 || count == 3)) {
new_board[i][j] = 1;
} else if (board[i][j] == 0 && count == 3) {
new_board[i][j] = 1;
} else {
new_board[i][j] = 0;
}
}
}
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
board[i][j] = new_board[i][j];
}
}
}
int main() {
int board[ROWS][COLS];
init_board(board);
while (1) {
system("clear");
print_board(board);
update_board(board);
usleep(100000);
}
return 0;
}
```
这段代码实现了生命游戏的基本逻辑,包括初始化棋盘、打印棋盘、计算邻居数量、更新棋盘等功能。在主函数中,我们不断地打印棋盘并更新棋盘,以模拟生命游戏的演化过程。
相关推荐
![](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)