Основные вопросы по движку UCI: ucinewgame и несколько клиентов - PullRequest
0 голосов
/ 10 июня 2019

Я читаю спецификации протокола UCI, но, к сожалению, не могу найти достойного объяснения некоторых его команд или вариантов использования.

1) Я не понимаю, для чего предназначен ucinewgame. Согласно документации, он «запускает новую игру», но что именно это означает, если движок UCI не имеет состояния и, следовательно, не должно иметь значения, была ли новая игра или нет?

2) Что лучше для игры с клиентом, отправляйте на движок "position startpos moves ..." каждый раз, добавляя еще один ход (т. Е. Ведя учет всех ходов с начала), или "position <fenstring>", который отражает только текущую позицию? Я понимаю, что второй случай более компактен, но есть ли какая-то польза от сохранения всех предыдущих ходов?

3) Если я хочу, чтобы несколько игроков одновременно играли против движка (у каждого своя игра), нужно ли мне иметь экземпляр движка для каждого из них? Я понимаю, что хотя движок занят одним игроком, он не может обрабатывать ходы другого игрока, но, кроме этого, я не вижу здесь никаких проблем, мне просто нужно отправить позицию от одного выбранного игрока, когда движок готов, и временно заблокировать других игроков? Опять же, ucinewgame есть чем заняться здесь?

1 Ответ

0 голосов
/ 13 июня 2019

ОК, по исходному коду ucinewgame, кажется, делает только одно - очищает обучающие данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...