Предметы для консольной игры c#

#c# #class #console #items

Вопрос:

Я новичок в кодировании и создании текстовой консольной rpg-игры. Я хочу внедрить боевую систему на основе предметов, проблема в том, что я не уверен, как создавать новые предметы с именами и статистикой из класса. Можно ли мне привести пример простого класса элементов, к которому я могу легко обратиться и создать новый элемент?

Комментарии:

1. docs.microsoft.com/en-us/dotnet/csharp/tour-of-csharp

Ответ №1:

Вы можете использовать словарь для управления своими предметами, чтобы создавать их или динамически создавать в своей игре. Вот небольшой пример ниже.

Программа.cs:

 using System;
using System.Collections.Generic;

namespace RPGGame
{
    class Program
    {
        static Dictionary<string, Item> items;

        static void Main(string[] args)
        {
            //
            items = new Dictionary<string, Item>();

            items.Add("sword", new Item("Gold Sword"));

            items["sword"].AddStat("Sharp");
            items["sword"].AddStat("Magic");
            items["sword"].AddStat("Attack");

            Console.WriteLine("Item: "   items["sword"].GetName());

            Console.WriteLine("Stats: ");

            foreach (string stats in items["sword"].GetStats())
            {
                //
                Console.WriteLine(" - "   stats);
            }
        }
    }
}
 

Пункт.cs:

 using System;
using System.Collections.Generic;

namespace RPGGame
{
    public class Item
    {
        private string name;
        private List<string> stats;

        public Item(string name)
        {
            //
            this.name = name;
            this.stats = new List<string>();
        }

        public void SetName(string name)
        {
            //
            this.name = name;
        }

        public string GetName()
        {
            //
            return name;
        }

        public void AddStat(string stat)
        {
            //
            stats.Add(stat);
        }

        public List<string> GetStats()
        {
            //
            return stats;
        }
    }
}