資源簡(jiǎn)介
用C++寫(xiě)的元胞自動(dòng)機(jī)NS模型,可以在程序中對(duì)規(guī)則修改,得到新的模型。方面初學(xué)者的學(xué)習(xí)運(yùn)用。

代碼片段和文件信息
//?NS.cpp?:?定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
//
#include?“stdafx.h“
#include?
#include?“time.h“
int?array[70];
int?max_speed=5;
void?show()
{
for?(int?i=0;i<70;i++)
{
if?(array[i]==-1)
{
std::cout<<“.“;
}
else
{
std::cout< }
}
std::cout< }
int?max(int?aint?b)
{
return?a>b?a:b;
}
int?min(int?aint?b)
{
return?a}
void?update()
{
int?i=0;
//更新位置
int?new_loction?=?0;
for?(i=69;i>=0;i--)
{
if?(array[i]==-1)
{
continue;
}
else
{
new_loction?=?i+array[i];
if?(new_loction>69)
{
array[i]=-1;
}
else
{
array[new_loction]=array[i];
if(new_loction!=i)
{
array[i]?=?-1;
}
}
}
}
//更新速度
int?speed?=0;
int?space_between?=?0;
for?(i=0;i<70;i++)
{
if?(array[i]==-1)
{
continue;
}
else
{
speed?=?array[i];
//找下一輛車(chē)的位置
int?ii=0;
for?(ii=i+1;ii<70;ii++)
{
if?(array[ii]==-1)
{
continue;
}
else
{
break;
}
}
if?(ii==70)
{
space_between?=?75-i-1;
}
else
{
space_between?=?ii-i-1;
}
//已找好該車(chē)的車(chē)間距
if?(space_between>=(array[i]+1))
{
array[i]?=?min(array[i]+1max_speed);
}
else
{
array[i]?=?max(space_between0);
}
}
}
//隨機(jī)減速
//? for?(i=0;i<70;i++)
//? {
//? if?(array[i]==-1)
//? {
//? continue;
//? }
//? else
//? {
//? if?(rand()%100<30)
//? {
//? array[i]?=?max(array[i]-10);
//? }
//? }
//? }
//加入新的車(chē)輛
{
int?car_count=0;
for?(i=0;i<70;i++)
{
if?(array[i]>=0)?car_count++;
}
//找第一輛車(chē)
for?(i=0;i<70;i++)
{
if?(array[i]==-1)
{
continue;
}
else
{
break;
}
}
if?(i>5)
{
//? if?(rand()%100<80)
//? {
//? int?location?=?rand()%5;
//? array[location]=5;
//? }
if(car_count<11)
{
int?location?=?rand()%5;
array[location]=5;
}
}
}
}
int?_tmain(int?argc?_TCHAR*?argv[])
{
// 初始化
//////////////////////////////////////////////////////////////////
int?i=0;
for?(i=0;i<70;i++)
{
array[i]?=?-1;//表示沒(méi)有車(chē)輛的存在
}
array[8]=4;
array[24]=5;
array[31]=5;
array[37]=5;
array[46]=0;
array[47]=0;
array[49]=1;
array[58]=4;
array[69]=5;
srand((unsigned)time(NULL));
///////////////////////////////////////////////////////////////////
//update
int?time_computer=35;
while(time_computer>0)
{
show();
update();
time_computer--;
}
getchar();
return?0;
}
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件??????10518??2013-01-20?09:39??NS\NS\Debug\BuildLog.htm
?????文件?????????65??2013-01-20?09:39??NS\NS\Debug\mt.dep
?????文件????????663??2013-01-20?09:39??NS\NS\Debug\NS.exe.em
?????文件????????728??2013-01-20?09:39??NS\NS\Debug\NS.exe.em
?????文件????????621??2013-01-20?09:39??NS\NS\Debug\NS.exe.intermediate.manifest
?????文件??????45601??2013-01-20?09:39??NS\NS\Debug\NS.obj
?????文件????3211264??2013-01-20?09:39??NS\NS\Debug\NS.pch
?????文件??????12261??2013-01-20?09:39??NS\NS\Debug\stdafx.obj
?????文件?????183296??2013-01-20?09:39??NS\NS\Debug\vc90.idb
?????文件?????274432??2013-01-20?09:39??NS\NS\Debug\vc90.pdb
?????文件???????2642??2013-01-20?09:38??NS\NS\NS.cpp
?????文件???????4483??2013-01-10?11:04??NS\NS\NS.vcproj
?????文件???????1405??2013-01-20?11:07??NS\NS\NS.vcproj.L-PC.L.user
?????文件???????1409??2013-01-10?15:03??NS\NS\NS.vcproj.lyx-PC.lyx.user
?????文件???????1153??2013-01-10?11:04??NS\NS\ReadMe.txt
?????文件????????207??2013-01-10?11:04??NS\NS\stdafx.cpp
?????文件????????233??2013-01-10?11:04??NS\NS\stdafx.h
?????文件????????498??2013-01-10?11:04??NS\NS\targetver.h
?????文件????2411520??2013-01-20?11:07??NS\NS.ncb
?????文件????????872??2013-01-10?11:04??NS\NS.sln
????..A..H.?????10240??2013-01-20?11:07??NS\NS.suo
?????目錄??????????0??2013-03-09?09:46??NS\NS\Debug
?????目錄??????????0??2013-03-09?09:46??NS\NS
?????目錄??????????0??2013-03-09?09:46??NS
-----------?---------??----------?-----??----
??????????????6174111????????????????????24
評(píng)論
共有 條評(píng)論