加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何管理多个增长列表?

发布时间:2020-12-15 23:30:00 所属栏目:百科 来源:网络整理
导读:该计划首先收集游戏中盟军/敌方奴才的数量. var eminions = MinionManager.GetMinions(Player.ServerPosition,1500 MinionTypes.All,MinionTeam.Enemy).ToList(); var aminions = MinionManager.GetMinions(Player.ServerPosition,1500,MinionTypes.All,Mini
该计划首先收集游戏中盟军/敌方奴才的数量.

var eminions = MinionManager.GetMinions(Player.ServerPosition,1500 MinionTypes.All,MinionTeam.Enemy).ToList();
 var aminions = MinionManager.GetMinions(Player.ServerPosition,1500,MinionTypes.All,MinionTeam.Ally).ToList();

然后我使用一个函数将列表中找到的每个对象转换为距离:

emd.Add(eminions[0].ServerPosition.Distance(aminions[i].ServerPosition)); //the count is 5

我们的列表’emd’包含(aminions.Count)距离,在我们的示例中= 5.

emd [0] = 500
emd [1] = 400
emd [2] = 300
emd [3] = 200
emd [5] = 100

这就是它变得棘手的地方,我们想要找出列表中最小距离的位置.如果我们理论化,我们可以看到它的emd [5] = 100.但我怎么得到’5’?

摘要:程序必须在列表中找到最小的数字,然后在列表中找到它所在的位置.

这是我尝试过的:我尝试比较每个数字以查看最小的数字,如果是真的,添加到新列表,我面临的问题是我创建了太多的列表,我不准备处理不同数量的小兵.

var eminions = MinionManager.GetMinions(Player.ServerPosition,MinionTeam.Enemy).ToList();
var aminions = MinionManager.GetMinions(Player.ServerPosition,MinionTeam.Ally).ToList();
if (eminions.Count > 0 && aminions.Count > 0)
{
    List<double> emd = new List<double>();
    List<bool> bdistance = new List<bool>();
    for (int i = 0; i < aminions.Count; i++)
    {
        emd.Add(eminions[0].ServerPosition.Distance(aminions[i].ServerPosition));

        for (int j = 0; j < aminions.Count; j++)
        {
            if (emd[i] > emd[j])
            {
                bdistance.Add(true);
            }
        }   
    }
}

解决方法

你可以轻松找到它!

var minIndex = emd.IndexOf(emd.Min());

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读