Estou escrevendo um mecanismo de xadrez em C ++ https://github.com/RomainGoussault/Deepov .
Eu sei que existem vários protocolos de interface por aí (UCI, protocolo Winboard, etc.) e não sei qual implementar. Eu gostaria de um que:
- permite que meu mecanismo jogue torneios online
- possui várias interfaces gráficas para Linux, Windows e iOS
- tem algum tipo de documentação
obrigado
engines
software
programming
Romain
fonte
fonte
Respostas:
Existem apenas dois protocolos - UCI e Winboard. O Winboard é um protocolo antigo e realmente não está sendo usado atualmente. O Crafty é o único mecanismo importante que ainda suporta o protocolo Winboard, mas é apenas porque o mecanismo também é muito antigo. O UCI é um protocolo mais recente desenvolvido pela Shredder e é usado em qualquer lugar - Windows, Macs, Linux, Android, iOS etc. O UCI é realmente o único protocolo que você deve considerar.
O Winboard ficou mais ou menos obsoleto porque o protocolo é mais complicado que o UCI mais limpo. O Winboard é um protocolo declarado, significa que o estado do mecanismo depende das iterações anteriores, enquanto o UCI é mais fácil de lidar, pois você só precisa fornecer o seu FEN atual ou uma lista de movimentação.
fonte
Não acho possível criar uma GUI ou mecanismo como aplicativos separados no iOS. O iOS impede que um aplicativo invoque outro como parte de sua configuração de segurança. O autor de um mecanismo precisa escrever a GUI e integrá-la ao mecanismo antes de solicitar a aprovação da Apple para liberação na App Store. Isso também pode ser verdade no Windows RT. O Android tem GUIs e mecanismos.
Além de UCI e CECP (Chess Engine Communication Protocol, ou seja, winboard / xboard), o Chessbase possui seu próprio protocolo proprietário. Muitos dos mecanismos mais fortes usam UCI, enquanto os programadores iniciantes geralmente usam o CECP.
fonte
A maioria dos GUI suporta mecanismos UCI ou Winboard, tornando-se mais um padrão e popular nos dias de hoje. Mas, normalmente, se você deseja que seu mecanismo seja facilmente conectável a qualquer GUI (no Windows ou Linux), você deve ter um "exe" ou executável que possa ser apontado por esses programas de GUI. Se você estiver construindo o mecanismo usando Java, não tenho certeza de como você poderá converter isso em um executável para ser usado pela GUI. O mesmo se aplica para poder jogar torneios online. Mesmo se você planeja fornecer um tipo de interface de serviço da web para seu mecanismo, não acho que ele possa participar de competições de mecanismo.
fonte