搜索: 您的位置:
酷987 > 教程攻略 > 手机游戏攻略 > 70亿人攻略大全 七十亿人全关卡双星代码通关攻

70亿人攻略大全 七十亿人全关卡双星代码通关攻

[来源:未知 作者:永春小孩 发表时间:2021-06-21 11:32 阅读次数:]

  70亿人是一款逻辑编程游戏,玩家们需要使用代码来安排员工们工作喔,很多玩家可能想知道70亿人攻略大全、七十亿人全关卡双星通关攻略呢,酷987游戏网为大家带来了介绍。


【通关原则】

·指令数量挑战:

规则:使用的代码行数少于系统规定的行数

代码尽量复用就不说了,是程序员都懂,只针对游戏本身的规则注意以下原则

1.选取简单的方案,尽量通过重复简单动作达成

2.不要追求代码优雅,比如确保工人不死或所有动作完成后工人动作结束,除非工人乱动会影响后续结果

3.如果必要,不写判断。

比如拿起一个方块之前如果不判断手中无方块并且地上有方块,工人就会报一个错误,这会增加执行时间。即使因此导致某些情况下代码执行超时也无所谓,反正有任意一次能执行成功就可以了

·速度挑战:

规则:在一倍速下运行所需要的真实时间。由于有些关卡存在随机数和随机行走问题导致时间不确定,取25次的平均值。

1.可以选取稍微复杂但更有效率的方案,比如需要多人配合的。但不要追求复杂。很多情况下简单的也是有效的。

2.如无必要,不做判断。判断也需要时间,尤其是需要与周围进行对比的。

如果需要根据不同的初始位置执行不同的动作,那么最好在一开始就做好判断,而不要在不断的问“我是谁?”的过程中耗尽时间

3.一切为了效率,即使偶尔会执行失败,只要平均时间短就足够了

【名词解释】

为方便书写和避免歧义,以下代码采用C语言语法书写,一句代码一行,结尾不写分号

对于游戏中自定义物体和函数,将用代码代替,代码中将不会出现中文

以英文版游戏中的命名方式为基础全部做了简化处理

反正你也没法把这些代码直接粘到游戏里去,能看懂就行了

命名方式如下

【方位和物体】

上→n //short for ‘north’

下→s //short for ‘south’

左→w //short for ‘west’

右→e //short for ‘east’

中→c //short for ‘center’

左上→nw

左下→sw

右上→ne

右下→se

任意方向→anyDir

我的物件→myItem

某个东西→something //完全等同于非空,是个多余的东西,以下代码绝对不会用到

无→null

一个数据方块→dataCube

一名工人→worker

一个洞→hole

一堵墙→wall

粉碎机→shredder

打印机→printer

记忆体1→mem1

记忆体2→mem2

记忆体3→mem3

记忆体4→mem4

【命令】

行走→step+方向

拿起→pickUp

放下→drop

写下→write

给出→giveTo

拿取→takeFrom

最接近的→nearest

计算→=

设置为→=

如果→if

否则→else

结束如果→endif

跳转→goto

跳转到→loop

举例:

loop 1

goto 1

//注意数字是一一对应的,涉及到多个跳转的时候要看好

//以下代码涉及到的跳转一定是大跳转包含小跳转,不存在交叉跳转的情况

//如果出现此情况,说明抄代码的时候抄窜行了

终止→end //基本上是个鸡肋,以下基本不会用到此命令(有个别极特殊情况不得不用)

//我一直认为好的程序完全可以用if保证程序进入正确的分支,而不使用end

//end除了让可读性变差,让人摸不清思路,没有什么好的作用

巡视→forEachDir as

巡视结束→endForEach

告诉→tell

聆听→listen

【比较和赋值】

= →等号右边的值给左边

== →相等

!= →不等

> →大于

>= →大于或等于

< →小于

<= →小于或等于

and→和

or →或

【计算】

加法→+

减法→-

乘法→*

除法→/

【其他说明】

// →注释符,表示此行文字是写给玩家看的,不执行

关于行数计算,成对出现的如goto和loop,算做一行,if和endif算做一行

但如果出现else则单独算一行

【通关代码】

//不知道制作团队怎么考虑的,分支关卡编号不连续

//为了读者找起来方便,以下关卡顺序依然按照编号顺序,而不按分支顺序

//以下代码全部经过测试,但因为是手打,不保证没有错漏,仅供参考

1.你被录用了

//过场动画


第 2 页 70亿人第2关怎么过 第二关欢迎新员工双星代码攻略

2.欢迎新员工

//指令数量挑战 and 速度挑战 //3行 1s

//前几关的pickUp都不带方向参数,等同于后面的pickUp c

step s

pickUp

drop


第 3 页 70亿人第3关怎么过 第三关运输小队双星代码攻略

3.运输小队

//指令数量挑战 and 速度挑战 //5行 2s

step s

pickUp

step s

step s

drop


第 4 页 70亿人第4关怎么过 第四关长途运输双星代码攻略

4.长途运输

//指令数量挑战 and 速度挑战 //4行6s

step e

pickUp

loop 1

step e

goto 1


第 5 页 70亿人第5关怎么过 第五关重要的抉择双星代码攻略

5.重要的抉择

//指令数量挑战 and 速度挑战 //5行 2s

if w==dataCube

loop 1

step w

goto 1

endif

loop 2

step e

goto 2


第 6 页 70亿人第6关怎么过 第六关小小驱虫工1双星代码攻略

6.小小驱虫工1

//指令数量挑战 and 速度挑战 //9行 3s

step s

step sw

step sw

step se

step e

step se

step s

step s

pickUp


第 7 页 70亿人第7关怎么过 第七关整理房间双星代码攻略

7.整理房间

//指令数量挑战 //5行 14s

loop 1

if s!=hole

pickUp s

step s

goto 1

endif

drop

//速度挑战 //9行 5s

step s

loop 1

step s

if s!=dataCube

goto 1

pickUp s

loop 2

step s

if s!=hole

goto 2

drop

8.员工激励大师

//过场动画


第 8 页 70亿人第9关怎么过 第九关对角巷双星代码攻略

9.对角巷

//指令数量挑战 and 速度挑战 //5行 5s

pickUp s

loop 1

step s

if nw!=dataCube

goto 1

drop

//速度挑战 //26行 3s

if se != dataCube

pickUp s

step s

step s

step s

step s

else

if se != dataCube

pickUp s

step s

step s

step s

else

if se != dataCube

pickUp s

step s

step s

else

if se != dataCube

pickUp s

step s

else

pickUp s

endif

endif

endif

endif

step s

step s

drop


第 9 页 70亿人第10关怎么过 第十关疏散演习双星代码攻略

10.疏散演习

//10关之前都是教学关,比较简单。10关开始代码变得复杂起来

//指令数量挑战 //9行

loop 1

if c==1

step n

endif

if c==2

step e

endif

if c==3

step s

endif

if c==4 or c==null

step w

endif

goto 1

//速度挑战 //27行 14s

//这里有个技巧,或者说可以利用的规则:

//行走的时候如果前面是个工人,则会等待;

//如果前面是个洞,当然会掉下去

//而如果前面是墙壁、打印机、粉碎机之类无法行走又无法掉落的物体,则会自动结束行走

//如此一来,如果想让许多人走同样的路线,可以让他们先向某个角落集合

//如果碰到墙壁,自动会停止

//所有人先在右下角集合,这样不管原来在哪里,现在都在右下角了

step e

step e

step e

step e

step s

step s

step s

step s

//然后按照右下角的路径,直接走到目的地,无需做任何一个判断

step w

step w

step w

step w

step w

step nw

step nw

step sw

step s

step sw

step w

step w

step w

step nw

step n

step n

step nw

step n

step n


第 10 页 70亿人第11关怎么过 第十一关注入数据1双星代码攻略

11.注入数据1

//指令数量挑战 //5行 10s

pickUp s

loop 1

step s

if c==dataCube or w!=dataCube

goto 1

endif

drop

//速度挑战 //8行 6s

pickUp s

step s

step s //提前走两步

loop 1

step s

step s //每次走2步

if c==dataCube or w!=dataCube

goto 1

endif

drop


第 11 页 70亿人第12关怎么过 第十二关拉开拉链双星代码攻略

12.拉开拉链

//指令数量挑战 and速度挑战 //8行 4s

pickUp c

loop 1

if w==wall or sw==worker or se==worker

step n

drop

endif

if e==wall or nw==worker or ne==worker //两头同时拉开

step s

drop

endif

goto 1


第 12 页 70亿人第13关怎么过 第十三关注入数据2双星代码攻略

13.注入数据2

//指令数量挑战 and速度挑战 //7行 15s

pickUp s

loop 1

goto s

if n==dataCube and se==null or w==worker

step e

endif

if w!=dataCube or c!=null

goto 1

endif

drop


第 13 页 70亿人第14关怎么过 第十四关粉碎机入门双星代码攻略

14.粉碎机入门

//指令数量挑战 //4行 4s

pickUp s

step s

step s

giveTo s

//速度挑战 //5行 2s

if s==dataCube //员工自·杀太浪费时间,加个判断就好了

pickUp s

step s

step s

giveTo s

endif


第 14 页 70亿人第15关怎么过 第十五关粉碎流水线双星代码攻略

15.粉碎流水线

//指令数量挑战 and速度挑战 //9行 23s

loop 1

loop 2

step n

if n==null

goto 2

endif

pickUp n

loop 3

step s

if s!=shredder

goto 3

endif

giveTo s

goto 1


第 15 页 70亿人第16关怎么过 第十六关小小驱虫工2双星代码攻略

16.小小驱虫工2

//指令数量挑战 //8行 12s

loop 1

step s

if c!=dataCube

goto 1

endif

pickUp c

loop 2

step e

if s== shredder

giveTo s

endif

goto 2

//速度挑战 //14行 8s

step s

step s

step s

loop 1

step s

if c!=dataCube

goto 1

endif

pickUp c

step e

step e

step e

step e

step s

step e

give to e


第 16 页 70亿人第17关怎么过 第十七关内容产出双星代码攻略

17.内容产出

//指令数量挑战 and速度挑战 //1行 2s

pickUp s


第 17 页 70亿人第18关怎么过 第十八关独特偏爱双星代码攻略

18.独特偏爱

//指令数量挑战 and速度挑战 //6行 12s

pickUp w

step sw

loop 1

if s!= shredder

step se

goto 1

endif

giveTo s

//速度挑战 //12行 7s

pickUp w

step sw

step se

step se

step se

step se

step se

step se

step se

step se

step se

giveTo s


第 18 页 70亿人第19关怎么过 第十九关内容产出问题修复攻略

19. 内容产出-问题修复

//指令数量挑战 and速度挑战 //4行 26s

step e

loop 1

takeFrom sw

giveTo se

goto 1


第 19 页 70亿人第20关怎么过 第二十关反转流水线双星代码攻略

20. 反转流水线

//指令数量挑战 and速度挑战 //9行 11s

pickUp s

loop 1

if sw!=hole

step w

goto 1

endif

step s

loop 2

if e!=hole and e!=dataCube

step e

goto 2

endif

drop

//最快速度 //58行 4s

//由于需要做许多嵌套判断,为了书写方便,也为了读者不会将不同的if看窜行

//这里将不同的分支用不同的if括起来,并使用end指令直接终止

//而不把后续代码写进else里

if sw!=dataCube or se!=dataCube //两侧的最先走

pickUp s

if sw==hole

step se //避免路线交叉,靠墙走

step se

step e

step e

step e

step e

step ne

else

step sw

step sw

step w

step w

step w

step w

step nw

endif

drop

end

endif

if sw!=dataCube or se!=dataCube //第二位再走

pickUp s

if e==worker

step s //避免路线交叉,靠墙走

step se

step e

step e

step e

step ne

else

step s

step sw

step w

step w

step w

step nw

endif

drop

end

endif

if sw!=dataCube or se!=dataCube //第三位

if w==worker

pickUp s //这里要先判断再拿起,否则周围人都走光了没法知道自己是谁

step e //直接走最短路线

step e

step se

else

pickUp s

step w

step w

step sw

endif

drop

end

endif

step s//最中间直接走

if e==dataCube

pickUp e

drop

end

endif

pickUp w

drop


第 20 页 70亿人第21关怎么过 第二十一关大数据双星代码攻略

21. 大数据

//指令数量挑战 and速度挑战 //8行 26-27s

loop 1

if myItem!=dataCube and s!=printer

step s

goto 1

endif

loop 2

takeFrom s

if myItem<50

giveTo sw

step e

goto 2

endif

//速度挑战 //10行 22-24s

step s

step s

step s

step s

loop 1

takeFrom s

step w

if myItem<50

giveTo s

step e

goto 1

endif


第 21 页 70亿人第22关怎么过 第二十二关数字大逃杀双星代码攻略

22. 数字大逃杀

//指令数量挑战 and速度挑战 //6行 9s

pickUp s

loop 1

if myItem<e or myItem<w

loop2

step s

goto2

endif

step e

goto 1


第 22 页 70亿人第23关怎么过 第二十三关排序大厅双星代码攻略

23. 排序大厅

//指令数量挑战 and速度挑战 //6行 24s

pickUp s

loop 1

if myItem>e

step e

endif

if myItem<w

step w

endif

goto 1

//速度挑战 //8行 17s

//思路:如果一个工人向右走了,那么他就不可能立即又向左走

//大概率是继续向右走,或者暂时停下来

//所以分别做个循环,判断一下是否需要连续走,比每走一步都回头看,肯定是要快的

pickUp s

loop 1

loop 2

if myItem>e

step e

goto 2

endif

loop 3

if myItem<w

step w

goto 3

endif

goto 1


第 23 页 70亿人第24关怎么过 第二十四关数据接力1双星代码攻略

24. 数据接力1

//指令数量挑战 //7行 87s

loop 1

if s==printer and myItem!=dataCube

takeFrom s

endif

if myItem!=dataCube and w>=0

takeFrom w

endif

if s==shredder and myItem==dataCube

giveTo s

endif

goto 1

//速度挑战 //11行 49s

//思路就是先判断下方是什么,然后单独做循环,避免不断的追问“我是谁”

if s==printer

loop 1

takeFrom s

giveTo e

goto 1

endif

if s==shredder

loop 2

if myItem==dataCube

giveTo s

endif

goto 2

loop 3

if myItem==dataCube

giveTo e

endif

goto3


第 24 页 70亿人第25关怎么过 第二十五关记忆初体验双星代码攻略

25. 记忆初体验

//指令数量挑战 //5行 139s

mem4= nearest shredder

loop 1

mem1= nearest dataCube

pickUp mem1

giveTo mem4

goto 1

//速度挑战 //6行 132s

mem4= nearest shredder

loop 1

mem1= nearest dataCube

pickUp mem1

if myItem==dataCube//加个判断,避免工人自·杀,自·杀太耗费时间

giveTo mem4

goto 1

endif


第 25 页 70亿人第26关怎么过 第二十六关数据接力2双星代码攻略

26. 数据接力2

//指令数量挑战 //9行 116s

loop 1

if s==printer or s>=0

takeFrom s

endif

if e<50 and myItem!=dataCube

takeFrom e

endif

if w>=50 and myItem!=dataCube

takeFrom w

endif

if s==shredder and myItem==dataCube

giveTo s

endif

goto 1

//速度挑战 //23行 67s

//思路跟接力1一样,每个角色只关心自己的事情,不要为别人的事情操心

if s==printer

loop 1

takeFrom s

giveTo n

goto 1

endif

if nw==worker and ne==worker

loop 2

if myItem<50

giveTo nw

endif

if myItem>=50

giveTo ne

endif

goto2

endif

if s==shredder

loop 3

if myItem==dataCube

giveTo s

endif

goto3

endif

loop 4

if myItem<50

giveTo w

endif

if myItem>=50

giveTo e

endif

goto 4

27. 健身计划

//过场动画


第 26 页 70亿人第28关怎么过 第二十八关神经回路双星代码攻略

28. 神经回路

//指令数量挑战 and速度挑战 //4行 51s

mem1= nearest dataCube

mem2= nearest shredder

pickUp mem1

giveTo mem2


第 27 页 70亿人第29关怎么过 第二十九关指纹认证双星代码攻略

29. 指纹认证

//指令数量挑战 and速度挑战 //5行 60s

mem2= nearest shredder

loop 1

mem1= nearest dataCube

pickUp mem1

giveTo mem2

goto 1


第 28 页 70亿人第30关怎么过 第三十关铺满地面双星代码攻略

30. 铺满地面

//指令数量挑战 //5行 864s (≈+∞)

men1=printer

loop 1

takeFrom mem1

step anyDir

drop

goto 1

//速度挑战 //16行 156-170s

//把路径写死绝对比随机走要快,但是代码也会超过100行,这里就不放出了

mem1= nearest printer

mem2= nearest wall

if e==wall and s==wall//最·右下角的工人单独控制,优先填满右下角最难进入的区域

loop 1

takeFrom mem1

step mem2

loop 2

step anyDir

if c==dataCube

goto 2

endif

drop

goto 1

endif

loop 3

takeFrom mem1

loop 4

step anyDir

if c==dataCube

goto 4

endif

drop

goto 3


第 29 页 70亿人第31关怎么过 第三十一关星罗棋布双星代码攻略

31. 星罗棋布

//指令数量挑战 //7行 265s

mem1= nearest printer

loop 1

takeFrom mem1

mem2= nearest dataCube

step mem2

step sw,se,nw,ne //顺着斜线方向行走

drop

goto 1

//速度挑战 //22行 83s

//找个人先去放左下角最难去到的2个格子

//这里找的是右下角的人,找其他人也一样

mem1= nearest printer

if se==hole

takeFrom mem1

step sw

step sw

step sw

step sw

drop

takeFrom mem1

step sw

step sw

step sw

step s

drop

endif

loop 2

takeFrom mem1

mem2= nearest dataCube

step mem2

loop 3

step sw,se,nw,ne

if c==dataCube//加个判断,避免报错,报错会浪费时间

goto 3

endif

drop

goto 2


第 30 页 70亿人第32关怎么过 第三十二关创造性扭动双星代码攻略

32.创造性扭动

//指令数量挑战 //6行 265s

//随机走动,时间很长

loop 1

step anyDir

if c==0

pickUp c

write 99

drop

endif

goto 1

//速度挑战 //11行 39s

//顺着方块走,一步不浪费

loop 1

if w==0 or e==0

if w==0

step w

else

step e

endif

else

step s

endif

pickUp c

write 99

drop

goto 1


第 31 页 70亿人第33关怎么过 第三十三关资料备份日双星代码攻略

33.资料备份日

//指令数量挑战 and速度挑战 //8行 3s

mem1=w

mem2=e

if mem1>mem2

mem1=e

mem2=w

endif

pickUp mem2

write mem1

drop

//速度挑战 //9行 2s

mem1=w

mem2=e

if mem1>mem2

mem3=mem1 //内存操作比从外部获得数据要快

mem1=mem2

mem2=mem3

endif

pickUp mem2

write mem1

drop


第 32 页 70亿人第34关怎么过 第三十四关查找并摧毁双星代码攻略

34.查找并摧毁

//指令数量挑战 //9行 22s

mem1= nearest shredder

mem2=99

loop 1

step n

if c<=mem2

mem2=c

endif

if n!=wall

goto 1

endif

pickUp mem2

giveTo mem1

//速度挑战 //11行 20s

mem1= nearest shredder

mem2=99

step n

step n//先走两步能省很多时间

loop 1

step n

if c<=mem2

mem2=c

endif

if n!=wall

goto 1

endif

pickUp mem2

giveTo mem1


第 33 页 70亿人第35关怎么过 面向艺术生的计算器入门攻略

35.面向艺术生的计算器入门

//指令数量挑战 and速度挑战 //4行 3s

//这里要先拿起再计算,而不要先用地上的数字进行计算

//因为获取手中的数字比获取地上的数字要快

pickUp s

mem1=myItem+1

write mem1

drop


第 34 页 70亿人第36关怎么过 第三十六关查找并摧毁2攻略

36.查找并摧毁2

//指令数量挑战 //10行 151s

mem1= nearest shredder

loop 1

mem2=99

loop 2

step n

if c<=mem2

mem2=c

endif

if n!=wall

goto 2

endif

pickUp mem2

giveTo mem1

goto 1

//速度挑战 //13行 140-141s

mem1= nearest shredder

loop 1

mem2=99

step n //先走一步省时间

loop 2

loop 3

step n

if c!=dataCube and n!=wall

goto 3

endif

if n!=wall

if c<=mem2

mem2=c

endif

goto 2

endif

pickUp mem2

giveTo mem1

goto 1


第 35 页 70亿人第37关怎么过 第三十七关危险的电子表格攻略

37.危险的电子表格

//指令数量挑战 //13行 34s

loop 1

step e

mem1=mem1+c

if e==hole

step se

if ne==hole

step e

endif

step ne

endif

if e!=wall

goto 1

endif

pickUp c

write mem1

drop

//速度挑战 //14行 32s

loop 1

step e

if c>0 //只加一句判断就可以省去对0和空地做加法所浪费的时间

mem1=mem1+c

endif

if e==hole

step se

if ne==hole

step e

endif

step ne

endif

if e!=wall

goto 1

endif

pickUp c

write mem1

drop


第 36 页 70亿人第38关怎么过 第三十八关查找并摧毁3攻略

38.查找并摧毁3

//指令数量挑战 and速度挑战 //18行 33s

mem1=99

mem3= nearest shredder

mem4= nearest hole

//集体向上走,并找到各自列的最小值

loop 1

step n

if c==dataCube and mem1>=c

mem1=c

endif

if n==dataCube

goto 1

endif

mem2= nearest wall

pickUp mem1

step mem2

//在上面墙集合,去除大数。跟数字大逃杀那关的逻辑一样

//注意不要在下面墙集合,会造成拥堵,互相锁死路径

//存在其他方式去除大值,但亲测都不稳定,有概率造成死锁,虽然时间可能更短

loop 2

if myItem>=w or myItem>e //一面带等号,一面不带,如果有两个数字相同则只死一个

step mem4

endif

mem2= nearest worker

if mem2==worker //判断一下除了自己之外还有没有活人

goto 2

endif

giveTo mem3


第 37 页 70亿人第39关怎么过 第三十九关打印守则1双星代码攻略

39.打印守则1

//指令数量挑战 and速度挑战 //9行 50s

mem1= nearest printer

loop 1

takeFrom mem1

loop 2

step anyDir //注意这里,取到方块后马上走开,不要先计算,否则会堵住别人

if c==dataCube

goto 2

endif

drop

mem2=mem2+1 //放下后没事了再计算

if mem2<5

goto 1

endif

//如果用写死路径代替随机走动,最快可达41秒,但代码量要增大许多倍


第 38 页 70亿人第40关怎么过 第四十关打印守则2双星代码攻略

40.打印守则2

//指令数量挑战 and速度挑战 //10行 55s

mem1= nearest printer

loop 1

takeFrom mem1

loop 2

step anyDir

if c==dataCube

goto 2

endif

drop

mem2=mem2+1

write mem2 //这关代码跟上一关几乎一模一样,只是多了个写入

if mem2<5

goto 1

endif

//如果用写死路径代替随机走动,最快可达42秒,但代码量要增大许多倍


第 39 页 70亿人第41关怎么过 第四十一关图片解密双星代码攻略

41.图片解密

//指令数量挑战 //8行 32s

mem4= nearest hole

pickUp w

loop 1

step w

if mem1<myItem

mem1=mem1+1

goto 1

endif

goto 1

drop

step mem4

//这里有个技巧,mem1没赋值就可以直接进行比较,它初始值是0

//不过要先把赋值写到后面,再写前面的判断,否则判断里面下拉列表没有mem1这一项

//速度挑战 //27行 9s

//我也不想写这么多代码的,但是走一步计算一下实在太慢

//计算和写入最慢,其次是判断周围环境,判断记忆体和手上的方块最快

mem4= nearest hole

pickUp w

step w

step w

//由于所有方块中没有2,这里省略了一次判断,直接从3开始。

//当然如果你想写>=3也是可以的,我是用手机玩的,为了少点一次屏幕

if myItem>2

step w

step w

endif

if myItem>3

step w

endif

if myItem>4

step w

endif

if myItem>5

step w

endif

if myItem>6

step w

endif

if myItem>7

step w

endif

if myItem>8

step w

endif

if myItem>9

step w

endif

if myItem>10

step w

endif

if myItem>11

step w

endif

drop

step mem4


第 40 页 70亿人第42关怎么过 第四十二关整理邮件双星代码攻略

42.整理邮件

//指令数量挑战 //18行 220s

mem3= nearest wall

loop 1

loop 2

step mem3

mem1= nearest dataCube

step mem1

if s==shredder or c!=dataCube

goto 2

endif

pickUp c

mem2=myItem/10

mem4= nearest shredder

step mem4

loop 3

if mem2!=c

if mem2>c

step e

else

step w

endif

goto 3

endif

giveTo s

goto 1

//速度挑战 //50行 143s

mem3= nearest wall

loop 1

loop 2

step mem3

mem1= nearest dataCube

step mem1

if s==shredder or c!=dataCube

goto 2

endif

pickUp c

//注意这里用if代替除以10的计算,要快很多

//二分法做判断,减少判断次数

if myItem>=50

if myItem>=80

if myItem>=90

mem2=9

else

mem2=8

endif

else

if myItem>=60

if myItem>=70

mem2=7

else

mem2=6

endif

else

mem2=5

endif

endif

else

if myItem>=20

if myItem>=30

if myItem>=40

mem2=4

else

mem2=3

endif

else

mem2=2

endif

else

if myItem>=10

mem2=1

else

mem2=0

endif

endif

endif

mem4= nearest shredder

step mem4

if mem2>c //确定方向就闷头往一个方向走,不要左顾右盼

loop 3

if mem2 >c

step e

goto 3

endif

endif

if mem2< c //另一个方向也一样

loop 4

if mem2<c

step w

goto 4

endif

endif

giveTo s

step n //这里向上走5步而不是一直走到墙壁,能省一步是一步。浪费代码但是节约时间

step n

step n

step n

step n

goto 1


第 41 页 70亿人第43关怎么过 第四十三关九九乘法表双星代码攻略

43.九九乘法表

//指令数量挑战 & 速度挑战 //10行 50s

//每个人在哪一行是比较容易计算的,但是在哪一列却不知道,除非先走到最上面

loop 1

if n==0 or n==null

step n

goto 1

endif

mem1=n

loop 2

step s

mem2=mem1+mem2 //只做加法,不做乘法,节省时间

pickUp c

write mem2

drop

goto 2

//速度挑战 //26行 42s

//先向上走13步,直接到头

step n

step n

step n

step n

step n

step n

step n

step n

step n

step n

step n

step n

step n

mem=c

mem2=mem1

step s

step s

pickUp c

write mem1 //第一次别计算,直接写

drop

loop 1 //循环计算写入。

step s

mem2=mem1+mem2

//这里如果不用加法,改用if判断肯定可以更快,但代码实在需要太多

pickUp c

write mem2

drop

goto 1


第 42 页 70亿人第44关怎么过 第四十四关独特的时髦派对攻略

44.独特的时髦派对

//指令数量挑战 and速度挑战 //6行 63s

//这是贴吧里高人留下的代码,但是不能很好的执行,会偶尔出错

//由于是完全随机行走,会有三个工人互相死锁,或者两个同号同时自·杀的情况

//但是总体还是不错的,出错概率不高,而且执行速度非常快,最重要是代码短

//靠这个通关没有问题,如果没有强迫症的话这样就足够了

mem1= nearest hole

pickUp s

loop 1

step n,nw,w,sw,e //随机但避免向右下方走

if myItem==n or myItem==nw or myItem==w

step mem1

endif

goto 1

//以下是我自己写的

//指令数量挑战 //11行 246s

pickUp s

loop 1

if s!=wall //先向下走到墙壁

step s

goto 1

endif

loop 2

if myItem<e or e==null //冒泡排序

step e

endif

if myItem>w

step w

endif

if s==hole and myItem==w //相等则自·杀

step s

endif

goto 2

//速度挑战 //43行 24s

//拿起,向右走9步,靠墙

pickUp s

step e

step e

step e

step e

step e

step e

step e

step e

//向下走9步

step s

step s

step s

step s

step s

step s

step s

step s

step s

//右走4步

step e

step e

step e

step e

//开始分列,一共7个数,7列,正好

if myItem>0

step e

endif

if myItem>1

step e

endif

if myItem>2

step e

endif

if myItem>3

step e

endif

if myItem>4

step e

endif

if myItem>5

step e

endif

//各站一列之后向上走5步,到洞边上

step n

step n

step n

step n

step n

//如果身后有人,跳下去

loop 1

if s==worker

step n

endif

goto 1

45.夜班至黎明

//过场动画


第 43 页 70亿人第46关怎么过 第四十六关强制办公室恋情攻略

46.强制办公室恋情

//指令数量挑战 and速度挑战 //7行 11s

if w==null

loop 1

tell e ‘Hi!’

listen ‘Hi!’

endif

loop 2

listen ‘Hi!’

tell w ‘Hi!’

goto 2


第 44 页 70亿人第47关怎么过 第四十七关全自动寒暄双星代码攻略

47.全自动寒暄

//指令数量挑战 and速度挑战 //3行 7s

if w!=null

listen ‘Morning!’

endif

tell e ‘Morning!’


第 45 页 70亿人第48关怎么过 第四十八关社群培训日双星代码攻略

48.社群培训日

//指令数量挑战 and速度挑战 //6行 7s

if n!=wall

listen ‘Start!’

endif

takeFrom s

mem1= nearest shredder

giveTo mem1

tell all ‘Start!’


第 46 页 70亿人第49关怎么过 第四十九关双向销毁双星代码攻略

49.双向销毁

//指令数量挑战 and速度挑战 //6行 14s

//注意要求,只要求左右间隔开,并没有要求左边销毁前右边不许动

//这里如果用聆听很耽误时间,是绝对完不成任务的

//注意到粉碎机只有1个,工人有8个,不对称,左右一起行动的时候永远是左边的人先到

mem1= nearest shredder

pickUp s

loop 1

if w==worker and e==worker //如果两边都有人,则一直等,等到一面没人了为止

goto 1

endif

giveTo mem1

step e //这一步很关键,如果不跟右边的人交换位置,则后面的人会抢上来,顺序就乱了


第 47 页 70亿人第50关怎么过 第五十关无声交流双星代码攻略

50.无声交流

//指令数量挑战 and速度挑战 //8行 47s

//说是无声交流,只是告诉你可以不使用聆听而完成任务

//用了聆听也可以的,但是代码会多很多

mem1=sw

step e

loop 1

if mem1==1

takeFrom sw

giveTo se

mem1=4

endif

mem1=mem1-1

goto 1


第 48 页 70亿人第51关怎么过 第五十一关公司职级双星代码攻略

51.公司职级

//指令数量挑战 and速度挑战 //7行 26s

step s

pickUp c

loop 1

mem1=mem1+1

if w==dataCube or w==null

write mem1

drop

endif

goto 1

//速度挑战 //58行 6s

if sw!=dataCube

pickUp s

write 1

step s

drop

end

endif

if sw!=dataCube

pickUp s

write 2

step s

drop

end

endif

if sw!=dataCube

pickUp s

write 3

step s

drop

end

endif

if sw!=dataCube

pickUp s

write 4

step s

drop

end

endif

if sw!=dataCube

pickUp s

write 5

step s

drop

end

endif

if sw!=dataCube

pickUp s

write 6

step s

drop

end

endif

if sw!=dataCube

pickUp s

write 7

step s

drop

end

endif

if sw!=dataCube

pickUp s

write 8

step s

drop

end

endif

if sw!=dataCube

pickUp s

write 9

step s

drop

end

endif

pickUp s

write 10

step s

drop


第 49 页 70亿人第52关怎么过 第五十二关统计众数双星代码攻略

52.统计众数

//指令数量挑战 //24行 226s

//记录下当前位置并计算自己应该统计什么数字

mem4= nearest dataCube

step nw

loop 1

if nw==dataCube

step w

mem1=mem1+1

goto 1

endif

loop 2

if mem3==1

step s

else

step n

endif

if c==mem1 and s!=dataCube

goto 3

endif

//这种向下的跳转真让人**

//但是实在搞不懂这个游戏里和或的执行顺序

//又和又或的时候只能这么写

if n!=dataCube

loop 3

step e

mem3=1-mem3 //反转,1变0,0变1

if c==mem1

mem2=mem2+1

endif

endif

if e!=wall

goto 2

endif

pickUp mem4

write mem2

drop

//速度挑战 //58行 143s

//先快速判断自己是数字几

mem4=nearest dataCube

if sw!=dataCube

pickUp s

mem1=0

else

if sw!=dataCube

pickUp s

mem1=1

else

if sw!=dataCube

pickUp s

mem1=2

else

if sw!=dataCube

pickUp s

mem1=3

else

if sw!=dataCube

mem1=4

else

mem1=5

endif

pickUps

endif

endif

endif

endif

//然后赶快放下

step s

drop

//走到起点

step nw

step nw

step w

step w

step w

step w

step w

step w

step ne

loop 1 //大循环

if c==mem1

mem2=mem2+1

endif

//向上走

loop 2

loop 3

step n

if n==dataCube and c!=mem1

goto 3

endif

if c==mem1

mem2=mem2+1

endif

if n==dataCube

goto 1

endif

step e

if c==mem1

mem2=mem2+1

endif

//向下走

loop 4

loop 5

step s

if s==dataCube and c!=mem1

goto 5

endif

if c==mem1

mem2=mem2+1

endif

if s==dataCube

goto 4

endif

if e==dataCube or s==dataCube

step e

goto 1

endif

//结束,写下

pickUp mem4

write mem2

drop


第 50 页 70亿人第53关怎么过 地上的100个方块攻略

53.地上的100个方块

//指令数量挑战 //16行 110s

//最上面的人先走,其他人跟随

loop 1

step w

if c==dataCube

pickUp c

loop 2

if n==0

goto 2

endif

if e==dataCube

mem1=e+1

else

if n==wall

mem1=90

else

mem1=n-10

endif

endif

write mem1

drop

endif

if w!=wall

goto 1

endif

//速度挑战 //23行 74s

//上下两边的人先走,其他人跟随

loop 1 //一直走到一个数据方块上

if c!=dataCube

step w

goto1

endif

loop 2 //如果上下都是0,原地等待

if n==0 and s==0

goto 2

pickUp c //靠墙的先走,其他人尾随

if n==wall

mem1=99

endif

if s==wall

mem1=9

endif

if n>0

mem1=n-10

endif

if s>0

mem1=s+10

endif

write mem1

drop

loop 3 //走一步加1,一直到头

step w

pickUp c

mem1=mem1-1

write mem1

drop

if w!=wall

goto 3

endif

//速度挑战 //37行 62s

step e

step e

step e

step w

step w

if c!=dataCube

mem2=1

step w

endif

if mem2==1

loop 1

if nw==0 and sw==0

goto 1

endif

step w

if n>0

mem1=n+10

else

mem1=s-10

endif

else

if n==wall or s==wall

if n==wall

mem1=0

else

mem1=90

endif

else

if n==worker

mem1=10

else

mem1=80

endif

endif

endif

pickUp c

write mem1

drop

loop 2

step w

pickUp c

mem1=mem1+1

write mem1

drop

if w!=wall

goto 2

endif


第 51 页 70亿人第54关怎么过 第五十四关平整地形双星代码攻略

54.平整地形

//指令数量挑战 and速度挑战 //26行 85s

//前两步判断各加个跳转可以达到28行81s,代码不放出了

loop 1

step n

if c==dataCube

mem1=mem1+c

endif

if c!=dataCube or n==dataCube

goto 1

endif

pickUp c

write mem1

drop

step n

loop 2

if c==dataCube

mem2=mem2+c

step e

goto 2

endif

loop 3

if sw==dataCube and s!=worker

step s

goto 3

endif

mem3=mem2/49

loop 4

step w

pickUp c

write mem3

drop

goto 4


第 52 页 70亿人第55关怎么过 第五十五关数据之花双星代码攻略

55.数据之花

//指令数量挑战 and速度挑战 //8行 24s

pickUp s

loop 1

step n

if n!=dataCube and s!=dataCube

goto 1

endif

forEachDiras mem1

mem2=mem1+mem2

endForEach

write mem2

drop


第 53 页 70亿人第56关怎么过 第五十六关局部最大值双星代码攻略

56.局部最大值

//指令数量挑战 and速度挑战 //8行 13s

mem4= nearest shredder

step w

step w

forEachDiras mem1

if mem1>mem2

mem2=mem1

endif

endForEach

pickUp mem2

giveTo mem4


第 54 页 70亿人第57关怎么过 第五十七关扫雷邻居双星代码攻略

57.扫雷邻居

//指令数量挑战 and速度挑战 //15行 96s

//本关的提示是个坑,工人即使拿起方块,也可以比较大小,所以判断大于0就行了

if e==wall

mem3=1 //判断应该往哪个方向走

endif

loop 1

mem2=0

if mem3==0 //内存判断,速度很快,直接写成两个大循环并不能节省时间

step e

else

step w

endif

if c==dataCube

forEachDiras mem1

if mem1>=0

mem2=mem2+1

endif

endForEach

endif

pickUp c

write mem2

drop

goto 1


第 55 页 70亿人第58关怎么过 第五十八关好邻居双星代码攻略

58.好邻居

//指令数量挑战 & 速度挑战 //9行 148s

//随机走动,大于3就拿起,小于3就放下,需要大量计算,时间很长

loop 1

step anyDir

if c==dataCube and myItem!=dataCube

if nw==dataCube or ne==dataCube orsw==dataCube or se==dataCube

pickUp c

write mem1

endif

endif

if c!=dataCube and myItem==dataCube

and nw!=dataCube and ne!=dataCube and sw!=dataCubeand se!=dataCube

drop

endif

goto 1

//速度挑战 //42行 91s

//把中间的全部拿起沿墙放一圈

mem4= nearest wall

loop 1

mem1= nearest dataCube

step mem1

//如果在中间,拿起,然后走到墙边。否则重来

if n!=wall and s!=wall and w!=wall and e!=wall

pickUp mem1

step mem4

loop 2

//沿墙壁逆时针走。为了减少不必要的判断,嵌套了好几层if…else,数清楚了别乱

if e==wall and n!=wall

step n

else

if n==wall and w!=wall

step w

else

if w==wall and s!=wall

step s

else

step e

endif

endif

endif

if c==dataCube

goto 2

endif

drop

endif

//如果在上边或左边,去左上角

if n==wall or w==wall

loop 3

if w!=wall

step w

goto 3

endif

loop 4

if n!=wall

step n

goto 4

endif

step se //走到中间

step se

step se

step se

endif

//如果在下边或右边,去右下角

if s==wall or e==wall

loop 5

if e!=wall

step e

goto 5

endif

loop 6

if s!=wall

step s

goto 6

endif

step nw //走到中间

step nw

step nw

step nw

endif

goto 1 //回到最初的大循环


第 56 页 70亿人第59关怎么过 第五十九关荣耀洞穴双星代码攻略

59.荣耀洞穴

//指令数量挑战 //6行 98s

loop 1

forEachDiras mem1

if c==null and mem1==dataCube

step mem1

endif

if mem1==hole and c==1 or mem1<c

step mem1

endif

endForEach

goto 1

//速度挑战 //64行 10s

if s<8 or w>8 //先处理最·右边离的最远的5个

if n==hole

step e

step e

step e

step sw

step s

step s

else

if s==hole

step sw

else

step sw

step s

endif

endif

step sw

step w

step nw

step nw

step nw

step nw

step w

step w

step w

else

if s==wall //再处理最下面4个

if ne>5

step nw

step nw

step nw

step nw

step nw

step n

else

step ne

step ne

step n

step nw

step nw

step n

endif

else

if w==wall //再处理左边靠墙3个

step e

step e

step e

if s==1

step s

endif

if n==1

step n

endif

else

if n==wall //再处理最上面5个

step sw

step sw

step s

if w==1

step w

endif

if e==1

step e

endif

else //最后剩下孤零零一个

step ne

step ne

step n

step n

endif

endif

endif

endif

//最后把已经走到洞口附近的丢进去

mem1=nearest hole

step mem1


第 57 页 70亿人第60关怎么过 第六十关排序人手紧缺攻略

60.排序人手紧缺

//指令数量挑战 and速度挑战 //12行 180s(因为要随机走动,有些看人品)

//简单而且高效,至今没有发现更短的代码或更短的时间

loop 1

step w,e //向左右两边随机来回走

if sw>s //一定要保证四周没有别人才能动作,否则很容易互相冲突

and w!=worker

and e!=worker

and sw!=worker

and se!=worker

pickUp sw

drop

pickUp s

step sw

pickUp ne

step e

drop

step n //左右两个数据块交换位置

endif

goto 1


第 58 页 70亿人第61关怎么过 第六十一关懒惰路径双星代码攻略

61.懒惰路径

//指令数量挑战 //11行 762s(最讨厌随机走了,走到天荒地老)

//随机走动,找到附近最小的数,+1设置为当前的数

//由于左侧有个坑爹的凹,可能偶尔走到超时了也无法走完

loop 1

step anyDir

if c>1

mem2=99

forEachDiras mem1

//如果不判断mem1是个数据块,会导致周围工人在写入的过程中,将手中数据块认为是0

if mem2>mem1 and mem1==dataCube

mem2=mem1

endif

endForEach

mem2=mem2+1

pickUp c

write mem2

drop

endif

goto 1

//速度挑战 //108行 207s

//我想有些人看到代码行数已经打退堂鼓了,我也不想这样

//但是为了那个坑爹的破凹,不得不写很多代码

//之前写过一个只用130s的,但是那个需要的代码更多,这里不贴代码,但可以放出思路

//让一部分人在行走的时候不要随机走,而是找到附近的99走上去,这样可以快

//首先给工人分类,让他们后续执行不同的动作

if w==dataCube //为了少写几个条件,先设置5和6,避免之后将1-4覆盖掉

mem1=5

endif

if e==wall

mem1=6

endif

if w==dataCube and n==wall

mem1=1

endif

if n==wall and e==wall

mem1=2

endif

if w==wall and s==wall

mem1=3

endif

if s==wall and e==wall

mem1=4

endif

//首先是最长的1和2

if mem1==1 or mem1==2

step w

step w

step w

step w

step w

step w

step w

if mem1==2

step n

pickUp c

write 2

drop

endif

loop 1

if w!=wall

step w

pickUp c

mem2=e+1

write mem2

drop

goto 1

endif

if mem1==2

step sw

step s

endif

if mem==1 //这段最坑爹了,不写还不行

step e

step se

pickUp c

write 6

drop

step s

pickUp c

write 7

drop

step se

pickUp c

write 8

drop

step se

pickUp c

write 9

drop

step n

pickUp c

write 9

drop

step sw

pickUp c

write 9

drop

endif

endif

//1和2终于告一段落,开始写3和4

if mem1==3 or mem1==4

step w

step w

step w

step w

step w

step w

step w

step w

step w

if mem1==4

step sw

endif

pickUp c

write 6

drop

loop 2

if w!=wall

step w

pickUp c

mem2=e+1

write mem2

drop

goto 2

endif

endif

//让看热闹的人从中间开始走,而不是最·右边

if mem1==5

step w

step w

step w

step w

step w

step w

step w

endif

if mem1==6

step w

step w

step w

step w

endif

//其余的就跟正常一样了,随机走

loop 3

step anyDir

if c>1

mem2=99

forEachDiras mem1

//如果不判断mem1是个数据块,会导致周围工人在写入的过程中,将手中数据块认为是0

if mem2>mem1 and mem1==dataCube

mem2=mem1

endif

endForEach

mem2=mem2+1

pickUp c

write mem2

drop

endif

goto 3


第 59 页 70亿人第62关怎么过 第六十二关排序楼层双星代码攻略

62.排序楼层

//指令数量挑战 and速度挑战 //48行 159s

//思路:先把上面9个块从大到小拿到下面排好,再放回上面

//如果用mem1计算好当前拿的是第几个块,再写一堆if来判断每个块放的位置,可以更快

//大约能达到143s,快也有限,后来被我舍弃了

if sw==hole //只留一个,其余的人自·杀

step sw

endif

loop 1

step n

step n

step n

//走到九宫格的中间

loop 2

if n!=hole

step n

goto 2

endif

step s

//拿起最大的方块

mem2=0

forEachDiras mem1

if mem1>=mem2

mem2=mem1

endif

endForEach

if c>=mem2

mem2=c

endif

if mem2==dataCube

pickUp mem2

//走到左上角

loop 2

if w!=hole

step w

goto 2

endif

loop 3

if n!=hole

step n

goto 3

endif

//再下来

step s

step s

step s

//找到一个空位

loop 4

if s!=hole and s!=dataCube

step s

goto 4

endif

loop 5

if e!=hole and e!=dataCube

goto 5

endif

drop

if w==hole //回到轴线上

step e

endif

if e==hole

step w

endif

endif

goto 1

loop 2

step s

step s

step s

mem1= nearest dataCube

pickUp mem1

step n

step n

step n

drop

goto 2


第 60 页 70亿人第63关怎么过 第六十三关乱序整理双星代码攻略

63.乱序整理

//指令数量挑战 and速度挑战 //24行 65s

//思路:每次先走到最下方,然后拿起最近的方块,再送到上面,找个空放下

//最快达到过57s,但要多写一倍代码,后来删掉了

loop 1

loop 2

if s!=nw //向下走到底

step s

goto 2

endif

mem1= nearest dataCube

pickUp mem1

//一个长长的if将后面的代码都包起来,以保证拿起的块是个孤独的块

//避免把排好的块再次拿起,那就没完没了了

if w!=null and e!=null

loop 2

if n!=hole //向上走到头

step n

goto 2

endif

loop 3

if mem2==0 //用来控制行走方向,默认是0,向右走

step e

else

step w

endif

if e==hole or w==hole //用两层if可以减少多余的判断,加快速度

if w==hole //如果左边是洞,改为向右走,反之改为向左走

mem2=0

else

mem2=1

endif

step s

endif

if c==dataCube //如果脚下是一个数据块,就跳转回去,一直走,直到找到一个空为止

goto 3

endif

drop //找到空了就放下

goto 1 //回到最初,重复这个过程

endif

drop //如果拿起的是一个排好的块,放下,结束


第 61 页 70亿人第64关怎么过 第六十四关二进制计数器攻略

64.二进制计数器

//指令数量挑战 and速度挑战 //17行 47s

step s

step s

if nw==worker //这个人要负责踩按钮,并协调另外4个人,单独循环

loop 1

tell nw ‘Start!’ //要踩在按钮上就喊开始,否则时间来不及

step w

listen ‘OK!’

step e

goto 1

endif

loop 2 //其他人负责计数

listen ‘Start!’

if myItem==dataCube //如果0变1则结束计算,如果1变0则需要进位

tell all ‘OK!’ //一定要先说OK再放下,这样能抢出时间,否则来不及

drop

else

tell w ‘Start!’ //先告诉左边的人,再去捡自己的,节省时间

pickUp c

endif

goto 2


第 62 页 70亿人第65关怎么过 第六十五关有序整理双星代码攻略

65.有序整理

//指令数量挑战 and速度挑战 //25行 449s

//思路:先走到顶,然后往后走,按书写顺序,走到头就换行

//遇到空位之后,拿起下一个遇到的方块,往回走

//遇到一个方块就放下,然后再回头往后走,如此循环

//每一个如果单独加个循环,提高效率,最高可到329s

loop 1

if n!=hole //向上一直走到顶

step n

goto 1

endif

loop 2

loop 3 //正向走

if c!=dataCube and myItem==dataCube

drop

endif

if e!=hole

step e

else

loop 4

if w!=hole

step w

goto 4

endif

step s

endif

if c!=dataCube

goto 3

endif

loop 5 //逆向走

if w!=hole and w!=dataCube

step w

endif

if w==hole

loop 6

if e!=hole

step e

goto 6

endif

step n

endif

if w==hole or w!=dataCube

goto 5

endif

goto 2


第 63 页 70亿人第66关怎么过 第六十六关十进制计数器攻略

66.十进制计数器

//指令数量挑战 //22行 153s

pickUp s

step s

step s

if nw==worker //指挥

loop 1

tell nw ‘Hi!’

step w

listen ‘OK!’

step e

goto 1

endif

drop

loop 2 //计算器

listen ‘Hi!’

pickUp c

mem1=myItem+1

if mem1==10

mem1=0

endif

write mem1

if mem1>0 //大于0结束计算,等于0需要进位

tell all ‘OK!’

else

tell w ‘Hi!’

endif

drop

goto 2

//速度挑战 //28行 120s

pickUp s

step s

step s

if nw==worker //指挥

loop 1

tell all ‘Start!’ //这里不一样了,让所有人同时开始计算

step w

listen ‘OK!’

step e

goto 1

endif

drop

loop 2 //计算器

listen ‘Start!’

pickUp c

if e==null //最低位

mem2=myItem+1 //无脑自加

if mem2>9

mem2=0

endif

write mem2

tell all ‘OK!’ //他完了别人肯定也完了

else //其他位

mem1=mem1+1 //计算整体运行到哪一步了

if myItem==0 and mem1==19 //最高位运行到19次的时候写1,其它时间不变

write 1

endif

if myItem==9 and mem1==19

write 0

endif

if myItem==8 and mem1==9

write 9

endif

endif

drop

goto 2


第 64 页 70亿人第67关怎么过 第六十七关十进制翻倍器攻略

67.十进制翻倍器

//指令数量挑战 and速度挑战 //25行 222s

//思路:每一位自乘2,如果右边的数字小于4则无需进位,大于4则需要进位

pickUp s

step s

step s

if nw==worker //指挥

loop 1

tell all ‘Start!’

step w

listen ‘OK!’

step e

goto 1

endif

loop 2 //计算器

listen ‘Start!’

pickUp c

mem2=0

if e>4 //做乘法之前先判断进位

mem2=1

endif

mem1=myItem*2

if mem1>9

mem1=mem1-10

else

mem1=mem1+0

//即使不需要做减法也做个空计算,这样时间容易同步,否则还要写互相等待的代码

endif

mem1=mem1+mem2

write mem1

tell all ‘OK!’

drop

goto 2


第 65 页 70亿人第68关怎么过 第六十八关再见人类双星代码攻略

68.再见,人类!

//指令数量挑战 //8行 71s

loop 1

if w==wall or w==hole

step se

endif

if e==wall or e==hole

step sw

endif

if nw!=worker and ne!=worker and s==hole

tell all ‘Goodbay!’

endif

step s

goto 1

//速度挑战 //18行 30s

if n==wall and e==wall //随便找一个人等到最后再走

loop 1

mem1=worker

if mem1==worker

goto 1

endif

tell all ‘Goodbay!’

endif

loop 2

if w==wall or w==hole or e==wall or e==hole

if e==wall or e==hole

step sw

step sw

step sw

else

step se

step se

step se

endif

endif

step s

step s

step s

goto 2

69.造物主

//通关动画



  70亿人是一款逻辑编程游戏,玩家们需要使用代码来安排员工们工作喔,很多玩家可能想知道70亿人攻略大全、七十亿人全关卡双星通关攻略呢,酷987游戏网为大家带来了介绍。


【通关原则】

·指令数量挑战:

规则:使用的代码行数少于系统规定的行数

代码尽量复用就不说了,是程序员都懂,只针对游戏本身的规则注意以下原则

1.选取简单的方案,尽量通过重复简单动作达成

2.不要追求代码优雅,比如确保工人不死或所有动作完成后工人动作结束,除非工人乱动会影响后续结果

3.如果必要,不写判断。

比如拿起一个方块之前如果不判断手中无方块并且地上有方块,工人就会报一个错误,这会增加执行时间。即使因此导致某些情况下代码执行超时也无所谓,反正有任意一次能执行成功就可以了

·速度挑战:

规则:在一倍速下运行所需要的真实时间。由于有些关卡存在随机数和随机行走问题导致时间不确定,取25次的平均值。

1.可以选取稍微复杂但更有效率的方案,比如需要多人配合的。但不要追求复杂。很多情况下简单的也是有效的。

2.如无必要,不做判断。判断也需要时间,尤其是需要与周围进行对比的。

如果需要根据不同的初始位置执行不同的动作,那么最好在一开始就做好判断,而不要在不断的问“我是谁?”的过程中耗尽时间

3.一切为了效率,即使偶尔会执行失败,只要平均时间短就足够了

【名词解释】

为方便书写和避免歧义,以下代码采用C语言语法书写,一句代码一行,结尾不写分号

对于游戏中自定义物体和函数,将用代码代替,代码中将不会出现中文

以英文版游戏中的命名方式为基础全部做了简化处理

反正你也没法把这些代码直接粘到游戏里去,能看懂就行了

命名方式如下

【方位和物体】

上→n //short for ‘north’

下→s //short for ‘south’

左→w //short for ‘west’

右→e //short for ‘east’

中→c //short for ‘center’

左上→nw

左下→sw

右上→ne

右下→se

任意方向→anyDir

我的物件→myItem

某个东西→something //完全等同于非空,是个多余的东西,以下代码绝对不会用到

无→null

一个数据方块→dataCube

一名工人→worker

一个洞→hole

一堵墙→wall

粉碎机→shredder

打印机→printer

记忆体1→mem1

记忆体2→mem2

记忆体3→mem3

记忆体4→mem4

【命令】

行走→step+方向

拿起→pickUp

放下→drop

写下→write

给出→giveTo

拿取→takeFrom

最接近的→nearest

计算→=

设置为→=

如果→if

否则→else

结束如果→endif

跳转→goto

跳转到→loop

举例:

loop 1

goto 1

//注意数字是一一对应的,涉及到多个跳转的时候要看好

//以下代码涉及到的跳转一定是大跳转包含小跳转,不存在交叉跳转的情况

//如果出现此情况,说明抄代码的时候抄窜行了

终止→end //基本上是个鸡肋,以下基本不会用到此命令(有个别极特殊情况不得不用)

//我一直认为好的程序完全可以用if保证程序进入正确的分支,而不使用end

//end除了让可读性变差,让人摸不清思路,没有什么好的作用

巡视→forEachDir as

巡视结束→endForEach

告诉→tell

聆听→listen

【比较和赋值】

= →等号右边的值给左边

== →相等

!= →不等

> →大于

>= →大于或等于

< →小于

<= →小于或等于

and→和

or →或

【计算】

加法→+

减法→-

乘法→*

除法→/

【其他说明】

// →注释符,表示此行文字是写给玩家看的,不执行

关于行数计算,成对出现的如goto和loop,算做一行,if和endif算做一行

但如果出现else则单独算一行

【通关代码】

//不知道制作团队怎么考虑的,分支关卡编号不连续

//为了读者找起来方便,以下关卡顺序依然按照编号顺序,而不按分支顺序

//以下代码全部经过测试,但因为是手打,不保证没有错漏,仅供参考

1.你被录用了

//过场动画


Tags:
责任编辑:永春小孩
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:

精彩热图更多>>