最近所谓的“新国标红绿灯”闹的是沸沸扬扬,又终于尘埃落定,关于九宫格红绿灯,看起来没有普通的红绿灯好识别,比如下面的表示什么意思呢?
其实弄清楚了一些规律,是比较容易识别的,尤其对于程序员来说。
九宫格红绿灯添加了“不亮灯”,表示默认状态,是用来表示让行的,比如右转默认状态,车可以走,但是要注意一下给直行让行。
对于左转,默认状态下,能不能通行需要看中间灯的状态,对于右转,默认状态是可以通行
是不是感觉有些啰嗦,来来来,just show the CODE
这个表示,左转停,直行(中间)行,右转行
还是用程序来表示吧,
state 表示灯的状态,灯的状态值
#define RED 0
#define GREEN 2
#defind OFF 1
对于左侧信号灯,绿灯行,红灯停,默认状态时看中间的灯
bool leftGo() {
if (state == RED) return false;
if (state == GREEN) return true;
return state_MID; // 默认状态下,由中间灯的状态决定
}
或者合并为一个语句
bool leftGo() {
return (state > OFF) || state_MID == GREEN;
}
对于中间的灯,就比较清楚,直接路灯行,红灯停
return state == GREEN;
对于右侧灯,绿灯行,红灯停,默认状态也是行
bool rightGo() {
if (state == RED) return false;
if (state == GREEN) return true;
return true; // 默认状态下,可以通行
}
或者合并
bool rightGo() {
return (state >= OFF) ;
}
有了这个判断思维,再看看下面的几个情况,就难不倒我们了,
结果:行 行 行
结果:行 行 停
结果:停 停 行
有了这个判断程序,只要灯不坏(同时出现红灯和绿灯),就难不住我们。
大家要是还是觉得不好识别的话,就使用一个程序来自动识别提示吧,^_^
参考资料: