Uniwersalny interfejs szachowy
Universal Chess Interface ( UCI ) jest otwartym protokołem komunikacyjnym , który umożliwia silnikom szachowym komunikowanie się z interfejsami użytkownika .
Historia
W listopadzie 2000 r. opublikowano protokół UCI. Zaprojektowany przez Rudolfa Hubera i Stefana Meyer-Kahlen , autora Shreddera , UCI rywalizuje ze starszym "Chess Engine Communication Protocol" wprowadzonym z XBoard/WinBoard .
W 2002 roku Chessbase , firma zajmująca się oprogramowaniem szachowym, która sprzedaje Fritz , zaczęła wspierać UCI, które wcześniej było obsługiwane tylko przez kilka interfejsów i silników.
Od 2021 roku wiadomo, że ponad 300 silników bezpośrednio obsługuje UCI.
Projekt
Z założenia UCI przypisuje interfejsowi użytkownika (tj. warstwie prezentacji) pewne zadania, które tradycyjnie były wykonywane przez sam silnik (w warstwie biznesowej). [ potrzebne źródło ]
Przede wszystkim oczekuje się, że księga otwierająca będzie obsługiwana przez interfejs użytkownika , po prostu wybierając ruchy do zagrania, aż do wyczerpania księgi, a dopiero potem uruchamiając silnik do obliczeń w wynikowej pozycji. UCI nie określa żadnego formatu na dysku dla książki otwierającej. Różne interfejsy użytkownika mają zwykle własne, zastrzeżone formaty. [ potrzebne źródło ]
Chociaż interfejs użytkownika może również wziąć odpowiedzialność za obsługę podstaw tabel gier końcowych , jest to prawdopodobnie lepiej obsługiwane w samym silniku, ponieważ posiadanie informacji o podstawie tabeli może być przydatne do rozważenia możliwych przyszłych pozycji.
Protokół UCI Stefana-Meyera Kahlena w Shredder wykorzystuje odmianę długiej notacji algebraicznej dla ruchów. „Nullmove” z silnika do GUI powinno zostać wysłane jako 0000.
- Przykłady
- e2e4
- e7e5
- e1g1 (biała krótka roszada)
- e7e8q (do promocji)
Cechy
Parametr uci_limitstrength mówi silnikom z tą funkcją, aby grały na niższym poziomie. Parametr uci_elo określa ranking Elo , przy którym silnik będzie dążył do gry. Silniki, które zaimplementowały uci_elo to Delfi , Fritz , Hiarcs , Houdini , Junior , Rybka , Shredder , Sjeng i Stockfish .
Warianty
UCI został zmodyfikowany, aby grać w niektóre warianty szachów . Niektóre z nich to:
- Uniwersalny interfejs Shogi (USI), dialekt shogi ;
- Uniwersalny chiński interfejs szachowy (UCCI), dialekt xiangqi .
Każdy z tych protokołów może również definiować warianty PGN i FEN. Mówi się, że XBoard CECP wymaga znacznie mniej zmian w celu obsługi wariantów.
Zobacz też
- Protokół komunikacyjny Chess Engine (protokół XBoard)
- Niszczarka
- XBoard