Использовать массивы или есть более элегантный способ? - 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 }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д