交通灯系统行为——黑客排名代码挑战

模拟交通灯系统的 CLI 脚本

行为:

1) 06:00-23:00

  • 绿灯亮 30 秒

  • 绿灯和黄灯 5 秒

  • 红色 40 秒

  • 回到绿色

2) 23:00-06:00期间

  • 黄灯闪烁(关闭 2 秒/开启 1 秒)

预期输出:

  • 每秒当前灯光的文本表示


汪汪一只猫
浏览 131回答 3
3回答

跃然一笑

<?phpif (PHP_SAPI !== 'cli') exit("Not allowed here..");$hour&nbsp; &nbsp;= date("H");while (true) {&nbsp; &nbsp; // 6am to 11pm&nbsp; &nbsp; if($hour >= 6 && $hour < 23){&nbsp; &nbsp; &nbsp; &nbsp; $j = 30;&nbsp; &nbsp; &nbsp; &nbsp; for ($i=0; $i < $j; $i++) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo "green light [".($i+1)."]\n";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sleep(1);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; $j = 5;&nbsp; &nbsp; &nbsp; &nbsp; for ($i=0; $i < $j; $i++) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo $i%2 ? "green" : "yellow";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo " light [".($i+1)."]\n";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sleep(1);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; $j = 40;&nbsp; &nbsp; &nbsp; &nbsp; for ($i=0; $i < $j; $i++) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo "red light [".($i+1)."]\n";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sleep(1);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; if($hour < 6 || $hour >= 23){&nbsp; &nbsp; &nbsp; &nbsp; $j = 2;&nbsp; &nbsp; &nbsp; &nbsp; for ($i=0; $i < $j; $i++) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo "yellow light off [".($i+1)."]\n";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sleep(1);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; $j = 1;&nbsp; &nbsp; &nbsp; &nbsp; for ($i=0; $i < $j; $i++) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo "yellow light on [".($i+1)."]\n";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sleep(1);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}:-D添加了更新 cli 输出而不是打印新行的不同版本。<?phpif (PHP_SAPI !== 'cli') exit("Not allowed here..");$hour&nbsp; &nbsp;= date("H");echo "Light |State|Sec\n";while(true){&nbsp; &nbsp; // 6am to 11pm&nbsp; &nbsp; if($hour >= 6 && $hour < 23){&nbsp; &nbsp; &nbsp; &nbsp; $j = 30;&nbsp; &nbsp; &nbsp; &nbsp; for ($i=0; $i < $j; $i++) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; output("green","on",$i+1);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; $j = 5;&nbsp; &nbsp; &nbsp; &nbsp; for ($i=0; $i < $j; $i++) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ltcol = $i%2 ? "green" : "yellow";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; output($ltcol,"on",$i+1);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; $j = 40;&nbsp; &nbsp; &nbsp; &nbsp; for ($i=0; $i < $j; $i++) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; output("red","on",$i+1);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; // 11pm to 6am&nbsp; &nbsp; if($hour < 6 || $hour >= 23){&nbsp; &nbsp; &nbsp; &nbsp; $j = 2;&nbsp; &nbsp; &nbsp; &nbsp; for ($i=0; $i < $j; $i++) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; output("yellow","off",$i+1);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; $j = 1;&nbsp; &nbsp; &nbsp; &nbsp; for ($i=0; $i < $j; $i++) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; output("yellow","on",$i+1);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}function output($light,$state,$sec){&nbsp; &nbsp; $str = str_pad($light, 6, ' ', STR_PAD_RIGHT).' '.str_pad($state, 5, ' ', STR_PAD_RIGHT).' '.str_pad($sec, 2, ' ', STR_PAD_RIGHT);&nbsp; &nbsp; echo "\033[16D";&nbsp; &nbsp; echo $str;&nbsp; &nbsp; sleep(1);}

料青山看我应如是

<?phpif (PHP_SAPI !== 'cli') exit("Not allowed here..");$hour&nbsp; &nbsp;= date("H");while (true) {// 6am to 11pmif($hour >= 6 && $hour < 23){&nbsp; &nbsp; $j = 30;&nbsp; &nbsp; for ($i=0; $i < $j; $i++) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; echo "green light [".($i+1)."]\n";&nbsp; &nbsp; &nbsp; &nbsp; sleep(1);&nbsp; &nbsp; }&nbsp; &nbsp; $j = 5;&nbsp; &nbsp; for ($i=0; $i < $j; $i++) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; echo $i%2 ? "green" : "yellow";&nbsp; &nbsp; &nbsp; &nbsp; echo " light [".($i+1)."]\n";&nbsp; &nbsp; &nbsp; &nbsp; sleep(1);&nbsp; &nbsp; }&nbsp; &nbsp; $j = 40;&nbsp; &nbsp; for ($i=0; $i < $j; $i++) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; echo "red light [".($i+1)."]\n";&nbsp; &nbsp; &nbsp; &nbsp; sleep(1);&nbsp; &nbsp; }}if($hour < 6 || $hour >= 23){&nbsp; &nbsp; $j = 2;&nbsp; &nbsp; for ($i=0; $i < $j; $i++) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; echo "yellow light off [".($i+1)."]\n";&nbsp; &nbsp; &nbsp; &nbsp; sleep(1);&nbsp; &nbsp; }&nbsp; &nbsp; $j = 1;&nbsp; &nbsp; for ($i=0; $i < $j; $i++) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; echo "yellow light on [".($i+1)."]\n";&nbsp; &nbsp; &nbsp; &nbsp; sleep(1);&nbsp; &nbsp; }}}
打开App,查看更多内容
随时随地看视频慕课网APP