宿舍楼灯光做的贪吃蛇游戏是怎样实现的
大约几年前吧,第一次看到人家用灯光表演的贪吃蛇时很是惊奇,当时想了很久也没想明白人家是怎么做的,当时跟一个朋友讨论时,觉得最可行的办法就是通过线路改造实现每个房间灯光的统一控制,然后通过单片机编程来实现。这样精度自然没问题,速度也能做到足够快,但成本是个极大的问题:这么一座大楼,且不说别的费用,只是每个房间单独接线的费用就高得吓人,对学生来说这个方法太不现实了(除非本来宿舍楼每个房间本来就是单独控制的,但正常说来一般楼宇都是每层一个开关的)
这几天下班时经常路过某高校的学生宿舍,看到那一排排的窗口时又想到了贪吃蛇的问题,依然是想不到简单易行的办法。
头痛了几天后忽然想到放狗搜一下试试,不过,搜的结果整体说来还是比较失望的,大家总是惊叹于这些场面的壮观,却很少有人关心是怎样实现的,偶尔有一两个人问,也都是被当做PLC编程来打发掉了。
不过,收获还是有的。一方面找到一个宿舍灯光版俄罗斯方块的“后台”视频,从此视频中可以看到全是通过人来控制的,一人控制一到两个房间的灯光;旗语来进行走廊内的指挥;楼层之间有的是靠人的跑动;主控室与强电间(?)之间可能是对讲机。
不过,这个因为是横向运动的,一个人控制两个房间还是比较现实的,但象另一个国内高校(?)用灯光表演的俄罗斯方块那样纵向的就不是那么好协调了。
别一方面呢,在一个讨论这个问题的帖子中(17楼)发现一个网友的想法可实践性比较强一些:搞二十个人站在每层楼楼梯口同声报数,每个宿舍找个人对着纸,到哪个数开灯,到哪个数关灯。
感觉这应该是最可行的一种办法了:
- 第一步最麻烦,需要几个人做一张大表,把第几秒哪个窗口灯是亮的全都列出来。
- 把这个大表拆成N(N=窗口数)子表,每个表中只显示对应窗口第几秒是亮的。
- 对表。
- 每层楼梯口站一个人大声同步报数。
- 每个房间门口一个人,拿着自己房间窗口对应的表。报到表上有的秒数值时开灯,表上没有的秒数值关灯。
这样一来只是排表的人最麻烦,其他的人只需要按表做自己的事就可以了。几次排练后就可以做得比较整齐了。另外还有一个问题就是在“贪吃蛇”中蛇头跟目标窗口是红色的,怎么做呢?——一般每个房间都有两个开关分别控制两个灯,只要把其中一个灯用红纸包住就变成红的了。另外窗口表上需要开红灯的秒数用红色标出,操作时遇到红数值时开红灯,否则开白灯,表上没有的秒数值关灯——OK,简单易行的方法出来了!
PS:写完以上文字后突然想起来一个笑话:
据说,在美国和苏联大搞航天竞赛的时候,美国的科学家们发现,人们在地球上使用的钢笔和圆珠笔都不能在微重力环境下使用。于是,NASA的集数十位专家之力耗资数百万美元研究出了一种可以在微重力环境下使用的圆珠笔。而俄国人呢,找了一位研究员用了三天时间拿出了一个解决方案:让他们的宇航员都使用铅笔。
