70亿人吧 关注:407贴子:1,067
  • 8回复贴,共1

问个蠢问题0.0

只看楼主收藏回复

打到第四大关
结果看不懂FOREACHDIR(巡览)的运行机制
看了大佬们的代码也还是一知半解
哪位好心人能讲解一下这个命令
感谢-w-


IP属地:山东1楼2019-02-08 11:30回复
    如果你知道for i 循环,那周围八个格子就相当于变量i,如果不知道,那就去看看for i循环


    IP属地:江苏3楼2019-03-21 18:39
    收起回复
      forEachDir就是跟C#语法里的foreach完全一样的机制,遍历周围8个格
      forEachDir as mem1
      将循环8次,每次mem1是其中一个格子的值
      这跟你写8个if效果一样,但是代码量减少很多


      4楼2019-04-02 16:15
      收起回复
        更正:
        经过对老贴攻略进行分析以及亲测,之前对此命令的理解稍有偏差
        完整的命令应该如下:
        forEachDir n,s,w,e,nw,sw,ne,se as mem1
        其中,方向参数默认为8个方向,但可以手动修改
        攻略中使用默认值的时候基本全都省略方向参数不写
        forEachDir的效果同C#语言中的foreach,遍历的集合则在方向参数中定义
        遍历的顺序是从左上角开始顺时针转一圈
        遍历将不会被打断,即使行走也一样。因为遍历的是方向(相对于工人),而不是地面,所以跟环境改变无关。
        在老贴攻略中,大量使用forEachDir,其中的mem1的值并没有被使用,仅仅把它当for循环来用
        可以通过改变方向的个数改变循环次数,只能是1-8次,但可以通过嵌套实现更多次的循环


        5楼2019-04-18 08:27
        回复
          原来是这样


          IP属地:浙江7楼2020-08-01 15:15
          回复