প্রকল্প সম্পর্কে

এই রিপোজিটরিটি একটি Go (Golang) চেস লাইব্রেরি যা সাধারণ চেস ইউটিলিটিগুলিকে প্যাকেজের সেট হিসেবে প্রদান করে। এটি notnil/chess-এর একটি ফর্ক, /v2 নেমস্পেসের অধীনে রক্ষণাবেক্ষণ করা হয়, যেখানে অ্যালোকেশন কমানো, কর্মক্ষমতা উন্নত করা এবং টেস্ট কভারেজ বাড়ানোর উপর জোর দেওয়া হয়েছে। মূল ক্ষমতাগুলির মধ্যে রয়েছে বিটবোর্ড ব্যবহার করে মুভ জেনারেশন, টার্ন ম্যানেজমেন্ট, চেকমেট এবং ড্র সনাক্তকরণ, এবং সিরিয়ালাইজেশন/ডিসিরিয়ালাইজেশন। সমর্থিত ফরম্যাটগুলির মধ্যে রয়েছে PGN (ট্যাগ পেয়ার, কমেন্ট, কমান্ড অ্যানোটেশন এবং বড় ডেটাবেসের জন্য স্ট্রিমিং স্ক্যানার সহ, ঐচ্ছিকভাবে ভ্যারিয়েশন সম্প্রসারণ) এবং FEN। একাধিক নোটেশন সমর্থিত: অ্যালজেব্রাইক, লং অ্যালজেব্রাইক এবং UCI। গেম ফলাফল হ্যান্ডলিং চেকমেট, স্টেলমেট, রিসাইনেশন, ড্র অফার, থ্রিফোল্ড এবং ফাইভফোল্ড রিপিটিশন, ফিফটি-মুভ এবং সেভেন্টি-ফাইভ-মুভ নিয়ম এবং অপর্যাপ্ত ম্যাটেরিয়াল কভার করে। মুভ API ভ্যালিডেটেড এবং আনসেফ হাই-পারফরম্যান্স ভ্যারিয়েন্টে (UnsafeMove, UnsafePushNotationMove) আসে, README-তে উল্লেখ করা হয়েছে যে ভ্যালিডেশন স্কিপ করলে যথাক্রমে প্রায় 1.5x এবং 1.1x গতি বৃদ্ধি পায়। অতিরিক্ত প্যাকেজগুলির মধ্যে রয়েছে একটি SVG চেস বোর্ড ইমেজ জেনারেটর, একটি ওপেনিং বুক এক্সপ্লোরার এবং একটি ইউনিভার্সাল চেস ইন্টারফেস (UCI) ক্লায়েন্ট যা Stockfish-এর মতো বাহ্যিক ইঞ্জিন চালাতে পারে, যেমন একটি সেলফ-প্লে উদাহরণে দেখানো হয়েছে। একটি Draw() মেথড ইউনিকোড চেস সিম্বল দিয়ে পজিশন রেন্ডার করে। ইনস্টলেশন go get github.com/corentings/chess/v2 এর মাধ্যমে করা হয়। README-তে বেঞ্চমার্ক নথিভুক্ত করা হয়েছে এবং বলা হয়েছে যে লাইব্রেরিটি চেস বট দ্বারা সম্ভাব্য ব্যবহারের জন্য কর্মক্ষমতা টিউন করা হয়েছে। এটি মূলত লেখকের নিজস্ব প্রকল্পের জন্য রক্ষণাবেক্ষণ করা হয় এবং সম্প্রদায়ের সাথে ভাগ করা হয়; অবদান, ইস্যু এবং পুল রিকোয়েস্ট স্বাগত জানানো হয়।