কীভাবে ট্রেডিং কার্ড গেমের "স্পেশাল ইফেক্ট কার্ডগুলি" প্রয়োগ করতে হয়?


16

আমি এখানে একধরণের ট্রেডিং কার্ড গেমটি লেখার চেষ্টা করছি, কোনও উপায়ে এটি ম্যাজিক দ্য গ্যাথারিং বা ইউ-জি-ওহ-এর মতো! কার্ড খেলা.

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

এই কার্ডগুলির কী ধরণের প্রভাব থাকতে পারে তার একটি ধারণা দেওয়ার জন্য, ইউ-জি-ওহ-এ উপস্থিত স্পেল কার্ডের প্রভাবগুলির কয়েকটি উদাহরণ এখানে ! কার্ড খেলা:

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

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

এখন, আমি যা করার চেষ্টা করছি তা সেই গেমগুলির মতো জটিল নয়, তবে আমি কৌতূহলী, তারা কীভাবে এগুলি বাস্তবায়ন করে?

উত্তর:


17

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

আসল উত্তর হিসাবে: দৃ rob় কাঠামোর জন্য আপনার সেরা বাজি হ'ল অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংকে কঠোরভাবে নিয়োগ করা। প্রতিটি ক্রিয়া, প্রতিটি ট্রিগার, প্রতিটি ক্ষমতা একটি বস্তু। হ্যান্ড, লাইব্রেরির মতো অঞ্চলগুলিও অবজেক্ট, এটি বলা বাহুল্য। নিয়ম ইঞ্জিনে, কখনও কখনও গেমের বিষয়গুলি বর্ণনা করার জন্য স্ট্রিং বা পূর্ণসংখ্যার মতো বোবা বস্তুর কাছাকাছি না pass

প্রতিটি ক্রিয়া একটি স্ট্যাকের উপর অনেকগুলি ট্রিগার রাখে, যেখানে অন্য প্রতিটি ক্ষমতা তারা সেই নির্দিষ্ট ট্রিগারটির বিষয়ে যত্নশীল কিনা সেগুলি পরীক্ষা করতে পারে এবং যদি তা করে তবে তারা তাদের নিজস্ব ক্রিয়াকেন্দ্রকে বহন করে, সম্ভাব্যভাবে নতুন ট্রিগার তৈরি করে, ইত্যাদি।

তারপরে আপনি সেই স্ট্যাকগুলি গেমের নিয়ম অনুসারে কাজ করবেন, স্ট্যাকটি খালি না হওয়া অবধি, নতুন পর্যায়ে নেওয়া যেতে পারে ইত্যাদি etc.

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


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

অতিরিক্ত লিঙ্ক: একটি বিখ্যাত ওপেন সোর্স YGO বাস্তবায়নের জন্য github.com/Fluorohydride/ygopro-core , যেহেতু প্রশ্নটিতে YGOও উল্লেখ করা হয়েছিল।
এসকে 19

2

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


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

1

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

reduceHitPoints() { } 
reduceMana() { }
reduceSpeed() { }

এটি সহজেই হতে পারে:

reduce($attacker, $target, $reduceWhat, $amount) { }
massReduce($attacker, Array $targets, $reduceWhat, $amount) { }

সমস্ত ক্রিয়াকলাপের জন্য এই ধারণাটি প্রয়োগ করা ক্লাসকে সহজ করবে, কেবল আপনার কার্ডের টেবিলে একটি একক সারি যুক্ত করে নতুন কার্ড তৈরি করার অনুমতি দেবে।

সমস্ত বিকল্প এবং ক্ষমতা সেই একক সারিতে ডিবিতে সংজ্ঞায়িত হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.