资源简介
第2小组_第一版本_源程序清单.zip
代码片段和文件信息
#include “whole.h“
void checktrainmove(int i)//检测火车下一个时刻往哪个方向运行主要传入火车的坐标和速度
{
if(train[i].direction==1)//当火车北向行驶时
{
if(train[i].y == train[i].turn1_y && train[i].circle == ‘c‘)
train[i].direction = 4;
else if(train[i].y == train[i].turn2_y && train[i].circle == ‘a‘)
train[i].direction = 3;
}
else if(train[i].direction==2)//当火车南向行驶时
{
if(train[i].y == train[i].turn3_y && train[i].circle == ‘a‘)
train[i].direction = 4;
else if(train[i].y == train[i].turn4_y && train[i].circle == ‘c‘)
train[i].direction = 3;
}
else if(train[i].direction==3)//当火车西向行驶时
{
if(train[i].x == train[i].turn1_x && train[i].circle == ‘a‘)
train[i].direction = 2;
else if(train[i].x == train[i].turn3_x && train[i].circle == ‘c‘)
train[i].direction = 1;
}
else if(train[i].direction==4)//当火车东向行驶时
{
if(train[i].x == train[i].turn4_x && train[i].circle == ‘a‘)
train[i].direction = 1;
else if(train[i].x == train[i].turn2_x && train[i].circle == ‘c‘)
train[i].direction = 2;
}
}
//三种控制策略部分 先通过探测点判断函数确定轨道同时被占用,将两个被判断的火车编号传进来
void alternate_control_policy(int num1int num2)//交替控制策略将优先行驶的火车的编号返回到公共轨道的结构中
{
static int count1=1count2=1;//设置count为静态变量 方便数量上的累计
if(((num1==1&&num2==0)||(num1==0&&num2==1))&&(train[num1].speed==train[num2].speed))//A B火车同时进入公共轨道1时
{
if(count1==1)
{
track[0].train=‘A‘; //优先选择的火车
train[0].state=RUN;
count1++;
}
else
{
if(count1%2==0)
{
track[0].train=‘B‘;
train[1].state=RUN;
count1++;
}
if(count1%2!=0)
{
track[0].train=‘A‘; //优先选择的火车设
train[0].state=RUN;
count1++;
}
}
}
if(((num1==0&&num2==2)||(num1==2&&num2==0))&&(train[num1].speed==train[num2].speed))//A C火车同时进入公共轨道1时
{
if(count2==1)
{
track[1].train=‘A‘; //优先选择的火车设置为全局变量,要输出
train[0].state=RUN;
count2++;
}
else
{
if(count2%2==0)
{
track[1].train=‘C‘;
train[2].state=RUN;
count2++;
}
if(count2%2!=0)
{
track[1].train=‘A‘;
train[0].state=RUN;
count2++;
}
}
}
}
void speed_control_policy(int num1 int num2)//快车优先控制策略
{
if(((num1==0&&num2==1)||(num2==0&&num1==1))&&train[num1].speed!=train[num2].speed)//AB两车同时进入公共轨道1
{
if(train[0].speed>train[1].speed)
{
track[0].train=‘A‘;
track[0].state=1;
train[0].state=RUN;
}
else if(train[1].speed>train[0].speed)
{
track[0].train=‘B‘;
track[0].state=1;
train[1].state=RUN;
}
}
if(((num1==0&&num2==2)||(num1==2&&num2==0))&&train[num1].speed!=train[num2].speed)
{
train[num2].state=PAUSE;
train[num1].state=PAUSE;
if(train[0].speed>train[2].speed)
{
track[1].train=‘A‘;
track[1].state=1;
train[0].state=RUN;
}
else if(t
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11430 2016-06-04 12:35 Input.c
文件 2313 2016-06-05 23:47 ManEvent.c
文件 12157 2016-06-05 23:47 control.c
文件 0 2016-06-05 23:47 event.txt
文件 1231 2016-06-04 13:34 main.c
文件 862 2016-06-05 22:19 map.txt
文件 4391 2016-06-05 23:43 output.c
文件 4339 2016-06-05 23:47 record.txt
文件 232 2016-06-04 11:52 time.c
文件 2935 2016-06-05 23:47 whole.h
文件 115 2016-06-05 22:28 初始化信息.txt
文件 2266 2016-06-04 13:40 新托马斯.dev
文件 5396501 2016-06-05 23:47 新托马斯.exe
文件 1063 2016-06-05 23:48 新托马斯.layout
- 上一篇:OpenCV上目标跟踪和行人跟踪需要的视频
- 下一篇:MAX17040_PL2301
相关资源
- vmware15安装macos10.14.pdf
- ProgramminginLua4thEdition带书签.zip
- 原创代码,stm32f103单片机modbus485通讯
- myeclipse2015keygen.rar
- 天津大学计算机考研复试攻略.pdf
- 狼牙全自动抓鸡器.rar
- 无限3天试用UU更新补丁0402.rar
- 土地报备坐标信息接口文件生成工具
- SCITranslate11安装包安装教程.pdf
- 十九大报告词频分析.zip
- 智能小车成功.zip
- 项目开发包相关资料.rar
- THINKPAD写号软件usbfmtpw.exe.rar
- PCS7-motor电机块使用详解.pdf
- SmartHomeV2.tar.gz
- mini-KMS_Activator_v1.2_Office2010_VL_ENG.rar
- 茄子双胆软件.rar
- anyconnect-win-2.4.1012-web-deploy-k9.exe
- myeclipse2015破解.rar
- 97修课平台软件.zip
- Kotlin语言权威指南2020.pdf
- VirtualAudioCable.rar
- Hibernate3中文参考
- Algorithm_Introduction_Solutions.zip
- XE7UP1破解工具.rar
- DSC_v1.2.pdf
- X-Door[F335].rar
- 早起打卡挑战3.3.5.zip
- scvpn.exe
- Project3.rar
评论
共有 条评论