文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.猫抓老鼠仿真的一种实现方法
【摘要】本文阐述了一种在固定范围内遵照一定规则的猫抓老鼠的仿真实现方法。仿真程序
采用c++语言编制,在vc++软件上运行。本文中的仿真模型,按模型的特性划分,是属于离散事件系统仿真;按仿真时钟与实际时钟的比例关系分类上划分,是属于欠实时仿真;按仿真的系统的结构和实现手段上划分,是属于物理仿真。
0问题
猫抓老鼠。有1个10*10的方格阵,在一些格中会有一些障碍物。猫和老鼠从方格阵内任意位置开始,每单位时间只能走一格,且必须走一格。如果在某一刻两者在同一格中,我们称“猫抓到老鼠”(注意,猫和老鼠交换位置,不算被抓)。猫和老鼠的移动方式相同:平时沿直线走,下一步如果会走到障碍物上去或者出界,就用1个单位时间做一个左或右转90度。一开始他们都面向北方。仿真实现猫抓老鼠的过程,同时保证老鼠尽可能地不被猫抓到。
1系统定义
1.1仿真的边界是在一个10*10方格阵。
1.2仿真的约束条件是猫和老鼠在规定的时间里按照一定的规则行走:(1)、猫和老鼠每单位间只能走一格,且必须走一格;(2)、猫和老鼠的移动方式相同:平时沿直线走,下一步果会走到障碍物上去或者出界,就用1个单位时间做一个左或右转90度;(3)、老鼠尽可能不被猫抓到。
1.3仿真的的目的是,展现猫抓老鼠的过程。
2数学建模猫抓老鼠的仿真系统,是离散系统仿真。该系统的组成如下:
2.1实体:(1)、永久实体:10*10方格阵,以及里面的障碍物信息;(2)、临时实体:猫和老鼠的坐标信息,以及方格阵中空格的坐标信息。
2.2事件:(1)时间是共同的主事件。因为,时间协调了实体之间的同步活动。在某种程度上,也实现了各实体间的信息的传递。(2)猫和老鼠的行进是事件。因为,猫和老鼠的行进改变了系统的状态。
2.3活动:(1)实体所做的事件。在该模型中,是猫和老鼠的行进;(2)、对实体施加的事件。在该设计中,当猫或老鼠进入一种死循环状态时,需要一个系统检测函数,改变猫或老鼠原有的行进方向。
2.4进程:猫抓老鼠的整个动态过程。
3仿真建模3.1参数设计:
(1)、10*10的方格阵用一个10*10矩阵存储。方格阵中的不同内容在矩阵中用不同的常数表示。比如,0表示空格,1表示障碍物等等。
(2)、猫和老鼠,分别用一个猫类Cat和鼠类Rat实现。在两个类中,具有共同的成员变量有:各自的坐标信息,上一时刻的行进方向,以及自仿真开始所走过的路径。3.2数据结构设计:
>>>>>鼠
1文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
仿真程序采用了c++语言。所以,具体的参数设计采用了c++类的
>>>>>设计方法。
方格阵IntTable[10][10];
timecat_count[10][10];timerat_count[10][10];Initlize(;//方格阵初始化Checkcircle(;//死锁检测Draw(;///方格阵绘图
猫
IntCatx,Caty;//坐标Intcat_dir;//上一时刻的方向nodecat_stack[];
//记录所走过的坐标的栈catroute(;
//下一时刻的方向选择
IntRatx,Raty