蚁群算法小程序(C/C++语言实现)(二)
作者 佚名技术
来源 程序设计
浏览
发布时间 2012-06-29
smelldisp+''0''); } } Smell[k][i][j]-= 1+(Smell[k][i][j]*SMELL_GONE_RATE); if(Smell[k][i][j]<0) Smell[k][i][j] = 0; if(SmellDispFlag) { if(Smell[k][i][j]<=2) { gotoxy(i,j); putch(SPACE); } } } } /* of one location */ } /* of time to change the world */ } /* of world change */ void AntMove(void) { int antx,anty; int smelltodrop,smellnow; for(AntNow=0;AntNow<MAX_ANT;AntNow++) { ant[AntNow].SpeedTimer+=timer10ms; if(ant[AntNow].SpeedTimer>=ant[AntNow].speed) { ant[AntNow].SpeedTimer = 0; gotoxy(ant[AntNow].xxx,ant[AntNow].yyy); putch(SPACE); AntOneStep(); gotoxy(ant[AntNow].xxx,ant[AntNow].yyy); /* ant0 is a sepecail ant, use different color */ if(AntNow==0) textcolor(0xd); if(ant[AntNow].food) putch(ANT_CHAR_FOOD); else putch(ANT_CHAR_EMPTY); if(AntNow==0) textcolor(0x7); /* remember trace */ ant[AntNow].tracex[ant[AntNow].TracePtr] = ant[AntNow].xxx; ant[AntNow].tracey[ant[AntNow].TracePtr] = ant[AntNow].yyy; if(++(ant[AntNow].TracePtr)>=TRACE_REMEMBER) ant[AntNow].TracePtr = 0; /* drop smell */ antx = ant[AntNow].xxx; anty = ant[AntNow].yyy; if(ant[AntNow].food) /* have food, looking for home */ { if(ant[AntNow].SmellAmount[SMELL_TYPE_FOOD]) { smellnow = Smell[SMELL_TYPE_FOOD][antx][anty]; smelltodrop = ant[AntNow].SmellAmount[SMELL_TYPE_FOOD]*SMELL_DROP_RATE; if(smelltodrop>smellnow) Smell[SMELL_TYPE_FOOD][antx][anty] = smelltodrop; /* else Smell[...] = smellnow */ ant[AntNow].SmellAmount[SMELL_TYPE_FOOD]-= smelltodrop; if(ant[AntNow].SmellAmount[SMELL_TYPE_FOOD]<0) ant[AntNow].SmellAmount[SMELL_TYPE_FOOD] = 0; |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于蚁群算法小程序(C/C++语言实现)(二)的所有评论