资源简介
用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.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
相关资源
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- stm32 +w5500 裸机 远程升级 自动dns pi
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
评论
共有 条评论