钩钩的小可爱吧 关注:36贴子:2,340

回复:我是萌萌滴新人

只看楼主收藏回复

选择“直瞄单位”这个问题肯定可以用弹幕法,不管是从施法者向四周发弹幕还是从四周的单位向施法者发弹幕,都是可行的。弹幕法有适用和不适用的情况自己酌情考虑。
这里主要就幻幻的第二种方法继续讨论。容易发现算法主要需解决此问题:如何从施法单位身边的所有单位中全面的讨论某两个单位和施法单位关系。
如果想要避免多次单位组选取,上述问题就变成了:如何枚举n个单位中任两个单位组合的所有情况,如何就三个单位讨论阻挡问题。
在abc中取出两个字母有3种情况,abcd取出两个字母有6种情况,n个单位就有n-1+n-2+...+1种。写成循环就是两层(详见楼上触发)。
三个单位是三个点的问题,是点和直线的问题,更是一个三角形的问题。用勾股定理不等式的情况保证三角形是钝角三角形,用海伦公式求出三角形的高,避免分类讨论进行是否阻挡的判定。


IP属地:湖北本楼含有高级字体32楼2014-09-01 20:51
收起回复
    小幻幻,来解钩老师迷题。技能池主要实现如下部分:创建池;为池添加一定比重的某技能类型;为池删除某技能类型;从池中随机一个技能类型添加给单位;删技能池


    IP属地:湖北来自Android客户端34楼2014-09-02 11:24
    收起回复
      新的问题~我因为这个问题初到薇吧被naji和零号教育过0.0虽然知道大概怎么做但是细节没考虑过——做个桥,桥面长方形,从短边上桥(在桥上高度高),在桥上不能从长边离开;从长边进桥洞(不能从短边离开)——怎么做来大神~


      IP属地:湖北来自Android客户端36楼2014-09-03 11:35
      收起回复
        用逆天自定义值不太好弄,小幻幻来看用YD存储做技能池。
        ---------------------------------------------------------------------------------------------------------------------------
        技能ID是十六进制的数字,我们把它转换成字符串用星号连接起来,这样每个技能目录的单位标签下存着两个技能ID连起来的字符串,表示一个技能前面、后面的技能,即豌豆前面、后面的豌豆。
        存储[YDWE] - 存储目录-> (获取 蝗虫 的整数地址),标签-> (获取 (触发单位) 的整数地址),存储字符串-> ((需要转换的Id为:(显示<艾鲁尼之优雅>为整数)) + (* + (需要转换的Id为:(显示<暗影突袭>为整数))))
        -----------------------------------------------------------------------------------------------------------------------------
        在单位目录技能标签下存比重
        存储[YDWE] - 存储目录-> (获取 (触发单位) 的整数地址),标签-> (获取 蝗虫 的整数地址),存储实数-> (比重)
        ------------------------------------------------------------------------------------------------------------------------------
        想要获取一个技能的前面、后面的技能时就在字符串中循环判断,将星号之前的连成一个技能,星号后的连成一个技能。(获取一粒豌豆前面、后面的豌豆)我看yd说字符串的哈希值是互异的,也许可以利用这点再简化一下,我没深入想。
        逆天[YDWE] - 设置 [整数] loc_sum = ((从存储目录-> (获取 蝗虫 的整数地址),标签-> (获取 (触发单位) 的整数地址) 上获取字符串)的长度)
        逆天[YDWE] - 设置 [字符串] loc_preskill = <空字符串>
        逆天[YDWE] - 循环动作[loop_m]从 1 到 (loc_sum), 运行 (Loop - 动作)
        Loop - 动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
        If - 条件
        (截取 (loc_string) 的 (loc_sum) - (loc_sum) 字节部分) 等于 *
        Then - 动作
        Else - 动作
        逆天[YDWE] - 设置 [字符串] loc_preskill = ((loc_preskill) + (截取 (代码: 刚刚读取的字符串) 的 (loop_m) - (loop_m) 字节部分))


        IP属地:湖北本楼含有高级字体37楼2014-09-03 20:25
        收起回复
          偷懒打屁屁


          IP属地:湖北38楼2014-09-04 20:13
          收起回复