上一个版本为了方便,我是让小人穿太空服在二氧化碳环境中吃饭。这个版本太空服大削,还这样就太影响效率了。那新的餐厅要怎么设计呢?我想应该满足以下几个条件:
1. 氧气环境
2. 食物制作量既能满足每天的需求,又不会积累过多以至腐烂
3. 每天定时开放,避免从遥远的工作地点回家吃饭这种低效率事件
4. 因为冰箱和食物盒有取不到食物的bug,这两样东西不能用
基于以上四点试验了几种方案,下面把最简洁的一种分享给大家。首先看图:

最右边的门是公共通道,只有每天早上开启:

最左边的门只有厨师可以自由通过,其他人只能出不能入(防止把没吃完饭的小人关住)。

食物制作部分的电路结构:



每天早餐结束后,时钟会开启电烤炉,厨师进行烹饪工作,食物慢慢累积,最后重量板在食物足够时切断电烤炉供电。
电路结构很简单,关键之处在于重量板临界条件的设置。厨师的重量是固定的30公斤,一份食物(任意种类)是1公斤,如果我们像图中将条件设为“高于33公斤”,最终得到的食物将在2.1—3份之间浮动。有人可能奇怪,不应该是3.1—4份之间才对吗?这是因为重量板的一个bug,会把正烹饪还未成型的的食物重量也加进去,所以地板上实有33公斤的时候,它测出有34公斤,切断了电源。
现在设小人数量为n,一份食物数量为Q,那么每天需要的食物份数m=F(n*1000/Q)。这里F()的含义为向上取整。举例来说,有7个小人,主食为烤刺果,那么每天需要食物份数为m=F(7*1000/2000)=F(3.5)=4。我们把重量板设为“高于34公斤”就可以了。注意到m稍微超出了需求一点,这样食物会不会越积越多而腐烂呢?不会的。如果地板上有残留的不到一份食物,那么厨师每天只会制作m-1份新食物,而m-1份略少于需求,终有一天会把残留食物吃光,从下一天开始再制作m份全新食物,这样周而复始的循环。
如果有两种以上的主食,比如3个小人吃烤刺果,3个小人吃霜凉包,那就设两个电烤炉,分别计算临界值即可。如图:

注意这里不要图省事用同一个时钟传感器的信号,会导致两个锁存器的值互相干扰。
自从用了这种设计,就再也没有操心过餐厨问题了,感兴趣的话不妨一试。
1. 氧气环境
2. 食物制作量既能满足每天的需求,又不会积累过多以至腐烂
3. 每天定时开放,避免从遥远的工作地点回家吃饭这种低效率事件
4. 因为冰箱和食物盒有取不到食物的bug,这两样东西不能用
基于以上四点试验了几种方案,下面把最简洁的一种分享给大家。首先看图:

最右边的门是公共通道,只有每天早上开启:

最左边的门只有厨师可以自由通过,其他人只能出不能入(防止把没吃完饭的小人关住)。

食物制作部分的电路结构:



每天早餐结束后,时钟会开启电烤炉,厨师进行烹饪工作,食物慢慢累积,最后重量板在食物足够时切断电烤炉供电。
电路结构很简单,关键之处在于重量板临界条件的设置。厨师的重量是固定的30公斤,一份食物(任意种类)是1公斤,如果我们像图中将条件设为“高于33公斤”,最终得到的食物将在2.1—3份之间浮动。有人可能奇怪,不应该是3.1—4份之间才对吗?这是因为重量板的一个bug,会把正烹饪还未成型的的食物重量也加进去,所以地板上实有33公斤的时候,它测出有34公斤,切断了电源。
现在设小人数量为n,一份食物数量为Q,那么每天需要的食物份数m=F(n*1000/Q)。这里F()的含义为向上取整。举例来说,有7个小人,主食为烤刺果,那么每天需要食物份数为m=F(7*1000/2000)=F(3.5)=4。我们把重量板设为“高于34公斤”就可以了。注意到m稍微超出了需求一点,这样食物会不会越积越多而腐烂呢?不会的。如果地板上有残留的不到一份食物,那么厨师每天只会制作m-1份新食物,而m-1份略少于需求,终有一天会把残留食物吃光,从下一天开始再制作m份全新食物,这样周而复始的循环。
如果有两种以上的主食,比如3个小人吃烤刺果,3个小人吃霜凉包,那就设两个电烤炉,分别计算临界值即可。如图:

注意这里不要图省事用同一个时钟传感器的信号,会导致两个锁存器的值互相干扰。
自从用了这种设计,就再也没有操心过餐厨问题了,感兴趣的话不妨一试。