魔兽地图编辑器吧 关注:65,022贴子:3,836,110
  • 46回复贴,共1

又来求助了- - 关于选取最距离最近单位的算法

只看楼主收藏回复


这是我目前想到的算法,反复检查没看出问题- -但是在实际测试中好像无效,区域内单位大于1的时候就选取不到单位了。求教各位大神问题在哪。。。对WE 提供的控件不是很熟,如果有什么更好的办法请多多指教。。。谢啦~


IP属地:上海1楼2015-02-01 23:44回复
    总有大神喜欢在夜晚出没的。对不对


    IP属地:上海2楼2015-02-01 23:48
    收起回复
      你这单位组循环里面再加十万次循环完全不考虑效率的节奏啊
      准备一个单位变量u,整数变量min
      设置整数min=99999
      循环整数A,1到1做动作
      if 某某单位 与 单位组中第一个单位的距离 小于 min then
      设置min=某某单位 与 单位组中第一个单位的距离
      设置u=单位组中第一个单位
      endif
      从单位组中删除单位组中第一个单位
      if 单位组中的单位数量 大于 0 then
      设置 循环整数A=0
      endif
      循环结束后u就表示最近的单位,min表示两者间距离


      3楼2015-02-01 23:52
      收起回复
        就是判断距离,比较距离,赋值。的简单循环吧……


        IP属地:陕西来自手机贴吧4楼2015-02-01 23:56
        收起回复
          如果是后者其实也简单,加上两个单位变量,a,b
          设置min=99999
          选取单位组动作
          loop - 设置u=选取单位
          选取单位组动作
          loop - 如果 选取单位 与 u 的距离 小于 min
          设置min=选取单位与u的距离
          设置a=选取单位
          设置b=u
          单位组循环结束得出a,b就是最近的两个单位


          5楼2015-02-02 00:20
          收起回复
            明天直接上图,打字说不清


            IP属地:福建来自Android客户端8楼2015-02-02 02:09
            收起回复
              听说凤凰火焰会先打最近的


              IP属地:浙江来自Android客户端9楼2015-02-02 03:40
              回复
                本来选取单位组做动作就是一个遍历栈的loop,也就是循环,你这99999的节奏我赌五毛肯定会超字节码导致线程中断。
                只需要在选取动作里用一个变量判断每个单位的距离,时刻保存最大最小值即可。


                IP属地:广东来自Android客户端10楼2015-02-02 08:37
                收起回复
                  楼主肯定是不理解这一个东西。
                  选取单位做动作=循环 第一个单位 到 最后一个单位 做动作,下面的动作每个单位均执行一次,合计执行次数=单位组内单位数量。
                  实际上T里面有单位组数量这个函数,更本质的,魔兽统计单位组单位数量就是上面这个原理。


                  IP属地:广东来自Android客户端11楼2015-02-02 08:45
                  回复
                    这触发写的…


                    IP属地:浙江12楼2015-02-02 11:51
                    收起回复

                      @流星之飞愿 为什么还是不行。。。


                      IP属地:上海13楼2015-02-02 12:40
                      收起回复
                        请在添加单位到单位组之前先判断蝗虫...而且如果你真有几万个单位的话,你确定99999能算出来(无视后半句


                        14楼2015-02-02 14:00
                        回复
                          不短扩大选取半径
                            那一年,抓住了蝉以为得到了整个夏天;那一年,牵住了她的手以为就可以到永远。


                          IP属地:河南来自Android客户端15楼2015-02-02 14:47
                          回复