如何根据玩家的敏捷度来计算他们的转弯?

时间:2018-09-21 12:37:56

标签: c# unity3d

domain/index.php/blog/2

这是我到目前为止所做的。我正在使用字典来存储播放器的名称及其灵活性,并使用一个数组来存储每个灵活性值以对其进行排序。

好吧,我有三位球员和他们各自的速度。我想将每个名称存储为键,并将每个值存储为字典中的速度(int)。然后,我想以某种方式找到其中一个具有最高速度值并返回其名称。例如:卡尔:10马克:12约翰:11->马克

1 个答案:

答案 0 :(得分:1)

将播放器及其属性封装在一个类中,而不是将它们与字典保持在一起,这样操作起来会更容易。

例如,创建一个用于模拟玩家统计信息的类:

public class PlayerStats
{
    public string PlayerId { get; set; }
    public int Dexterity { get; set; }
}

然后您可以像这样使用它:

public static void Main()
{
    var DestrezzaGiocatore1 = 5;
    var DestrezzaGiocatore2 = 1;
    var DestrezzaGiocatore3 = 6;

    List<PlayerStats> playerStats = new List<PlayerStats>()
    {
        new PlayerStats() { PlayerId = "1", Dexterity = DestrezzaGiocatore1 },
        new PlayerStats() { PlayerId = "2", Dexterity = DestrezzaGiocatore2 },
        new PlayerStats() { PlayerId = "3", Dexterity = DestrezzaGiocatore3 }
    };

    var statsSorted = playerStats.OrderByDescending(a => a.Dexterity);    
    Console.WriteLine($"Player {statsSorted.First()} has the highest dexterity: {statsSorted.First().Dexterity}");

    foreach (var playerStat in statsSorted)
    {
        Console.WriteLine($"Player {playerStat.PlayerId}: {playerStat.Dexterity}");
    }

    Console.ReadKey();
}