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