J'écris un moteur d'échecs en C ++ https://github.com/RomainGoussault/Deepov .
Je sais qu'il existe plusieurs protocoles d'interface (UCI, protocole Winboard, etc.) et je ne sais pas lequel implémenter. J'aimerais en avoir un qui:
- permet à mon moteur de jouer à des tournois en ligne
- a plusieurs GUI pour Linux, Windows et iOS
- a une sorte de documentation
Merci
engines
software
programming
Romain
la source
la source
Réponses:
Il n'y a que deux protocoles - UCI et Winboard. Winboard est un ancien protocole et n'est pas vraiment utilisé de nos jours. Crafty est le seul moteur majeur prenant encore en charge le protocole Winboard, mais c'est uniquement parce que le moteur est également très ancien. UCI est un protocole plus récent développé par Shredder, et est utilisé partout - Windows, Mac, Linux, Android, iOS etc. UCI est vraiment le seul protocole que vous devriez considérer.
Winboard est plus ou moins obsolète car le protocole est plus compliqué que l'UCI plus propre. Winboard est un protocole déclaré, cela signifie que l'état du moteur dépend des itérations précédentes, tandis que l'UCI est plus facile à gérer car il vous suffit de fournir votre FEN actuel ou une liste de mouvements.
la source
Je ne pense pas qu'il soit possible de créer une interface graphique ou un moteur en tant qu'applications distinctes dans iOS. iOS empêche une application d'en invoquer une autre dans le cadre de sa configuration de sécurité. Un auteur de moteur doit écrire l'interface graphique et l'intégrer au moteur avant de pouvoir demander à Apple une approbation pour publication sur l'App Store. Cela peut également être vrai pour Windows RT. Android possède des interfaces graphiques et des moteurs.
En plus de l'UCI et du CECP (Chess Engine Communication Protocol, c'est-à-dire winboard / xboard), Chessbase a son propre protocole propriétaire. Beaucoup des moteurs les plus puissants utilisent UCI, tandis que les programmeurs débutants utilisent assez couramment CECP.
la source
La plupart des moteurs de prise en charge de l'interface graphique, que ce soit en UCI ou Winboard, UCI devenant de plus en plus un standard et populaire de nos jours. Mais, généralement, si vous voulez que votre moteur soit facilement connectable à n'importe quelle interface graphique (sous Windows ou Linux), vous devriez avoir un "exe" ou un exécutable qui peut être indiqué par ces programmes GUI. Si vous construisez le moteur à l'aide de Java, je ne sais pas comment vous pourriez le convertir en un exécutable à utiliser par l'interface graphique. La même chose s'applique pour pouvoir jouer à des tournois en ligne. Même si vous prévoyez de fournir une interface de type service Web pour votre moteur, je ne pense pas qu'il puisse participer à des compétitions de moteurs.
la source