Использовать массивы или есть более элегантный способ? - 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
}