Я просто играл с базовым шахматным движком. Мне удалось получить много советов от http://web.archive.org/web/20070704121716/http://www.brucemo.com/compchess/programming/alphabeta.htm, но реальный сайт не работает, а не все страницы заархивированы. (Кто-нибудь знает, где найти полную версию сайта Брюса?)Общение с XBoard (шахматным движком) (C++/C)
Но теперь к реальному вопросу: как мне общаться с XBoard? Я понимаю, что это через stdin и stdout, но у меня проблемы с кодом. В принципе, для начала, я просто хочу, чтобы
- получают вход от XBoard и распечатать его на консоль/экран
- Дайте ход жесткого кодировкой ввода в XBoard и он делает шаг
- программные функции полезности и имеют случайные шахматы ai, которые выбирают случайные ходы.
После этого я могу начать реализовывать реальные вещи, такие как альфа-бета-поиск.
Я застрял на первых двух вещах прямо сейчас. Вот какой код я пытался написать/заимствовал.
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define STR_BUFF 256
using namespace std;
int main (int argc, const char * argv[])
{
char input[STR_BUFF];
char output[STR_BUFF];
while(true){
fflush(stdout);
// read input
if (!fgets(input, STR_BUFF, stdin)){
printf("terminated");
return 0;;
}
printf("%s", input);
}
return 0;
}
Я просто получаю обратно в C примерно через 6 месяцев перерыв, и это первый проект, который я использовал STDIN/STDOUT трубопроводов для связи с другой программой (минус несколько основных программ), так что я был бы признателен за любые помощь и любые объяснения. Я знаю, что программирование шахматного движка - задача геркулеса, но я уже заранее программировал правила шахмат, и что я могу найти на сайте Брюса, просто потрясающе.
Могу ли я предложить вам ознакомиться с http://chessprogramming.wikispaces.com/ в качестве замены для сайта Брюса Мореланда? –