给我用C语言编写一个简单的元胞自动机
时间: 2023-04-02 18:03:59 浏览: 60
好的,以下是一个简单的元胞自动机的 C 语言代码:
#include <stdio.h>
#define ROWS 10
#define COLS 10
void print_grid(int grid[ROWS][COLS]) {
for (int i = ; i < ROWS; i++) {
for (int j = ; j < COLS; j++) {
printf("%d ", grid[i][j]);
}
printf("\n");
}
}
void update_grid(int grid[ROWS][COLS]) {
int new_grid[ROWS][COLS];
for (int i = ; i < ROWS; i++) {
for (int j = ; j < COLS; j++) {
int neighbors = ;
for (int x = -1; x <= 1; x++) {
for (int y = -1; y <= 1; y++) {
if (x == && y == ) {
continue;
}
int row = (i + x + ROWS) % ROWS;
int col = (j + y + COLS) % COLS;
if (grid[row][col] == 1) {
neighbors++;
}
}
}
if (grid[i][j] == 1 && (neighbors < 2 || neighbors > 3)) {
new_grid[i][j] = ;
} else if (grid[i][j] == && neighbors == 3) {
new_grid[i][j] = 1;
} else {
new_grid[i][j] = grid[i][j];
}
}
}
for (int i = ; i < ROWS; i++) {
for (int j = ; j < COLS; j++) {
grid[i][j] = new_grid[i][j];
}
}
}
int main() {
int grid[ROWS][COLS] = {
{, , , , , , , , , },
{, , , , , , , , , },
{, , , , , , , , , },
{, , , 1, 1, 1, , , , },
{, , , 1, , 1, , , , },
{, , , 1, 1, 1, , , , },
{, , , , , , , , , },
{, , , , , , , , , },
{, , , , , , , , , },
{, , , , , , , , , }
};
for (int i = ; i < 10; i++) {
print_grid(grid);
update_grid(grid);
}
return ;
}