목차
1. 프로그램 기능
2. 프로그램 동작
3. 주요변수 및 함수, 수행 흐름
4. 실행화면
5. 프로그램 소스
2. 프로그램 동작
3. 주요변수 및 함수, 수행 흐름
4. 실행화면
5. 프로그램 소스
본문내용
t]\n",argv[0]); //실행법
exit(0);
}
initscr(); //화면 초기화
count_s = 0; //세대 0 초기화
fp = fopen(argv[1],"rw");
for(j=0;j
for(i=0;i
temp = fgetc(fp);
life_game_data[j][i] = temp; //파일내용을 배열에 저장
temp = fgetc(fp);
}
}
erase(); //화면 지우고
refresh(); //갱신
for(j=0;j
for(i=0;i
data_temp[j][i] = life_game_data[j][i]; //임시배열에 원본복사
}
}
printw("[count = %d]\n",count_s);
for(j=0;j
for(i=0;i
printw("%c ",life_game_data[j][i]); //처음데이터상태 출력
}
printw("\n");
}
refresh();
for(k=0;k<=atoi(argv[2]);k++){ //세대 루프 수행
for(j=0;j
for(i=0;i
a_pos[j][i].j = j;
a_pos[j][i].i = i;
thread_id = pthread_create(&thread[j][i],NULL,change,&a_pos[j][i]);
} //쓰레드 생성
}
for(j=0;j
for(i=0;i
pthread_join(thread[j][i],(void *)&status); //조인
}
}
for(j=0;j
for(i=0;i
life_game_data[j][i] = data_temp[j][i]; //원본배열에 임시배열복사
}
}
erase(); //화면 지움
printw("[count = %d]\n",count_s); //세대정보 출력
count_s++; //세대 증가
for(j=0;j
for(i=0;i
printw("%c ",life_game_data[j][i]); //바뀐데이터 상태 출력
}
printw("\n");
}
refresh(); //갱신
}
status = pthread_mutex_destroy(&mutex); //뮤텍스 파괴
printw("press any key...exit");
getch();
endwin(); //종료
return 0;
}
exit(0);
}
initscr(); //화면 초기화
count_s = 0; //세대 0 초기화
fp = fopen(argv[1],"rw");
for(j=0;j
life_game_data[j][i] = temp; //파일내용을 배열에 저장
temp = fgetc(fp);
}
}
erase(); //화면 지우고
refresh(); //갱신
for(j=0;j
}
}
printw("[count = %d]\n",count_s);
for(j=0;j
}
printw("\n");
}
refresh();
for(k=0;k<=atoi(argv[2]);k++){ //세대 루프 수행
for(j=0;j
a_pos[j][i].i = i;
thread_id = pthread_create(&thread[j][i],NULL,change,&a_pos[j][i]);
} //쓰레드 생성
}
for(j=0;j
}
}
for(j=0;j
}
}
erase(); //화면 지움
printw("[count = %d]\n",count_s); //세대정보 출력
count_s++; //세대 증가
for(j=0;j
}
printw("\n");
}
refresh(); //갱신
}
status = pthread_mutex_destroy(&mutex); //뮤텍스 파괴
printw("press any key...exit");
getch();
endwin(); //종료
return 0;
}