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ż

Linki zewnętrzne