ライフゲーム
ライフゲーム(Conway's Game of Life)のシミュレーションをしてみましょう。
code:life.c
#include <stdio.h>
#include <unistd.h> /* sleep, usleep */
#define N 22 /* 縦方向 */
#define M 78 /* 横方向 */
char aN + 2M + 2, bN + 2M + 2; /* 盤 */
int main(void)
{
int i, j, g;
aN/2M/2 = aN/2-1M/2 = aN/2+1M/2
= aN/2M/2-1 = aN/2-1M/2+1 = 1; /* 初期状態 */
for (g = 1; g <= 250; g++) {
printf("\x1b[2JGeneration %4d\n", g); /* 世代 */
for (i = 1; i <= N; i++) {
for (j = 1; j <= M; j++) {
if (aij) {
printf("*");
bi-1j-1++; bi-1j++; bi-1j+1++;
bi j-1++; bi j+1++;
bi+1j-1++; bi+1j++; bi+1j+1++;
} else {
printf(".");
}
}
printf("\n");
}
for (i = 0; i <= N + 1; i++) {
for (j = 0; j <= M + 1; j++) {
if (bij != 2) aij = (bij == 3);
bij = 0;
}
}
usleep(100000); /* 100000μ秒 = 0.1秒 */
}
return 0;
}