为自己的Scratch作品拍一个照Scratch?这不是编程猫吗?是,编程语言里面我就只会Scratch的“三脚猫功夫”。
最近想用Scratch模拟十字路口红绿灯,通过红绿灯的秒数来计算出平均时间,现在还在做……
红绿灯不是很简单吗?它有什么好难的呢?
可能是我把逻辑搞错了吧……首先刚开始他会给,左转和直行的车道赋一个原始车数,过两秒在随机车道上添加随机车数,然后再根据红绿灯的描述减少车数。
很简单?关键难就难在平均时间。车道的平均时间我计划是……(怎么算还没想出来……)
现在还在做,等会会发生一些有趣的事情,等会再更新吧。


2021.10.03下午更新补充
好吧,昨天晚上我尝试想了好久,才大概想出来一个算法。
某一个车道的平均时间=(上次红绿灯剩下来的车数x红绿灯的秒数x4+1+0.5x本灯通过的车数)/本灯通过车数
我是什么得出来就算法的?之前没通过的车等待了四个红绿灯周期,再加上这次通过的时间,就成了某一车道的平均等待时间。
很科学?于是我作死地将红绿灯秒数设为1。因为我根据人的反应时间设置了绿灯过去一秒才会减少车数,所以1秒的红绿灯根本无法让车通行。嗯?嗯?嗯?平均时间为4?
黑人问号脸
我一下大彻大悟。
当红绿灯秒数为1时,平均时间=(车道车数14+0.5*0)/车道车数=4
原来是我当初没有考虑到有些车辆在等红绿灯的时候会等三次,甚至会像这个例子一样极端。
看来等会儿在修代码的时候,就应该添加对三次的支持。(为什么没有四次?你觉得一个会让你等4次的红绿灯是一个满意的红绿灯吗?)


10.4更新
昨天晚上给脚本添加了“早晚高峰”功能,然后再按照老师的要求对界面初步的美化,不过老师还是不满意。
等会晚上要对平均等待时间三次进行支持,放弃四次。老师对此建议“队列思想”,不太懂,等会再琢磨琢磨。