void BFS(POS start, int (*visit)[302]) { std::queue<POS> que; que.push(start); while (que.empty() == false) { POS p = que.front(); que.pop(); if (visit[p.first][p.second])// 여기서 중복체크해야함. 자식 삽입할때 하면 안됨. { continue; } Aging(p, visit); visit[p.first][p.second] = 1; // 자식 추가 for (int i = 0; i < 4; ++i) { int n = p.first + DIR[i][0]; if (n > N) continue; int m = p.second + DIR[i][1]; if (m > M) continue; if (arr[n][m] == 0) { continue; } POS c = std::make_pair(n, m); que.push(c); } } }
int main(void) { FILE* fp = fopen("result.txt", "w"); if (fp == NULL) printf("error\n"); Sleep(2000); //挂起两秒钟 srand((unsigned)time(NULL)); //随机种子 Initialize(); //对初始个体进行初始化操作 for (t=0; t<1000; t++) //种群在该机制下演化一千个时间步 { Aging(); //执行年龄增长机制 Die(); //执行死亡机制 RePreduction(); //执行繁殖机制 printf("A"); fprintf(fp, "%d\t", Nt); } fclose(fp); return 0; }