Я успешно перенес шахматный движок на iPhone. Это не сложно для портирования. Большинство популярных шахматных движков используют универсальный протокол интерфейса шахмат или протокол связи шахматного двигателя. Прочитайте Википедию для более подробной информации о каждом протоколе.
Теперь, скажем, вы берете один из шахматных движков UCI с открытым исходным кодом, и он компилируется на C или C ++. XCode изначально поддерживает C и C ++, поэтому все, что вам нужно, это скопировать исходные коды в XCode, и они будут скомпилированы.
Следующим этапом будет подключение двигателя к вашему интерфейсу. Опять же, это не сложно. Вам нужно будет отправить команды протокола в движок, движок вернет вам результаты на стандартном выходе. Вам нужно будет передать результаты, используя pipe () UNIX. Прочитайте мою другую ветку
Вилка () на iPhone для более подробной информации.
Пример:
Предположим, что engine_loop - это игровой цикл для вашего движка (все двигатели должны иметь цикл).
engine_loop(int fd[])
{
dup2(fd[1], STANDARD_OUTPUT);
while(true)
{
printf("e4\n"); // This is dumb, we always make the same move, but you get the idea
}
}
my_objective_c_function()
{
int fd[2];
pipe(fd);
engine_loop(fd);
char buffer[1024];
read(fd[0], buffer, 1024);
// buffer == "e4"
// Send "e4" to the interface
}
Фрагмент кода показывает, как отправить результаты из движка в ваш интерфейс. Теперь вам нужно будет сделать наоборот. Это очень похоже на код выше. В реальном сценарии, когда ваше соединение установлено, вам нужно будет отправлять команды UCI, я приведу вам пример:
ucinew
isready
go infinite
stop
Пожалуйста, внимательно прочитайте документацию к протоколу шахматного движка UCI. Вам это понадобится.