资源简介
用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
相关资源
- 2048C++版本带图形界面
- CGridListCtrlEx源码vc++
- 使用C++的二叉搜索树实现学生成绩管
- c语言winsock 实现简单域名解析(DNS
- 狼吃羊C++代码
- 语音识别系统源码
- libstdc++-3.4.6-9.i386_libstdc++-3.4.6-11.x86_
- C++ Builder DLL
- windows下c实现telnet代码
- 梯度下降求函数极值C++代码
- VC++ 串口调试助手源代码
- 基于QtQuick的QCustomPlot实现
- 04737 C++程序设计 精讲 串讲 笔记 音频
- 矩阵类的运算符重载
- vc++做的考试系统c/s模式
- KCF跟踪算法c++
- ftp的C++源码实现,可以进行文件传输
- c++实现计算器
- VC++ 向指定串口发送和接收数据可十六
- 数据结构课程设计CC++描述[阮宏一][程
- vc++FTP搜索工具()
- 基于VC++的图像修复源代码
- Google C++编码规范
- 简单电梯c++实现
- AES/ECB/PKCS5Padding C++实现
- c++商品管理
- 打印出有向图中的所有环C++
- cocos2dx 3.17 2048游戏的源码
- C++中缀表达式求值
- 一个数字水印的VC++源程序,支持图片
评论
共有 条评论