আমি কীভাবে একটি অবজেক্ট ওরিয়েন্টেড পদ্ধতিতে ডিজাইন করতে এবং ভাবতে পারি তার অনুভূতি পাওয়ার চেষ্টা করছি এবং এই বিষয়ে সম্প্রদায়ের কাছ থেকে কিছু প্রতিক্রিয়া পেতে চাই। নিম্নলিখিত কোনও দাবা খেলার একটি উদাহরণ যা আমি ওও পদ্ধতিতে ডিজাইন করতে চাই। এটি একটি খুব বিস্তৃত নকশা এবং এই পর্যায়ে আমার ফোকাসটি কী বার্তাগুলি এবং কীভাবে অবজেক্টগুলি একে অপরের সাথে গেম অনুকরণের জন্য যোগাযোগ করে তার জন্য দায়বদ্ধ তা সনাক্ত করা responsible খারাপ ডিজাইনের উপাদান (উচ্চ সংযুক্তি, খারাপ সংহতি ইত্যাদি) এবং সেগুলিতে কীভাবে উন্নতি করা যায় সেগুলি দয়া করে চিহ্নিত করুন।
দাবা খেলা নিম্নলিখিত ক্লাসে আছে
- বোর্ড
- প্লেয়ার
- টুকরা
- স্কয়ার
- দাবা খেলা
বোর্ডটি স্কোয়ারগুলি নিয়ে গঠিত এবং তাই স্কয়ার অবজেক্টগুলি তৈরি এবং পরিচালনার জন্য বোর্ডকে দায়বদ্ধ করা যায়। প্রতিটি টুকরাও একটি বর্গক্ষেত্রের হয় তাই প্রতিটি টুকরাতে এটি বর্গক্ষেত্রের একটি রেফারেন্স থাকে। (এটা কোনো কিছু হলো?). তারপরে প্রতিটি টুকরা নিজেকে এক বর্গ থেকে অন্য স্কোয়ারে স্থানান্তর করতে দায়ী। খেলোয়াড় শ্রেণি তার নিজের মালিকানাধীন সমস্ত টুকরাগুলির রেফারেন্স রাখে এবং তাদের তৈরির জন্যও দায়ী (প্লেয়ারকে পিস তৈরি করা উচিত?)। খেলোয়াড়ের একটি পদ্ধতি টু টুর রয়েছে যার ফলস্বরূপ একটি মেথড মুভিপিস কল করে যা টুকরো শ্রেণীর অন্তর্গত যা টুকরোটির বর্তমান অবস্থান থেকে অন্য অবস্থানে পরিবর্তন করে changes বোর্ড ক্লাসের জন্য অবশ্যই কী দায়বদ্ধ হতে হবে তা নিয়ে আমি এখন বিভ্রান্ত হয়ে পড়েছি। আমি ধরে নিয়েছিলাম যে গেমের বর্তমান অবস্থা নির্ধারণ এবং গেমটি কখন শেষ হয়েছে তা জানতে এটি দরকার ছিল। কিন্তু যখন একটি টুকরা এটি পরিবর্তন করে ' এর অবস্থান কীভাবে বোর্ড আপডেট হওয়া উচিত? এটি কি স্কোয়ারের একটি পৃথক অ্যারে বজায় রাখতে হবে যার উপর টুকরো রয়েছে এবং টুকরা সরানোর সাথে সাথে এটি আপডেট হয়?
এছাড়াও, দাবাগেমটি অন্তত বোর্ড এবং প্লেয়ার অবজেক্ট তৈরি করে যারা যথাক্রমে স্কোয়ার এবং টুকরা তৈরি করে এবং সিমুলেশন শুরু করে। সংক্ষিপ্তভাবে, দাবাগেমের কোডটির মতো দেখতে এটি হতে পারে
Player p1 =new Player();
Player p2 = new Player();
Board b = new Board();
while(b.isGameOver())
{
p1.takeTurn(); // calls movePiece on the Piece object
p2.takeTurn();
}
বোর্ডের অবস্থা কীভাবে আপডেট হবে সে সম্পর্কে আমি অস্পষ্ট। টুকরা বোর্ডে একটি রেফারেন্স থাকা উচিত? দায় কোথায় থাকা উচিত? কে রেফারেন্স রাখে? আপনার ইনপুটগুলিতে আমাকে সহায়তা করুন এবং এই নকশায় সমস্যাগুলি দেখান। আমি ডিজাইনের দিকটিতে কেবল আগ্রহী হওয়ায় আমি ইচ্ছাকৃতভাবে কোনও অ্যালগরিদম বা গেম খেলার আরও বিশদগুলিতে মনোযোগ দিচ্ছি না। আমি আশা করি এই সম্প্রদায়টি মূল্যবান অন্তর্দৃষ্টি সরবরাহ করতে পারে।
takeTurn()
এর পদক্ষেপটি খেলাটি শেষ হলে পি 2 কল করা উচিত নয় । কম নীটপিকি মন্তব্য: আমি খেলোয়াড়দের কল করা আরও স্বাভাবিক মনে করিwhite
এবংblack
।