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

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

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

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

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

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

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


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

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

10   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы