6.3 核心代码
// 处理固定配时模式
private void OprationNomal(Man M)
{
if (!M.IsForbid)//绿状态下是否允许抛出小球,false为允许
{
if ((M.GreenTime - M.GreenCount + 1) >= M.LeftTime)//如果人的剩余时间=人的绿色周期-人的绿色计数器(已经用过的时间)+1(本次计数不算)>=人所拥有的球
{
if (M.LeftOrRight)
{
Ball NewBall = new Ball(M.LeftTime, 1, true);
LBup.Add(NewBall);
}
else
{
Ball NewBall = new Ball(M.LeftTime, myDistance.DistanceTime - 1, false);
LBdown.Add(NewBall);
}
M.ForbidTime = M.LeftTime;//禁止时间长度=抛出小球的质量时间
M.LeftTime = 0;
M.IsForbid = true;//禁止抛出小球
}
else
{
if (M.LeftOrRight)
{
Ball NewBall = new Ball(M.GreenTime - M.GreenCount + 1, 1, true);//人的绿色周期-人的已用绿色时间=抛出小球的质量时间
LBup.Add(NewBall);
} 基于抛球模型的交通信号控制互动关系研究(9):http://www.751com.cn/zidonghua/lunwen_3407.html