#include <stdio.h>
#include <stdlib.h>
#define FieldSize 20
#define TimeMax 20
/*フィールドの初期化 (ファイルの読み込み)*/
void init_field(int field[FieldSize][FieldSize], char *fname){
int i,j;
FILE *fp;
if((fp=fopen(fname,"r"))==NULL){
printf("init_field(): Cannot open \"%s\"\n",fname);
exit(1);
}
for(i=0;i<FieldSize;i++){
for(j=0;j<FieldSize;j++){
fscanf(fp,"%d ",&field[i][j]);
}
}
fclose(fp);
}
int count(int I, int J, int field[FieldSize][FieldSize]){
int i,j;
int i_tmp,j_tmp;
int sum;
sum=0;
for(i=-1;i<=1;i++){
for(j=-1;j<=1;j++){
}
}
return sum;
}
void update_field(int field[FieldSize][FieldSize]){
int i,j;
int around;
int new_field[FieldSize][FieldSize];
for(i=0;i<FieldSize;i++){
for(j=0;j<FieldSize;j++){
around=count(i,j,field);
if( (new_field[i][j] >= 3) && !(field[i][j]) ) {
field[i][j]=1;
}
/* ˆÛŽ */
else if ( ((new_field[i][j] == 2) || (new_field[i][j] == 3)) && (field[i][j]) ) {
field[i][j]=1;
}
/* Ž€–S(‚»‚êˆÈŠO) */
else {
field[i][j]=0;
}
new_field[i][j]=0;
}
}
for(i = 0;i < 20;i++){
for(j = 0;j < 20;j++){
field[i][j] = new_field[i][j];
}
}
for(i=0;i<20;i++){
for(j=0;j<20;j++){
field[i][j] = new_field[i][j];
if(field[i][j]==1){
printf("■");
}else{
printf("□");
}
}
printf("\n");
}
}
void display(int field[FieldSize][FieldSize]){
int i,j;
for(i=0;i<20;i++){
for(j=0;j<20;j++){
if(field[i][j]==1){
printf("■");
}else{
printf("□");
}
}
printf("\n");
}
}
int main(int argc, char *argv[]){
int t;
int field[FieldSize][FieldSize];
if(argc!=2){
printf("実行方法 : ./a.out 初期状態のファイル\n");
}
//system("clear");
init_field(field, argv[1]);
//display(field);
//sleep(1);
//system("clear");
for(t=0;t<TimeMax;t++){
update_field(field);
display(field);
//sleep(1);
//system("clear");
}
return 0;
}
/////////////////////////////////frog.dat
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0