程序开始收集游戏中友军/敌军小兵的数量。
我们的列表'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, 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, 1500, MinionTypes.All, MinionTeam.Enemy).ToList();
var aminions = MinionManager.GetMinions(Player.ServerPosition, 1500, MinionTypes.All, 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);
}
}
}
}