ইউনিট একটি দাবা বোর্ডের প্রতিনিধিত্ব পরীক্ষা করে


9

সুতরাং এটি বহিরাগত প্রশ্ন একটি বিট।

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

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

tl; dr আমি আমার কোডটির বিরুদ্ধে ইউনিট পরীক্ষা করার জন্য পজিশনের একটি তালিকা খুঁজছি।

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

সম্পাদনা: স্পষ্ট করার জন্য: আমি ইঞ্জিন ("সেরা পদক্ষেপ") পরীক্ষার সন্ধান করছি না । আমি বোর্ড প্রতিনিধিত্ব ("এই অবস্থান চেকমেট") পরীক্ষার সন্ধান করছি। ইঞ্জিন পরীক্ষার জন্য আমার কাছে ইতিমধ্যে কয়েকটি ধাঁধা যুক্ত রয়েছে।


আপনি একটি বৈকল্পিক কোডিং করছেন। স্ট্যান্ডার্ড দাবা ডেটাসেট আপনার পক্ষে কাজ করবে না। সুতরাং আমি ভয় করছি আপনি নিজেরাই আছেন।
স্মলচেস

@ স্টুডেন্ট আমি এমন কিছু সন্ধান করছি যা থেকে শুরু করতে পারি। একটি নিয়মিত ডাটাবেস ঠিক ঠিক করবে, যেহেতু আপনি জানেন, আমি এটি সম্পাদনা করতে পারি।
আসিবিহী

1
এরকম অনেক পরীক্ষা সেট রয়েছে, আপনি স্ট্যান্ডার্ড দাবাতে কৌশলগত অনুশীলনের মতো কোনও কিছুর জন্য খুশি?
স্মলচেস

@ স্টুডেন্টটি গুগলের মাধ্যমে আমি কিছু খুঁজে পাইনি, কেন আমি এখানে জিজ্ঞাসা করছি। যেকোনো তথ্য উপকারী হবে.
আসিবিহী

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

উত্তর:


1

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

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

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

যদি আপনি কোনও ভাল (বাধ্য না করা) পদক্ষেপের জন্য কোনও অবস্থান পরীক্ষা করতে চান তবে আমি মনে করি ইউনিট পরীক্ষাটি আপনার দাবা ইঞ্জিনের দীর্ঘমেয়াদী বিকাশ এবং শক্তিকে কৃত্রিমভাবে সীমাবদ্ধ করবে ... ইউনিট পরীক্ষার একটি বাইনারি ফলাফলটি আপনার ইঞ্জিনটিকে বাধ্য করতে বাধ্য করবে প্রতিবার একই পদক্ষেপ।

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

আপনার ইঞ্জিনের জন্য পজিশনের একটি সেট মূল্যায়নের প্রশ্নের জন্য, আপনি "দাবা" ট্যাগ সহ এই প্রশ্নটি https://stackoverflow.com/ এ রেখে আরও ভাল করতে পারেন ।


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

এটি প্রশ্নের উত্তর দেয় না।
স্মলচিস

1
তদতিরিক্ত, ইউনিট পরীক্ষার সম্পর্কে নোটগুলি কেবল ভুল।
স্মলচিস

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

0

যদিও এটি একটি পুরানো প্রশ্ন, আমি ভেবেছিলাম যে এই ব্লগে উপস্থাপিত ধারণাটি কার্যকর হতে পারে: http://scionsoftware.com/blog/write-tests-by-playing-chess

ধারণাটি হ'ল আপনি একটি জিইআইতে একটি দাবা খেলা খেলবেন এবং কোনও ফাইলকে সিরিয়ালাইজ করে দাবা বোর্ডের অবস্থা ক্যাপচার করার ব্যবস্থা রাখবেন।

আপনি পরীক্ষার ক্ষেত্রে প্রতি ফাইলগুলির নাম রাখতে পারেন এবং যে কোনও পরীক্ষার পদ্ধতিতে আপনি যেটিকে সংজ্ঞায়িত করেছেন তা তাদের ফিড করতে পারেন: ইসচেকমেট; IsLegal; IsDraw

এই পরীক্ষার কেসগুলি তৈরির জন্য আপনি প্রাকৃতিক UI ব্যবহার করতে চান এমন একটি প্রধান কারণ, সহজলভ্যতার বাইরেও এটি যথেষ্ট শর্তগুলি স্থানান্তর গণনার উপর নির্ভর করে: ক্যাসলিং, এন পাসেন্ট, শর্তগুলি আঁকুন।


0

দাবা ইঞ্জিনের (সাধারণভাবে) কোনও ইউনিট-টেস্টিং ডাটাবেস আমি জানি না, এবং হ্যাঁ, সম্পূর্ণ ইউনিট পরীক্ষা লেখাই প্রায় অসম্ভব।

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

আশা করি এটি কিছুটা সাহায্য করবে :)!

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