এনুম বনাম দক্ষতার মানগুলির জন্য পূর্ণসংখ্যা


10

আমি একটি বেসিক দক্ষতা এবং বৈশিষ্ট্য সিস্টেমটি বাস্তবায়ন করছি, যদিও আমার এটি সম্পর্কে কীভাবে যাওয়া উচিত সে সম্পর্কে আমার দ্বিতীয় চিন্তাভাবনা রয়েছে।

উদাহরণস্বরূপ, আমি একটি অভিধান / হ্যাশম্যাপ ব্যবহার করতে পারি যা কী উপস্থাপন করতে দক্ষতা টাইপ এনামগুলি এবং মানগুলির প্রতিনিধিত্ব করে পূর্ণসংখ্যার মান ব্যবহার করে। তবে আমি কি এটা করব?

public class Skills
{
    public IDictionary<StatType, Int> skills; //StatType is enum, being the key; the int //is the value.

}

vs.

public class Skills
{
    public int LongBlade, Armor, Marksman; //...etc
}

কেবলমাত্র প্রাথমিক পূর্ণসংখ্যার ব্যবহারের বিপরীতে আমি এখানে সুরক্ষা প্রকারের সুবিধাগুলি জানতে চাই। কোন সুপারিশ?


আমি interface Skill { /* ... */ int toInt(); }; public class Skills : IList { private ArrayList<Skill> skills; /* ... */ };আসলে পছন্দ করতাম ...
মার্টিন সোজকা

উত্তর:


8

যদি শেষ পর্যন্ত হতে চলেছে:

  • আপনার খেলা জুড়ে বিভিন্ন ধরণের দক্ষতার ধরণ,
  • বা ক্ষমতা প্রদান আইটেম,
  • বা ক্ষমতা-দানকারী বাষ্প,
  • বা একটি বৃহত ক্ষমতা গাছ,

তারপরে আমি পৃথক দৃষ্টিকেত্রে ক্ষেত্রের পরিবর্তে এনাম কী বা ডিকোরিয়ানের পরিবর্তে অভিধানে স্ট্রিং বা পূর্ণসংখ্যার কীগুলির নমনীয়তা পছন্দ করতে শুরু করি।

আমার যুক্তি - কারণ আপনি শীঘ্রই বুঝতে পারেন ...

ছেলে, আমি যদি আমার ম্যাথক্রাফটটি টুইঙ্ক করতে পারি এবং ইউনিট দক্ষতাগুলিতে (আমার প্রিয় পাঠ্য সম্পাদক | এক্সেল | একটি কাস্টম সরঞ্জাম) নির্বাচন করতে পারি তবে ভাল লাগবে।

... যার পর্বে স্ট্রিং বা পূর্ণসংখ্যক কীগুলির সাথে একটি অভিধান এনাম মান বা উদাহরণ ক্ষেত্রগুলির একটি দীর্ঘ তালিকা বজায় রাখার চেয়ে প্রাকৃতিক ফিট হয়ে যায়। তবে, বলেন, টুলটি সর্বদা সি # কোড উত্পন্ন করার জন্যও রচনা করা যেতে পারে, তাই আপনি একটি সুখী সংকর খুঁজে পেতে সক্ষম হতে পারেন।

যদি আপনার গেম জটিলতা মোটামুটি সহজ হতে চলেছে এবং আপনার বিভিন্ন দক্ষতা ছোট হয়ে চলেছে, তবে হাতের সাথে উদাহরণ ক্ষেত্রগুলি পরিচালনা করা (অভিধান ও এনামের পরিবর্তে) বেশি সুবিধাজনক বলে মনে হচ্ছে এবং রান-টাইমে এবং "কীস্ট্রোক" উভয় ক্ষেত্রেই ইন্ডিয়ারেশনের স্তরকে এড়িয়ে চলে - সময়।


আপনি ইউনিট ক্ষমতা এবং গণিত যদিও মানে? আমি বেশিরভাগ অনুসরণ করছি না, অন্তত সে ক্ষেত্রে। আমি একটি এনাম ব্যবহার করতে চাই, যদি এটি ব্যবহারিক হয় তবে।
blissfreak

আমি আংশিকভাবে আপনার সাথে একমত আছি, স্ট্রিং উচ্চ স্তরের (যেমন স্ক্রিপ্টিং এপিআই) দুর্দান্ত তবে স্ট্রিংগুলির চারপাশে স্থানান্তর করা ভাল ধারণা নয় (মেমরি এবং চলমান সময়ের সীমা সর্বাধিক পরিমাণে প্রতি ফ্রেমে আপনি করতে পারেন) s হাইব্রিড হতে পারে একটি বিকল্প হতে পারে: পূর্ণসংখ্যা শনাক্তকারী সহ নামযুক্ত সত্তা। নামগুলি একবারে সংরক্ষণ করতে হবে (সম্ভবত একক মানচিত্রে) এবং সত্তাগুলি পূর্ণসংখ্যা ব্যবহার করে তাদের সনাক্ত করে। এটি করা আপনি যদি প্রয়োজন হয় তবে আপনার ইন্টারফেসগুলিতে স্ট্রিং লাগাতে পারেন এবং এ্যামগুলের মতো কাজ করতে পারেন।
FxIII

@fxiii আমি সম্মত, এবং এই কারণেই আমি "স্ট্রিং বা পূর্ণসংখ্যা" উল্লেখ করেছি। যদিও আমি খুব বিস্তারিতভাবে যাইনি, তাই পূর্ণসংখ্যা ব্যবহারের ক্ষেত্রে কেন এবং কীভাবে কিছু উত্থাপনের জন্য আপনাকে ধন্যবাদ।
ডকমেস্টের
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.