其他分享
首页 > 其他分享> > 7 Billion Humans橙色和红色部分

7 Billion Humans橙色和红色部分

作者:互联网

Compulsory Office Romance

工作第46年,我终于要结婚了。
我已经拥有了记忆,这样的经历绝对是真实的。但是我和她都没有表达爱意的功能,不能体会到什么是浪漫。

还好公司了解到这个情况后为我们两个准备了培养感情的机会。
主管把我们叫去Love楼层,第一件事是教会我们两个相互传递信息。
在这里插入图片描述
在这里插入图片描述

Automated Pleasantries

在这里插入图片描述

Community Training Day

  1. 区分谁是instructor,谁是普通员工
  2. 在instructor做完后向所有人发Go!,其他人要一直竖着耳朵听着直到听见Go!

在这里插入图片描述

Double Shred Destruction

这个地方的问题是如何让在左右的人听到消息后按顺序取粉碎方块。
左边第一个\rightarrow→右边第一个\rightarrow→左边第一个\dots

但是,最好的解法并不是通知另一端的worker,而是通知身边的。
在这里插入图片描述
这里利用了,左边的人到粉碎机的距离比右边的短。这样就达成了,先左后右。

Cubical Communication

左下角方块的数字表示粉碎方块的顺序,从左到右循环。

  1. 第一轮粉碎后,每个workermem1应该为自己方块的数字
  2. 另外用一个mem4来恢复mem1

在这里插入图片描述

也可以不用tell,listen,不用更改mem1,只需要用nearst比照最近的方块就行了。
在这里插入图片描述
第一轮粉碎后,只需等待两轮就行,即在第4个丢方块的时候,第一个刚把方块捡起来。

Identify yourselves

确认自己站在第几个,然后重写面前的方块。

也可以使用tell,listen
下面这种不使用其的方法是利用了判断的时间差。
在这里插入图片描述

The Mode Code

这关需要统计0~5每个数字方块出现的次数。

可以横着遍历所有方块来统计,也可以竖着遍历所有方块来统计。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

我是用的竖着上去的方法,每一列都是回到下面再竖着上去统计。这是为了减少相同代码,但循环就多、复杂了起来。

Terrain Leveler

在这里插入图片描述
求出所有方块的平均值并把所有方块重写为这个平均值。
思路是

  1. 一路上去求每一列的和
  2. 从右到左把值加给左边的
  3. 最左边的把总和除49一路赋给右边
  4. 都向下重写平均数

在这里插入图片描述
在这里插入图片描述

100 Cubes on the Floor

这关需要把地板上100个方块赋值上0~99的数字。
其中一种方法是先让10个worker都到方块右端排成一列,然后依次从上至下向左移动去赋值。
在这里插入图片描述
在这里插入图片描述

下面介绍另一种更快的方法。每个worker向左向上走,直到在上面一行排着,然后处理完第一行的数据后,每下一行加10.
在这里插入图片描述
在这里插入图片描述

Data Flowers

按照现在的机器人生命的平均岁数,我已经到了快要退休的红色时期了。公司为了照顾老员工,给我们又增加了新功能。其实是想在我们退休前,压榨出最后的价值。
新的功能不甚有趣,forEachDir可以判断8个方向的内容。
在这里插入图片描述
拿起下面的方块,向前走,走到方块组的中央,用forEachDir扫描8个方向的方块,每次扫描都会把结果放在一个内存里。计算完,把总和写入手上拿着的方块。

在这里插入图片描述

Local Maximums

扫描一圈,记录最大值的方块是哪个。
现在我明白了,方块被使用时除了数值信息还有位置信息。在一系列自动操作中,都是当做对象用的
在这里插入图片描述

Neighborly Sweeper

左边的向右走,右边的向左走。遇到脚下有方块时,用**forEachDir*识别周围有几个方块,把邻近方块数写入脚下的方块。

在这里插入图片描述

标签:Billion,右边,forEachDir,Humans,worker,mem1,左边,橙色,方块
来源: https://blog.csdn.net/weixin_41374099/article/details/87653704