Как рассчитать ходы игроков на основе их ловкости? - PullRequest
0 голосов
/ 21 сентября 2018
public void CalcolaTurni()
{
    Dictionary<string, int> dict = new Dictionary<string, int>();
    dict.Add("1", DestrezzaGiocatore1);
    dict.Add("2", DestrezzaGiocatore2);
    foreach (var item in dict.OrderByDescending(r => r.Value))
    {
        Console.WriteLine("Key: {0}, Value: {1}", item.Key, item.Value);
        array.Add(item.value)

    }
}

Это то, что я сделал до сих пор.Я использую словарь для хранения имени игрока и его ловкости, а также массив для хранения каждого значения ловкости для его сортировки.

Хорошо, скажем, у меня есть три игрока и их соответствующая скорость.Я хотел бы сохранить каждое имя как ключ и каждое значение как их скорость (int) в словаре.Затем я хотел бы как-то найти, какой из них имеет наибольшее значение скорости, и вернуть его имя.Например: Карл: 10 Марка: 12 Иоанна: 11 -> Марка

1 Ответ

0 голосов
/ 21 сентября 2018

Инкапсулируйте игрока и его свойства вместе в классе, а не храните их вместе со словарем, с ним будет легче работать.

Например, создайте класс для моделирования статистики игрока:

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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...