Я просто занимался созданием базового шахматного движка.Мне удалось получить много советов от http://web.archive.org/web/20070704121716/http://www.brucemo.com/compchess/programming/alphabeta.htm,, но реальный сайт не работает, и не все страницы заархивированы.(Кто-нибудь знает, где найти полную версию сайта Брюса?)
Но теперь реальный вопрос: как мне общаться с XBoard?Я понимаю, что это через stdin и stdout, но у меня были проблемы в коде.По сути, для начала я просто хочу
- получить входные данные от XBoard и распечатать их на консоли / экране
- Передать жестко запрограммированный ввод в XBoard и получить егосделать функции полезности программы move
- и иметь случайные шахматы 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 для связи сдругая программа (за исключением нескольких основных программ), поэтому я был бы признателен за любую помощь и любые объяснения.Я знаю, что программирование шахматного движка - очень сложная задача, но я уже запрограммировал правила шахмат раньше, и то, что я могу найти на сайте Брюса, просто поразительно.