Использовать массивы или есть более элегантный способ? - C#

Узнай цену своей работы

Формулировка задачи:

Пишу игру. Есть предметы которые выпадают из монстров. Например: золото, аптечка, автомат и т.д. У каждого предмета есть шанс его выпадения. Золото падает в 60%, аптечка 10%, автомат 5%, остальное ничего не падает. Не приходит в голову каким образом "соединить" золото с 60% шансом. Первый вариант что приходит в голову это создать массив. "gold","60" "health","10" "weapon_ak47", "5" или это нужно делать через класс? создать класс loot (собственно что выпадает) со свойствами item (вещь), chance (шанс). но я не представляю как потом обратиться в цикле ко всем. грубо:
public class DropItem {
 
public string Item {get;set;}
public float ChanceOfDrop {get;set;}
 
}
 
///////
void Loot (DropItem item, string itemName, float chance) {
 
DropItem item = new DropItem ();
dropItem.Item = itemName;
dropItem.ChanceOfDrop = chance;
return;
}
Как потом перебрать то что я наплодил?

Решение задачи: «Использовать массивы или есть более элегантный способ?»

textual
Листинг программы
List<DropItem> drop = new List<DropItem>();
drop.Add(new DropItem() {Item = "item", ChanceOfDrop = 0.50});
foreach(DropItem item in drop)
{
    //работа с обьектом item
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы