توضیح
UCI مخفف Universal Chess Interface است. این یک پروتکل متنی است که به رابط گرافیکی، یعنی برنامه نمایشدهنده صفحه و کنترلها، اجازه میدهد با ، یعنی برنامه محاسبهکننده حرکتها، ارتباط برقرار کند. گزینه UCI تنظیمی است که موتور در اختیار رابط میگذارد، مانند اندازه حافظه، تعداد رشتههای پردازشی یا پشتیبانی از Chess960.
وقتی رابط یک نشست UCI را آغاز میکند، موتور هر گزینه را با نام، نوع و در صورت لزوم مقدار پیشفرض، حدها یا انتخابهای مجاز اعلام میکند. رابط میتواند این توصیف را به یک کنترل قابلمشاهده تبدیل کند و بعداً فرمان setoption را برای تغییر مقدار بفرستد. گزینههای موجود به موتور و نسخه آن بستگی دارند.
پنج نوع گزینه UCI
- check : مقداری درست یا نادرست که معمولاً بهصورت کادر انتخاب نمایش داده میشود.
- spin : عدد صحیحی که میان حداقل و حداکثر محدود شده است.
- combo : یک انتخاب از مجموعهای از مقادیر ازپیشتعریفشده.
- button : عملی یکباره و بدون مقدار ذخیرهشده، مانند پاککردن یک جدول داخلی.
- string : متن آزاد، مانند مسیر فایل.
گزینه نه قانون شطرنج است و نه تضمین سازگاری جهانی. دو موتور ممکن است برای قابلیتهای مشابه نامها، بازهها و مقادیر متفاوتی داشته باشند. نرمافزار کنترلکننده باید آنچه هر موتور واقعاً اعلام میکند بخواند، نه اینکه فهرستی ثابت را فرض بگیرد.
اشتباههای رایج
UCI در برابر یک گزینه UCI
UCI کل پروتکل ارتباطی است، اما گزینه UCI فقط یکی از تنظیماتی است که موتور از طریق آن پروتکل ارائه میکند.
منابع
- 1.UCI Protocol and Stockfish Commands, Stockfish
- 2.UCI Protocol, backscattering.de
