2023-11-27 12:29 /
我又又又来了兄弟们。
这次依然是不翻github,独立挑战,参考上次的惨痛经历,只能说尽量做到双星吧。
-- 7 Billion Humans (2235) --
-- 2: 欢迎新员工 --

step s
pickup c
drop
-- 7 Billion Humans (2235) --
-- 3: 运输小队 --

step s
pickup c
step s
step s
drop
-- 7 Billion Humans (2235) --
-- 4: 长途运输 --

step e
pickup c
a:
step e
jump a
-- 7 Billion Humans (2235) --
-- 5: 重要的抉择 --

if w == datacube:
        a:
        step w
        jump a
endif
b:
step e
jump b
-- 7 Billion Humans (2235) --//我幽灵疾步一开
-- 6: 小小驱虫工 1 --

step s
step sw
step sw
step se
step e
step se
step s
step s
pickup c
-- 7 Billion Humans (2235) --
-- 7: 整理房间 --

a:
step s
if c != datacube:
        jump a
endif
pickup c
b:
step s
if s != hole:
        jump b
endif
drop
-- 7 Billion Humans (2235) --
-- 7: 整理房间 --

a:
step s
pickup c
if s != hole:
        jump a
endif
drop
-- 7 Billion Humans (2235) --
-- 9: 对角巷 --

pickup s
a:
step s
if nw != datacube:
        jump a
endif
drop
-- 7 Billion Humans (2235) --
-- 10: 疏散演习 --

a:
if c == 1:
        step n
endif
if c == 2:
        step e
endif
if c == 3:
        step s
endif
if c == 4 or
c == nothing:
        step w
endif
jump a
-- 7 Billion Humans (2235) --//开始堆shit了
-- 10: 疏散演习 --

step w
step w
step w
step w
a:
if c == nothing:
        if sw == 3:
                jump b
        else:
                step w
        endif
else:
        if sw == nothing:
                step sw
                jump c
        else:
                if nw == nothing:
                        step nw
                        jump d
                else:
                        if w == nothing:
                                step w
                                jump e
                        else:
                                if s == wall:
                                        step n
                                endif
                        endif
                endif
        endif
endif
jump a
e:
b:
d:
c:
step sw
step s
step sw
step w
step w
step w
step nw
step n
step n
step n
step n
step nw
-- 7 Billion Humans (2235) --
-- 11: 注入数据 1 --

pickup s
a:
step s
if c == nothing and
w == datacube:
        drop
endif
jump a
-- 7 Billion Humans (2235) --
-- 11: 注入数据 1 --

pickup s
step sw
step se
a:
step sw
step se
if c == nothing:
        drop
endif
jump a
-- 7 Billion Humans (2235) --
-- 12: 拉开拉链 --

pickup c
a:
if w == wall or
sw == worker:
        step n
        drop
endif
if nw == worker:
        step s
        drop
endif
jump a
-- 7 Billion Humans (2235) --//太讽刺了这关
-- 14: 粉碎机入门 --

pickup s
step s
step s
giveto s
-- 7 Billion Humans (2235) --
-- 14: 粉碎机入门 --

if s == datacube:
        pickup s
endif
step s
step s
giveto s
-- 7 Billion Humans (2235) --
-- 15: 粉碎流水线 --

a:
b:
step n
if n == datacube:
        pickup n
        c:
        step s
        if s == shredder:
                giveto s
                jump b
        endif
        jump c
endif
jump a
-- 7 Billion Humans (2235) --
-- 16: 小小驱虫工 2 --

a:
step s
if c != datacube:
        jump a
endif
pickup c
b:
step e
if se == shredder:
        giveto se
endif
jump b
-- 7 Billion Humans (2235) --
-- 16: 小小驱虫工 2 --

a:
step s
if s != datacube:
        jump a
endif
pickup s
step se
b:
step e
if se == shredder:
        giveto se
endif
jump b
-- 7 Billion Humans (2235) --//笑死了
-- 17: 内容产出 --

pickup s
-- 7 Billion Humans (2235) --
-- 18: 独特偏爱 --

pickup w
step sw
a:
if s == worker:
        step se
        jump a
else:
        giveto s
endif
-- 7 Billion Humans (2235) --
-- 19: 内容产出-问题修复 --

a:
takefrom s
giveto se
step w
jump a
-- 7 Billion Humans (2235) --
-- 20: 反转流水线 --

pickup s
a:
if e == worker:
        step e
        jump a
endif
step s
b:
if w != hole and
w != datacube:
        step w
        jump b
endif
drop
-- 7 Billion Humans (2235) --
-- 21: 大数据 --

a:
step s
if s != printer:
        jump a
endif
takefrom s
b:
if myitem < 50:
        giveto sw
        takefrom se
        jump b
endif
-- 7 Billion Humans (2235) --
-- 22: 数字大逃杀 --

pickup s
a:
if myitem <= e or
myitem <= w:
        b:
        step s
        jump b
endif
step e
jump a
-- 7 Billion Humans (2235) --
-- 23: 排序大厅 --

pickup s
a:
if myitem > e:
        step e
endif
if myitem < w:
        step w
endif
jump a
-- 7 Billion Humans (2235) --
-- 24: 数据接力 1 --

a:
if s == printer:
        takefrom s
endif
if myitem == datacube:
        giveto e
endif
if s == shredder and
myitem == datacube:
        giveto s
endif
jump a
-- 7 Billion Humans (2235) --
-- 24: 数据接力 1 --

a:
if s == printer:
        b:
        if myitem != datacube:
                takefrom s
        endif
        jump b
else:
        if s == hole:
                c:
                if myitem != datacube:
                        takefrom w
                endif
                jump c
        else:
                d:
                e:
                if myitem != datacube:
                        takefrom w
                        jump e
                endif
                giveto s
                jump d
        endif
endif
jump a
-- 7 Billion Humans (2235) --
-- 25: 记忆体初体验 --

mem1 = nearest shredder
a:
mem2 = nearest datacube
pickup mem2
giveto mem1
jump a
-- 7 Billion Humans (2235) --
-- 25: 记忆体初体验 --

mem1 = nearest shredder
a:
mem2 = nearest datacube
pickup mem2
if myitem == datacube:
        giveto mem1
        jump a
endif
-- 7 Billion Humans (2235) --//这次是真没优化明白
-- 26: 数据接力 2 --

a:
if s == worker or
s == printer:
        takefrom s
else:
        if e < 50:
                takefrom e
        endif
        if w >= 50:
                takefrom w
        endif
        if myitem == datacube:
                giveto s
        endif
endif
jump a
-- 7 Billion Humans (2235) --
-- 28: 神经回路 --

mem1 = nearest shredder
mem2 = nearest datacube
pickup mem2
giveto mem1
-- 7 Billion Humans (2235) --
-- 29: 指纹认证 --

mem1 = nearest shredder
a:
mem2 = nearest datacube
pickup mem2
giveto mem1
jump a
-- 7 Billion Humans (2235) --//噩梦开始
-- 30: 铺满地面 --

mem1 = nearest printer
a:
takefrom mem1
step nw,w,sw,n,s,ne,e,se
if c == nothing:
        drop
endif
jump a
-- 7 Billion Humans (2235) --
-- 30: 铺满地面 --

mem1 = nearest printer
a:
takefrom mem1
step mem2
b:
step nw,w,sw,n,s,ne,e,se
if c != nothing:
        jump b
endif
drop
mem2 = nearest datacube
jump a
-- 7 Billion Humans (2235) --
-- 31: 星罗棋布 --

mem1 = nearest printer
a:
if c == nothing:
        drop
        takefrom mem1
        step w,n,e
endif
step nw,sw,ne,se
jump a
-- 7 Billion Humans (2235) --
-- 32: 创造性扭动 --

a:
step nw,w,sw,n,s,ne,e,se
if c == 0:
        pickup c
        write 99
        drop
endif
jump a
-- 7 Billion Humans (2235) --
-- 32: 创造性扭动 --

a:
step s
pickup c
write 99
drop
if w == datacube:
        step w
        pickup c
        write 99
        drop
else:
        if e == datacube:
                step e
                pickup c
                write 99
                drop
        endif
endif
jump a
-- 7 Billion Humans (2235) --
-- 33: 资料备份日 --

mem1 = set e
mem2 = set w
if mem1 > mem2:
        pickup mem1
        write mem2
else:
        pickup mem2
        write mem1
endif
drop
-- 7 Billion Humans (2235) --
-- 34: 查找并摧毁 1 --

mem1 = set 99
mem2 = nearest shredder
a:
step n
if n != wall:
        if c <= mem1:
                mem1 = set c
        endif
        jump a
endif
pickup mem1
giveto mem2
-- 7 Billion Humans (2235) --
-- 35: 面向艺术生的计算器入门 --

pickup s
mem1 = calc myitem + 1
write mem1
drop
-- 7 Billion Humans (2235) --
-- 36: 查找并摧毁 2 --

mem2 = nearest shredder
a:
mem1 = set 99
b:
step n
if n != wall:
        if c <= mem1:
                mem1 = set c
        endif
        jump b
endif
pickup mem1
giveto mem2
jump a
-- 7 Billion Humans (2235) --
-- 37: 危险的电子表格 --

a:
if e == hole:
        step ne
        if se == hole:
                step e
        endif
        step se
else:
        step e
        if e == wall and
         c == 0:
                pickup c
                write mem1
                drop
        endif
endif
mem1 = calc mem1 + c
jump a
-- 7 Billion Humans (2235) --
-- 38: 查找并摧毁 3 --

mem3 = nearest shredder
mem2 = nearest wall
mem1 = set 99
a:
step n
if n != wall:
        if c <= mem1:
                mem1 = set c
        endif
        jump a
endif
pickup mem1
step mem2
drop
if e == hole:
        b:
        step w
        if w != shredder:
                if c <= mem1:
                        mem1 = set c
                endif
                jump b
        endif
        pickup mem1
        giveto mem3
else:
        step n
endif
-- 7 Billion Humans (2235) --
-- 39: 打印守则 1 --

mem1 = set 6
mem2 = nearest printer
a:
step nw,w,sw,n,s,ne,e,se
if c == nothing and
mem1 != 0:
        drop
        mem1 = calc mem1 - 1
        if mem1 != 0:
                takefrom mem2
        endif
endif
jump a
-- 7 Billion Humans (2235) --//对不起做不到
-- 40: 打印守则 2 --

mem1 = set 6
mem2 = nearest printer
a:
step nw,w,sw,n,s,ne,e,se
if c == nothing and
mem1 != 0:
        drop
        mem1 = calc mem1 - 1
        if mem1 != 0:
                takefrom mem2
                write mem1
        endif
endif
jump a
-- 7 Billion Humans (2235) --
-- 41: 图片解密 --

pickup w
a:
step w
mem1 = calc mem1 + 1
if mem1 <= myitem:
        jump a
endif
drop
mem2 = nearest hole
step mem2
-- 7 Billion Humans (2235) --//咋还不让套了
-- 41: 图片解密 --

pickup w
step w
if myitem > 0:
        step w
        if myitem > 1:
                step w
                if myitem > 2:
                        step w
                        if myitem > 3:
                                step w
                                if myitem > 4:
                                        step w
                                        if myitem > 5:
                                                step w
                                                if myitem > 6:
                                                        step w
                                                        if myitem > 7:
                                                                step w
                                                                if myitem > 8:
                                                                        step w
                                                                endif
                                                        endif
                                                endif
                                        endif
                                endif
                        endif
                endif
        endif
endif
if myitem > 9:
        step w
        if myitem > 10:
                step w
                if myitem > 11:
                        step w
                endif
        endif
endif
drop
mem1 = nearest hole
step mem1
-- 7 Billion Humans (2235) --
-- 42: 整理邮件 --

step s
a:
if c == datacube and
s != shredder:
        pickup c
        mem3 = nearest datacube
        mem1 = nearest shredder
        step mem1
        mem2 = calc myitem / 10
        b:
        if mem2 > c:
                step e
                jump b
        endif
        c:
        if mem2 < c:
                step w
                jump c
        endif
        giveto s
        step mem3
else:
        step nw,w,sw,n,s,ne,e,se
endif
jump a
-- 7 Billion Humans (2235) --
-- 43: 九九乘法表 --

a:
step n
if n == 0 or
n != datacube:
        jump a
endif
mem1 = set n
mem2 = set mem1
b:
step s
pickup c
write mem2
drop
mem2 = calc mem2 + mem1
jump b
-- 7 Billion Humans (2235) --
-- 44: 独特时髦派对 --

pickup s
a:
step nw,w,sw,n,ne,e
if myitem == n or
myitem == w or
myitem == nw:
        mem1 = nearest hole
        step mem1
endif
jump a
-- 7 Billion Humans (2235) --
-- 46: 强制办公室恋情 --

a:
if e == worker:
        tell e hi
        listenfor hi
endif
if w == worker:
        listenfor hi
        tell w hi
endif
jump a
-- 7 Billion Humans (2235) --
-- 47: 全自动寒暄 --

if w != nothing:
        listenfor morning
endif
tell e morning
-- 7 Billion Humans (2235) --
-- 48: 社群培训日 --

if n != wall:
        listenfor coffeetime
endif
takefrom s
mem1 = nearest shredder
giveto mem1
tell everyone coffeetime
-- 7 Billion Humans (2235) --//我是飞舞
-- 49: 双向销毁 --

pickup s
mem1 = nearest shredder
a:
if w != nothing:
        listenfor coffeetime
else:
        giveto mem1
        tell everyone coffeetime
endif
if e != nothing:
        listenfor coffeetime
else:
        giveto mem1
        tell everyone coffeetime
endif
jump a
-- 7 Billion Humans (2235) --//全靠慢慢调试出来的
-- 50: 无声交流 --

mem1 = set 0
if sw != 1:
        listenfor coffeetime
endif
a:
takefrom s
giveto se
if mem1 == 1:
        mem2 = nearest worker
        tell mem2 coffeetime
endif
mem1 = calc mem1 + 1
if mem1 != 5:
        step w
        jump a
endif
-- 7 Billion Humans (2235) --
-- 51: 公司职级 --

step s
pickup c
a:
mem1 = calc mem1 + 1
if w != nothing and
w != datacube:
        jump a
endif
write mem1
drop
-- 7 Billion Humans (2235) --
-- 52: 统计众数 --

mem1 = set s
step nw
a:
if nw != nothing:
        step w
        mem2 = calc mem2 + 1
        jump a
endif
b:
c:
step n
if c == mem2:
        mem3 = calc mem3 + 1
endif
if n != nothing:
        jump c
endif
step ne
d:
step s
if c == mem2:
        mem3 = calc mem3 + 1
endif
if s != nothing:
        jump d
endif
if e == datacube:
        step se
        jump b
endif
pickup mem1
write mem3
drop
-- 7 Billion Humans (2235) --//喔喔喔,我是大聪明
-- 53: 地上的100个方块 --

if n == wall:
        mem2 = set 99
else:
        a:
        if w != datacube:
                step w
                jump a
        endif
        b:
        if n != datacube:
                jump b
        endif
        mem2 = calc n - 10
endif
c:
pickup w
write mem2
drop
step w
mem2 = calc mem2 - 1
if w != wall:
        jump c
endif
-- 7 Billion Humans (2235) --
-- 54: 平整地形 --

a:
if n != nothing or
c != datacube:
        step n
        if c > 0:
                mem1 = calc mem1 + c
        endif
        jump a
endif
pickup c
if sw != nothing:
        listenfor coffeetime
        mem1 = calc mem1 + w
else:
        b:
        if e != worker:
                jump b
        endif
endif
write mem1
tell e coffeetime
if se != nothing:
        listenfor coffeetime
        mem1 = set e
else:
        mem1 = calc mem1 / 49
endif
write mem1
tell w coffeetime
c:
drop
step s
pickup c
write mem1
jump c
-- 7 Billion Humans (2235) --
-- 55: 数据之花 --

pickup s
a:
step n
if c != nothing or
s != datacube:
        jump a
endif
mem1 = foreachdir nw,w,sw,n,s,ne,e,se:
        mem2 = calc mem2 + mem1
endfor
write mem2
drop
-- 7 Billion Humans (2235) --
-- 56: 局部最大值 --

mem1 = nearest shredder
step w
step w
mem3 = foreachdir nw,w,sw,n,s,ne,e,se:
        if mem3 > mem2:
                mem2 = set mem3
        endif
endfor
pickup mem2
giveto mem1
-- 7 Billion Humans (2235) --
-- 57: 扫雷邻居 --

if w == wall:
        mem3 = set 1
endif
a:
if mem3 == 0:
        step w
else:
        step e
endif
if c == datacube:
        mem2 = set 0
        mem1 = foreachdir nw,w,sw,n,s,ne,e,se:
                if mem1 >= 0:
                        mem2 = calc mem2 + 1
                endif
        endfor
        pickup c
        write mem2
        drop
endif
jump a
-- 7 Billion Humans (2235) --
-- 58: 好邻居 --

a:
step nw,w,sw,n,s,ne,e,se
if c == datacube:
        if w == datacube or
         e == datacube or
         nw == datacube:
                pickup c
                b:
                step nw,w,sw,n,s,ne,e,se
                if c != nothing or
                 w == datacube or
                 e == datacube or
                 nw == datacube or
                 myitem != datacube:
                        jump b
                endif
                drop
        endif
endif
jump a
-- 7 Billion Humans (2235) --
-- 59: 荣耀洞穴 --

mem1 = nearest datacube
step mem1
a:
mem2 = foreachdir nw,w,sw,n,s,ne,e,se:
        if mem2 == hole and
         c == 1 or
         mem2 < c:
                step mem2
        endif
endfor
jump a
-- 7 Billion Humans (2235) --
-- 59: 荣耀洞穴 --

mem1 = nearest datacube
a:
step mem1
if mem1 == 1:
        mem3 = nearest hole
        step mem3
endif
mem2 = foreachdir nw,w,sw,n,s,ne,e,se:
        if mem2 < mem1:
                mem1 = set mem2
        endif
endfor
jump a
-- 7 Billion Humans (2235) --//吐血
-- 60: 排序人手紧缺 --

a:
step w,e
if s > se and
e != worker and
w != worker:
        pickup s
        drop
        pickup se
        step s
        drop
        pickup n
        step e
        drop
        step n
endif
jump a
-- 7 Billion Humans (2235) --//鸽了两个多月,差点忘记怎么操作了
-- 63: 乱序整理 --

a:
mem1 = nearest datacube
pickup mem1
mem3 = calc mem3 + 1
b:
step n
if n != hole:
        jump b
endif
c:
if c == nothing:
        drop
        if mem3 == 3:
                end
        endif
        d:
        step s
        if s != hole:
                jump d
        endif
        jump a
endif
if mem2 == 0:
        step w
        if w == hole:
                mem2 = set 1
        endif
else:
        step e
        if e == hole:
                step s
                mem2 = set 0
        endif
endif
jump c









Tags: 游戏
#1 - 2023-12-29 16:09
(混沌邪恶中。。。)
代码量一般还好,不用考虑效率,写得烂点也容易卡过。执行速度通常就尽量多加判断,多套几层判断让方向明确些,执行的步骤就少了。不过这游戏还有些隐藏数据,比如说这里面的线程是异步运行的嘛,经常做一堆空操作消耗时间,所以如果知道每个操作大概的运行时间,可能就方便你调整调整代码顺序,使得线程运行起来恰好形成一种同步的效果(你前脚刚把方块搬起来,旁边的哥们就把你的方块取走了,而且还没有额外损耗,这速度嘎嘎猛)

关联条目