আমি কীভাবে স্বেচ্ছাসেবী / জেনেরিক ক্যাটাগরি নোডের সাথে একটি পরিবর্তনীয়, বৈচিত্রময় জেট্রি তৈরি করব?


12

দয়া করে নোট করুন: আমি এখানে কোডিং সহায়তা চাই না, আমি Programmersএকটি কারণে করছি । আমি আমার প্রোগ্রাম পরিকল্পনা / লেখার দক্ষতা জাভা সম্পর্কে আমার বুঝতে (কেবল) নয় উন্নত করতে চাই

আমি এখানে এই এলএআরপি গেমের জন্য তালিকাভুক্ত দক্ষতার উপর ভিত্তি করে একটি গাছকে কীভাবে একটি স্বেচ্ছাসেবী বিভাগের সিস্টেম তৈরি করতে হয় তা নির্ধারণ করার চেষ্টা করছি । দক্ষতাটিও একটি বিভাগ ছিল কিনা তার জন্য আমার আগের প্রয়াসটিতে একটি দুরত্ব ছিল। এর চারপাশে কোড দেওয়ার চেষ্টা করা অগোছালো ছিল। আমার গাছটি আঁকতে আমি লক্ষ্য করেছি যে কেবলমাত্র আমার 'পাতাগুলি' দক্ষতা এবং আমি অন্যকে বিভাগ হিসাবে লেবেল করেছি।

আমি যা করছি তার পরে এমন একটি গাছ তৈরির উপায় যা মডেল এবং দেখুনকে পৃথক করার চেষ্টা করে এবং একটি স্বেচ্ছাসেবক পিতামাতার সাথে একটি স্বেচ্ছাচারিত ধরণের শিশু নোড (সম্পাদিত / রেন্ডার করার একটি পৃথক পদ্ধতি সহ) যুক্ত করে দেয়।

উপরের লিঙ্ক থেকে বিভিন্ন দক্ষতার তালিকাভুক্ত একটি গাছ

এনবি সমস্ত কিছু এখানে দক্ষতার হিসাবে কেনা হয়, এমনকি যেখানে এটি কোনও সম্পত্তি হিসাবে মনে হয়। শেষ ব্যবহারকারীরা এগুলি কেনার দক্ষতা হিসাবে দেখবেন (যা তারা কাগজের এটিমে করেন) তাই একই পৃষ্ঠায় উপস্থাপন করা উচিত।

গাছের ব্যাখ্যা: হার্ড কোডড সর্বোচ্চ স্তরের বিভাগগুলির ( অস্ত্র, শারীরিক ও মানসিক, চিকিত্সা এবং আরও অনেকগুলি) সেট নিয়ে গাছটি 'জন্মগ্রহণ করে' । এটি থেকে ব্যবহারকারীর একটি দক্ষতা যুক্ত করতে সক্ষম হওয়া প্রয়োজন। শেষ পর্যন্ত তারা উদাহরণস্বরূপ ' একহাত তরোয়াল বিশেষায়িতকরণ' দক্ষতা ( আইটেম নয় ) যুক্ত করতে চায় । এটা করার জন্য আপনি আদর্শভাবে সঙ্গে 'জুড়ুন' ক্লিক করুন চাই Weaponsনির্বাচিত এবং তারপর নির্বাচন One-handedএকটি কম্বো নোড থেকে আবার যোগ করতে পারেন এবং একটি পাঠ ক্ষেত্রে একটি নাম লিখুন যে সন্তান উপস্থিত হয়, তারপরে যে সন্তান নোড প্রদর্শিত। তারপরে সেই পাতার জন্য একটি 'স্তর' বা 'স্তর' যুক্ত / নির্দিষ্ট করতে আবার যুক্ত ক্লিক করুন; প্রথম দক্ষতা, তারপরে বিশেষজ্ঞতা (উদাহরণস্বরূপ)।

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

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

উপরে বর্ণিত অন্য দক্ষতাগুলিতে আলাদাভাবে আচরণ না করাতে আমি এই ধরণের অবজেক্টগুলির গুচ্ছকে কীভাবে প্রসারিত করতে পারি?

যদি ব্যবহার করার মতো কোনও ভাল ব্যবস্থা না থাকে তবে কীভাবে এই ধরণের জিনিসটি করা যায় তা নিয়ে কাজ করার জন্য কি কোনও ভাল প্রক্রিয়া রয়েছে?

আমার মাথায় গিয়ারগুলি ঘুরছে:

আমার সর্বদা দরকার:

  • পিতামাতাকে পরীক্ষা করুন
  • পিতামাতার উপর ভিত্তি করে বিকল্পগুলি সরবরাহ করুন

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


আমি শুরু করেছি (বন্ধুর সাথে কথা বলার পরে) ডেটাতে স্কিল কম্পোনেন্টগুলির জন্য একটি বিমূর্ত ক্লাস বের করা এবং তারপরে বেসিক ক্লাসটি বাড়িয়ে পৃথক কেসগুলি নির্দিষ্ট করে। গাছটি কেবল ডেটা দেখবে এবং যথাযথভাবে নিজেকে আঁকবে। আমি যদি কাজ করে তবে জবাব দেব।
পিওরফেরেট

প্রশ্ন: জীবন হ'ল এমন একটি দক্ষতা যা একটি "স্তর" সম্পত্তি যা বাড়ানো যায়। এটি কি জীবনের পক্ষে অনন্য, না কি অন্যান্য দক্ষতাও স্তরের বৃদ্ধি হতে পারে? আমি আপনার সমাধানে একটি বিমূর্ত শ্রেণি এবং একাধিক ইন্টারফেসের সংমিশ্রণ কল্পনা করতে পারি, যেমন "স্পেশালাইজযোগ্য" এর মতো বেশ কয়েকটি ইন্টারফেসের পাশাপাশি আপনার গাছ তৈরির জন্য একটি বিমূর্ত "দক্ষতা" বা "বিভাগ" বা "দক্ষতা নোড" শ্রেণীর মতো "বা" লেভেলেবল ", বিভিন্ন কার্যকারিতার সাথে মিশ্রিত করতে যা গাছের কাঠামোর জন্য প্রয়োজনীয় নয়। কেবল মজাদার জন্য মন্তব্য করা ... আশা করি আপনি যা খুঁজছেন তা পেয়ে যাবেন!
ডেভিড ক্যাসিনস্কি

আপনি প্রশ্নে jTree নির্দিষ্ট করুন। আপনি কীভাবে পাঠ্য ক্ষেত্রগুলি এবং কম্বো বাক্সগুলি নোড হিসাবে প্রদর্শিত হবে তা সম্পর্কে জিজ্ঞাসা করছেন, বা জাভা নির্দিষ্ট নয় এমন কোনও নকশার সন্ধান করছেন?
PSr

@ ডেভিডক্যাজেনস্কি আপনি মাথার পেরেকটি আঘাত করেছেন। আমি এ ধরণের জিনিসটি asap বাস্তবায়ন শুরু করব।
পিওরফেরেট

@psr আমি দেখার চেষ্টা করছি যে ক্লাসগুলির একটি কোডিং প্যাটার্ন (অগত্যা একটি 'ডিজাইনের ধরণ' নয়) বা অন্যথায় এটিকে ভিত্তি করার জন্য। ডেভিডক্যাসেনস্কি এর খুব কাছাকাছি আসে।
পিওরফেরেট

উত্তর:


3

সরল মিউটেবল জেটি ট্রি উদাহরণ

এখানে চিত্র বর্ণনা লিখুন

কোড (উপরের চিত্রটি তৈরি করার জন্য জাভা 7 এর সাথে সম্মতিযুক্ত এবং পরীক্ষিত):

import java.awt.*;
import javax.swing.*;
import javax.swing.tree.*;

public class SimpleTree extends JFrame {
    public static void main(String[] args) {
        new SimpleTree();
    }

    public SimpleTree() {
        super("Mutable Varied JTree");
        Container content = getContentPane();
        N root = new N("Root");

        N weapons = new N("Weapons").add(
            new N("One-handed").add(
                new N("Sword").add("Proficiency", "Specialization"), 
                new N("Mace").add("Proficiency")),
            new N("Bow").add("Proficiency"));
        root.add(weapons);

        N phys = new N("Physical & Mental").add(
            new N("Life"),
            new N("Strength").add(
                "Double", "Triple", "Quadruple"));

        root.add(phys);
        N med = new N("Medical");
        med.add(new N("Bind Wounds"));
        med.add(new N("Set Broken Bones"));
        root.add(med);

        JTree tree = new JTree(root);
        content.add(new JScrollPane(tree), BorderLayout.CENTER);
        setSize(275, 300);
        setVisible(true);
    }

    private class N extends DefaultMutableTreeNode {
        public N(String s) { super(s); }
        public N add(String... strs) {
            for (String s : strs) {
                super.add(new N(s));
            }
            return this;
        }
        public N add(N... ns) {
            for (N n : ns) {
                super.add(n);
            }
            return this;
        }
    }
}

এই জেটিআর টিউটোরিয়ালটির জন্য বিশেষ ধন্যবাদ

আপডেট: সম্ভাব্য সমাধানের আলোচনা

গতিশীল ট্রি তৈরির বিষয়ে একটি টিউটোরিয়াল রয়েছে , নোডগুলি যুক্ত / সরান / সাফ করার জন্য ফ্রেমের নীচে বোতামগুলি ব্যবহার করে।

কম্বো-বাক্স এবং এর জন্য, আপনি উপযুক্ত সুইং ক্লাসের অবজেক্ট নিতে চান এবং তাদের একটি জাকমবোবক্সের মতো কিছু হতে চান যা java.swing.tree.MutableTreeNode প্রয়োগ করে। জাভা সুইং টিউটোরিয়াল নিয়ন্ত্রণের একটি তালিকা আছে ।

লোকেরা কোন ধরণের নোড যুক্ত করতে চায় এবং নোডটি সম্পাদনা করতে পারে তা বেছে নিতে আপনাকে ব্যবহারকারী-ইন্টারফেস উপাদান তৈরি করতে হবে। যদি তারা একটি কম্বো-বাক্স যুক্ত করে তবে বাক্সটি কোন পছন্দগুলি উপলভ্য করবে তা নির্ধারণ করতে তাদের সক্ষম হতে হবে।

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

আপডেট: প্রকল্প ওভারভিউ সহ প্রস্তাবিত সমাধান

সবচেয়ে সহজ সমাধানটি হ'ল ডেটাবেসগুলি ভুলে গিয়ে প্রথমে ডেটাগুলির এক্সএমএল এক্সপ্রেশন নিয়ে আসে, তারপরে এক্সএমএল ফাইল সম্পাদনা করে এবং কোনও বিশেষ কম্বো-বাক্স বা কোনও কিছুই ছাড়াই কেবল JTree হিসাবে ফলাফলগুলি প্রদর্শন করে। আমি মনে করি এটি চিবুয়েজ ওপাটা তার উত্তর দিয়ে পরামর্শ দিচ্ছিল। এই গাছের একটি আংশিক এক্সএমএল উপস্থাপনা নিম্নলিখিতগুলির মতো দেখতে পারে:

<folder name="Physical &amp; Mental">
    <int name="Life">12</int>
    <drop-down name="Strength">
        <option name="Single" />
        <option name="Double" />
        <option name="Triple" />
        <option name="Quadruple" />
    </drop-down>
</folder>
<folder name="Medical">
    <text name="Bind Wounds" />
    <text name="Set Broken Bones" />
</folder>

আপনার জন্য এখানে কয়েকটি সম্ভাব্য মাইলফলক রয়েছে:

  • একটি এক্সএমএল বা জেএসএন ডেটা ফর্ম্যাট তৈরি করুন, তারপরে এমন একটি প্রোগ্রাম লিখুন যা সেই ফর্ম্যাটটির একটি ফাইল পড়ে এবং এটি কোনও কম্বো-বাক্স, কেবল ফোল্ডার এবং ফাইল ছাড়াই একটি JTree হিসাবে প্রদর্শন করে।
  • JTree ডিসপ্লেতে সুইং নিয়ন্ত্রণ যুক্ত করুন
  • একই ফাইলটি লিখতে আপনার প্রোগ্রামটি প্রসারিত করুন
  • একটি ব্যবহারকারী ইন্টারফেস তৈরি করুন যাতে ব্যবহারকারী জিইউআই ব্যবহার করে নোডগুলি যুক্ত করতে এবং সম্পাদনা করতে পারে

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

এই সমাধানগুলির মধ্যে যে কোনওটি অনেক কাজ এবং একটি প্রাথমিক প্রকল্পের চেয়ে অবশ্যই বড়। এর অর্থ আপনি আপনার এলআরপি বাজানোর চেয়ে জাভা সুইং এবং এক্সএমএল বা জেএসএন শিখতে অনেক বেশি সময় ব্যয় করবেন যার কারণে আমি বিদ্যমান সরঞ্জামগুলির সাথে প্রথম করার বিকল্পগুলি অন্বেষণ করেছি। যে কোনও কিছু শেখার সর্বোত্তম উপায় হ'ল আপনি যেভাবে শেখার জন্য সবচেয়ে বেশি অনুপ্রাণিত হন is সুতরাং এটি আপনার জন্য একটি নিখুঁত প্রকল্প হতে পারে।

আমি আশা করি এটি সাহায্য করবে.


হাই, আমি কেবলমাত্র আমার ফোনে তাই আমি এটি পুরোপুরি পর্যালোচনা করতে পারছি না তবে মনে হচ্ছে আমি কী পরে যাচ্ছি তবে আমি আমার প্রশ্নের বিবরণ হিসাবে বিভিন্ন ধরণের নোডের বিনিময় করতে সক্ষম হওয়া দরকার। যদিও ট্র্যাকে থাকার জন্য +1!
পিওরফেরেট

1
"DefaultMutableTreeNode নোডের পিতামাতা এবং শিশুদের পরীক্ষা ও সংশোধন করার জন্য ক্রিয়াকলাপ সরবরাহ করে:" ডকস.অরাকল.com
javase/

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

1
ঠিক আছে, সুতরাং আপনি এমন একটি প্রোগ্রাম চান যা লোককে গাছ তৈরি করতে দেয় - একটি রূপরেখার মতো। মাইক্রোসফ্ট ওয়ার্ডে ইতিমধ্যে একটি আউটলাইন ভিউ রয়েছে। ওপেনঅফিস / লিবারঅফিস রাইটে কিছু অনুরূপ কার্যকারিতা রয়েছে। আপনার আর কি দরকার?
গ্লেনপিটারসন

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

2

আমি মনে করি না যে JTree সমস্যাটি সমাধান করার চেষ্টা করছেন তার সঠিক প্রতিনিধিত্ব। আমি আপনার ওয়েব সাইটের দিকে নজর রেখেছি এবং আমি স্টাফগুলির তালিকা দেখতে পাচ্ছি। এটি দুর্দান্ত শুরু, তবে আমি মনে করি একটি অন্তর্নিহিত ডেটা ডিজাইন রয়েছে যা আপনার থাকতে পারে তবে আমি দেখছি না।

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

এখানে তিনটি ডেটা অবজেক্ট যা এখন পর্যন্ত আপনার ডিজাইন থেকে আমার সামনে দাঁড়িয়ে আছে:

Character:
    Life (a value: e.g. 12)
    Strength (a value: e.g. double, triple, quadruple)
    Skills (list or set of weapon-skills, healing-skills)
    Possessions (list of weapons, armor and other possessions)
    WornArmor (maybe only wear one you possess at a time?)
    WieldedWeapon (one or two of your posessions)

Skill:
    Skill-Type (healing, manufacture, or weapon)
    RelevantWeapon (for this skill)

Weapon:
    IsOneHanded (boolean)
    IsBow (boolean)

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

কাগজের একটি প্যাড নিন এবং প্রথম পৃষ্ঠায় পৃষ্ঠার মাঝখানে চরিত্রটি রাখুন এবং তার চারপাশে 5-10-এর গুরুত্বপূর্ণ গেম-ওয়ার্ল্ড অবজেক্টগুলি তালিকাভুক্ত করুন। গাছ বা পাঠ্য ক্ষেত্র বা কম্বো-বাক্স সম্পর্কে চিন্তা না করে কোন ডেটা কেবল অন্য কোনও জিনিসের (যেমন জীবন এবং শক্তি চরিত্রের অবিচ্ছেদ্য অংশ হওয়া) এবং কীসের সবচেয়ে গুরুত্বপূর্ণ সম্পর্কগুলি অবজেক্টগুলির মধ্যে কী তা নির্ধারণ করুন Figure সম্পর্কের প্রতিনিধিত্ব করতে বস্তুর মধ্যে লাইন আঁকুন তারপরে কোন সম্পর্কগুলি 1: 1, যা 1: অনেক এবং অনেকগুলি: অনেকগুলি এবং অনেকগুলি সেগুলি লেবেল করুন। "হ্যাশ-এ" এবং "হ'ল-এ" এবং অন্যান্য ধরণের সম্পর্কও থাকতে পারে।

আপনি সিদ্ধান্ত নিতে পারেন যে আপনাকে ওয়েপসকিল বনাম হিলিংস্কিল বনাম উত্পাদনকারী স্কিলের জন্য পৃথক উপস্থাপনা প্রয়োজন। অথবা আপনি সিদ্ধান্ত নিতে পারেন যে এগুলি এতটা সমান যে তারা কোনও দক্ষতার টেবিলের সাথে (আমার উদাহরণে উদাহরণস্বরূপ) কোন ধরণের দক্ষতা তা নির্ধারণ করে with

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

জেটি ট্রিগুলিকে দেখার পরিবর্তে, আমি আপনাকে ডেটা স্ট্রাকচার, ডেটাবেস ডিজাইন এবং সম্ভবত ডেটা মডেলিংয়ের বিষয়গুলি সন্ধান করার পরামর্শ দিচ্ছি। সম্পাদনা-> বা ডেভিড ক্যাকজেনস্কির পরামর্শ অনুসারে সত্তা-সম্পর্কের ম্যাপিং ডায়াগ্রামগুলি আরও ভাল ! <-EDIT আপনি যদি সঠিকভাবে ডেটা ডিজাইনটি পান তবে জাভা এবং ইউআই এটি থেকে স্পষ্ট এবং প্রাকৃতিকভাবে প্রবাহিত হবে। তবে আপনি যদি এটি ভুল হয়ে যান তবে জাভা-কুং-ফু বা ইউআই-সুন্দরের চেয়ে কোনও পরিমাণ এটি ঠিক করতে পারে না।

শুভকামনা!


2

আমি অবজেক্ট মডেল উপর ফোকাস করতে যাচ্ছি।

আমি মনে করি আপনি যে নমনীয়তাটি চান তার জন্য, আপনি সম্ভবত আপনার ক্লাসগুলিকে একটি জ্ঞানে আলাদা করতে চান (সম্ভবত "সংজ্ঞা" এই ক্ষেত্রে একটি ভাল শব্দ) স্তর এবং একটি লেনদেন স্তর layer "স্তর" দ্বারা আমি সত্যিই বলতে চাইছি এগুলি আপনার মাথায় যুক্তিসঙ্গতভাবে পৃথক করা। জ্ঞান স্তরটি কীভাবে আপনার গাছটি রাখবেন তার সংজ্ঞা রয়েছে এবং এতে ডেটা গেম ডিজাইনার থেকে আসে এবং ডেটা স্তরটি একটি নির্দিষ্ট চরিত্রের জন্য নির্দিষ্ট পছন্দগুলি সংরক্ষণ করে।

আপনার জ্ঞান স্তরটি কমপক্ষে কিছুটা অগোছালো হবে, কারণ আপনি গাণিতিকভাবে পরিষ্কার মডেল না দিয়ে একটি দুর্দান্ত খেলা করার চেষ্টা করছেন।

আপনার এখন পর্যন্ত যা আছে তা সংগঠিত করার চেষ্টা করে, আমি মনে করি আপনার কাছে দক্ষতা সংজ্ঞা ক্লাসের দক্ষতা-ডেফিনিশন টাইপের একটি প্যারেন্ট সম্পত্তি রয়েছে। কয়েকটি কেস কভার করার জন্য আপনার কাছে দক্ষতা সংজ্ঞা (যা ডেটাবেজে একটি DEF_SkillType টেবিলের এন্ট্রি হয়ে উঠতে পারে) এর সাবক্লাস রয়েছে।

"অস্ত্র", "শারীরিক এবং মানসিক" এবং "চিকিত্সা" মনে হচ্ছে শিরোনাম (এবং শিশু দক্ষতা) ছাড়া কিছুই নেই।

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

"জীবন" এর সাথে কোনও পূর্ণসংখ্যা যুক্ত বলে মনে হচ্ছে। এটি কোনও পূর্ণসংখ্যার ব্যবহার করে এমন কোনও ভবিষ্যতের বৈশিষ্ট্যগুলির সাথে এই শ্রেণিটি ভাগ করতে সক্ষম হতে পারে না, কারণ কীভাবে পূর্ণসংখ্যা বাড়ানো হয় তার উপর নিহিত আচরণ রয়েছে। যাই হোক না কেন, বর্তমানে এটির নিজস্ব শ্রেণি প্রয়োজন need

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

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

সুতরাং, চরিত্রটির একটি "দক্ষতা" দক্ষতা থাকবে যার পিতামাতা হলেন "তরোয়াল" দক্ষতা এবং যার ধরনটি দক্ষতা_আপনি। ডাটাবেসে TRANS_SkillDifinition রেকর্ডে লেনদেনের "তরোয়াল" দক্ষতা রেকর্ডের একটি বিদেশী কী এবং "দক্ষতা" নামযুক্ত জ্ঞান স্তর ডিএইফ_সিলকিলভিল রেকর্ড রয়েছে।

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

"তরোয়াল" দক্ষতার অবজেক্টটির "একহাত" এর প্যারেন্ট অবজেক্ট রয়েছে কারণ ব্যবহারকারী "তরবারি "টিকে" একহাত "বিভাগে রাখার পছন্দ করেছেন। এটি দক্ষতাশ্রেণীর ধরন of ডাটাবেসে এটির জন্য "একহাত" রেকর্ডের জন্য DEF_SkillChoice টেবিলের একটি বিদেশী কী রয়েছে এবং কোনও লেনদেনের পিতা বা মাতা নেই কারণ এই দক্ষতার জন্য সমস্ত অতিরিক্ত ডেটা জ্ঞান স্তরে সংরক্ষণ করা হয়।

নতুন চরিত্রের জন্য প্রাথমিক গাছটি তৈরি করার জন্য, শুধুমাত্র জ্ঞানের স্তরটি অনুসন্ধান করা দরকার। একটি চরিত্রের জন্য করা পছন্দগুলি পপুলেট করার জন্য লেনদেনের স্তরের প্রয়োজন।

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

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


যদি এটি অস্পষ্ট হয় বা প্রশ্নের উত্তর না দেয় তবে আমাকে জানান। এটি একটি বড় বিষয় এবং এক পর্যায়ে আমাকে থামতে হয়েছিল।
PSr

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

@ পিয়ারফেরেট - আমি অনুমান করি যে উত্তরটি তখনই রেখে যাব - আমি নিশ্চিত নই যে আপনি কী সন্ধান করছেন তা আমি জানতাম।
psr

1

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

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

প্রথমে একটি "শ্রেণি" অবজেক্ট তৈরি করুন যা আইটেমগুলির আচরণ বর্ণনা করবে। এতে শ্রেণি শনাক্তকারী, "ক্ষেত্র" নাম এবং অনুমোদিত প্রকার এবং আইটেমের গণনা ইত্যাদি রয়েছে Example উদাহরণ: "মূল" শ্রেণিটি হল "প্লেয়ার প্রোপার্টি", "শারীরিক / মানসিক", "মেডিকেল", "অস্ত্র" ক্ষেত্র থাকে। এই ধরণেরটি "চূড়ান্ত": এই মুহুর্তে আপনি বিভিন্ন প্লেয়ারের ধরণ রাখতে চান না। ইঙ্গিত: পরে আপনি "অ-মানব দৈত্য" পরিচালনা করতে একই সরঞ্জামগুলি ব্যবহার করে এটি করতে পারেন ... :-)

"মেডিকেল" ক্ষেত্রটি

  • "সিঙ্গলটন": প্লেয়ারের একাধিক "মেডিকেল" তথ্য থাকতে পারে না
  • সন্তানের ধরণ স্থির করা হয়েছে, কেবল এখানে "মেডিকেল" ধরণের অবজেক্ট ব্যবহার করা যেতে পারে
  • প্রয়োজনীয়: আপনি যখন কোনও প্লেয়ার তৈরি করেন, তখন এটির "মেডিকেল" ক্ষেত্র থাকতে হবে

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

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

আপনার গেমটি শুরু হওয়ার সাথে সাথে আপনি আরম্ভ করেন এমন একটি বিশ্বব্যাপী উপলভ্য "ক্লাস স্টোর" তৈরি করুন এবং যখন কেউ তাদের নাম উল্লেখ করে তখন শ্রেণি সংজ্ঞাটি পরিবেশন করুন। এই ক্ষেত্রে শ্রেণি ডিফ অবজেক্টগুলি অবশ্যই অপরিবর্তনীয়।

"অবজেক্টস" আরও সহজ: এগুলি একই মূল শ্রেণি থেকে উত্পন্ন হতে পারে যা শ্রেণীর সংজ্ঞা সম্পর্কিত একটি রেফারেন্স এবং ক্ষেত্রগুলিতে জেনেরিক অ্যাক্সেস রয়েছে। ক্ষেত্রের নাম দ্বারা চিহ্নিত সেই শিশুদের ধারণ করতে সম্ভবত একটি হ্যাশম্যাপ ব্যবহার করুন। মনে রাখবেন: এই ক্ষেত্রগুলির মধ্যে কয়েকটিতে একটি একক অবজেক্ট থাকে, আবার কিছুতে অবজেক্টের সেট। এই দৃষ্টান্তগুলি অবশ্যই পরিবর্তনীয়।

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

আপনি যখন গাছটিতে একটি নোড নির্বাচন করেন, আপনি বস্তুর উদাহরণ পাবেন instance শ্রেণি দ্বারা, আপনি একটি যথাযথ সম্পাদক প্যানেল বা শ্রেণীর সংজ্ঞা দ্বারা উত্পন্ন জেনেরিক প্রদর্শন করতে পারেন (যেমন: ক্ষেত্রগুলির সাথে ট্যাব প্যানেলগুলি, ক্ষেত্রের ঘোষণার মাধ্যমে প্রকৃত ক্ষেত্রের জন্য সম্পাদকগণ: একটি বোতাম যা সঠিক ধরণের একটি শিশু তৈরি করে এর সাহায্যে আপনাকে উপলভ্য ক্লাসগুলির মধ্যে একটি নির্বাচন করতে দেয় এবং সেই উদাহরণের জন্য সম্পাদক ক্ষেত্রগুলি যেমন অস্ত্রের সম্পত্তি হিসাবে)। কাঠামোটি সংশোধন করার পরে, আপনাকে অবশ্যই গাছটি নিজেই রিফ্রেশ করতে হবে - ট্রিমোডেল এবং এর ফায়ার ... পরিবর্তন ফাংশনগুলি আপনার বন্ধু।

ভাল দেখাচ্ছে? নাকি খুব জটিল? ভাল, এটি গল্পের একটি ছোট ভগ্নাংশ। আমি কোন কথা বলিনি

  • শ্রেণি সংজ্ঞা শ্রেণিবিন্যাস / বা শ্রেণিবদ্ধকরণ। আপনি যখন একই ক্ষেত্রের (বিভিন্ন ধরণের তরোয়ালগুলির মতো) বিভিন্ন শ্রেণি যুক্ত করার পক্ষে সমর্থন করবেন তখন আপনি তাদের মধ্যে একটি ভাল ব্যবহার করুন। শ্রেণিবদ্ধকরণের পক্ষে: একটি শ্রেণীর একাধিক বিভাগ থাকতে পারে, স্থির উত্তরাধিকারী গাছ নয়, একটি ভাল স্টাফ যখন দক্ষতার উন্নতিতে এক্সপি ব্যয় করার সময় আপনি কোনও খেলোয়াড়ের "সমস্ত দক্ষতা" সংগ্রহ করতে চান ... :-)
  • অধ্যবসায় সমর্থন: আপনাকে কোনও বৈশিষ্ট্য বা জেএসওএন ফাইলের মতো বস্তুটির স্তরক্রমকে বহিরাগতভাবে সংরক্ষণ করার জন্য জেনেরিক সমাধান তৈরি করতে হবে। আপনি যদি নিজের মস্তিষ্ককে ভাল আকারে রাখতে চান তবে একটি মানব পাঠযোগ্য বিন্যাস, কোনও বাইনারি সিরিয়ালাইজেশন ব্যবহার করুন।
  • উদাহরণস্বরূপ সঞ্চয়: আপনি শীঘ্রই বুঝতে পারবেন যে আপনার গেমের "বিশ্বের" এক জায়গায় রাখা ভাল। একটি নির্দিষ্ট তরোয়াল আপনার প্লেয়ারের সম্পত্তি নয়, তবে আপনার গেমের বিশ্বের একটি সত্তা (প্লেয়ার এটি হারাতে পারে, কেউ এটি আবিষ্কার করতে পারে ইত্যাদি), আপনার গাছের এই "অবজেক্টগুলি" আসলে সত্তার সুনির্দিষ্ট (যদিও অন্যেরা, প্লেয়ারের স্বাস্থ্যের মতো সত্যই কেবল বৈশিষ্ট্য)। আপনাকে দুটি ধরণের পৃথক করতে হবে, উদাহরণগুলির জন্য বিশ্বব্যাপী স্টোরেজ থাকতে হবে যা উল্লেখগুলি সমাধান করতে পারে। গেমের স্থিতি সিরিয়ালকরণ করার সময় এটি আপনাকে বাঁচায় এবং একাধিক সত্তা একই অন্যান্য সত্তাকে (একই মন্দিরে একাধিক খেলোয়াড়ের "অবস্থান" এর মতো) উল্লেখ করে।
  • (এবং আসল মস্তিষ্কের গ্রাইন্ডারটি উল্লেখ করতে: শ্রেণীর স্টোরেজ এবং উদাহরণ স্টোরেজের মিল; টাইপ ডিক্লেয়ারেশনটি আপনার প্রোগ্রামের উপাদানগুলি, সক্রিয় উইন্ডোজ, ব্যবহারকারীর সেশন ইত্যাদির মতো একইভাবে ঘটতে পারে ances আমার মত পাগলদের।)

যাইহোক, আমি আশা করি আপনি এই ওয়ার্মআপ সেশনের কিছু ব্যবহার করতে পারেন।


1

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

তবে আপনার ক্ষেত্রে, আমি মনে করি একটি এক্সএমএল ক্লাস ব্যবহার করা সাহায্য করবে। তারপরে প্রতিটি নোডের জন্য আপনার বৈশিষ্ট্য থাকতে পারে যা আপনাকে বলতে পারে যে কোনও শ্রেণি দক্ষ কিনা এবং আপনি কম্বো বাক্সে বা অন্যথায় ব্যবহারের জন্য যে কোনও নোডের বাবা-মা এবং শিশুদের সহজেই পেতে পারেন।

এছাড়াও, আমি যুক্ত করতে চাই আপনাকে প্রচুর পাঠ / স্ট্রিং থাকার চিন্তাভাবনা থেকে চালানো উচিত নয়। গেমগুলিতে সাধারণত এআই জড়িত থাকে এবং এআই সাধারণত প্রচুর পরিমাণে পাঠ্য জড়িত থাকে।


এই গেমটি প্রোগ্রামের মাধ্যমে খেলছে না, এটির মধ্যে কেবল ধৈর্যশীল উপস্থাপনা এবং কিছু যুক্তি রয়েছে। আমি অবশ্যই এক্সএমএল সন্ধান করব। ধন্যবাদ!
পিওরফেরেট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.