• 大小: 874KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: C/C++
  • 标签: NS  C++  

资源简介

用C++写的元胞自动机NS模型,可以在程序中对规则修改,得到新的模型。方面初学者的学习运用。

资源截图

代码片段和文件信息

// NS.cpp : 定义控制台应用程序的入口点。
//

#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];
//找下一辆车的位置
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;
}
//已找好该车的车间距
if (space_between>=(array[i]+1))
{
array[i] = min(array[i]+1max_speed);
}
else
{
array[i] = max(space_between0);
}
}
}
//随机减速
//  for (i=0;i<70;i++)
//  {
//  if (array[i]==-1)
//  {
//  continue;
//  }
//  else
//  {
//  if (rand()%100<30)
//  {
//  array[i] = max(array[i]-10);
//  }
//  }
//  }
//加入新的车辆
{
int car_count=0;
for (i=0;i<70;i++)
{
if (array[i]>=0) car_count++;
}
//找第一辆车
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;//表示没有车辆的存在
}
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;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      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.embed.manifest

     文件        728  2013-01-20 09:39  NS\NS\Debug\NS.exe.embed.manifest.res

     文件        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


评论

共有 条评论