#ifndef _GTP_H_ #define _GTP_H_ const int GTP_COMMAND_NUM = 14; const int BUF_SIZE = 256; #define DELIM " " #define PROGRAM_NAME "GoGo" #define PROGRAM_VERSION "1.0.1" #define PROTOCOL_VERSION "2" #if defined (_WIN32) #define STRDUP(var) _strdup((var)) #define STRCPY(dst, size, src) strcpy_s((dst), (size), (src)) #define STRTOK(src, token, next) strtok_s((src), (token), (next)) #else #define STRDUP(var) strdup((var)) #define STRCPY(dst, size, src) strcpy((dst), (src)) #define STRTOK(src, token, next) strtok((src), (token)) #endif typedef struct { void (*function)(); char *type; char *label; char *command; } GTP_command_t; #define CHOMP(command) if(command[strlen(command)-1] == '\n') command[strlen(command)-1] = '\0' // gtp本体 void GTP_main( void ); // gtpの出力 void GTP_message( void ); // gtpコマンドを設定する void GTP_setCommand( void ); // gtpの出力用関数 void GTP_response( const char *res, bool success ); // boardsizeコマンドを処理 void GTP_boardsize( void ); // clearboardコマンドを処理 void GTP_clearboard( void ); // nameコマンドを処理 void GTP_name( void ); // protocolversionコマンドを処理 void GTP_protocolversion( void ); // genmoveコマンドを処理 void GTP_genmove( void ); // playコマンドを処理 void GTP_play( void ); // knowncommandコマンドを処理 void GTP_knowncommand( void ); // listcommandsコマンドを処理 void GTP_listcommands( void ); // quitコマンドを処理 void GTP_quit( void ); // komiコマンドを処理 void GTP_komi( void ); // getkomiコマンドを処理 //void GTP_getkomi( void ); // finalscoreコマンドを処理 void GTP_finalscore( void ); // timesettingsコマンドを処理 //void GTP_timesettings( void ); // timeleftコマンドを処理 //void GTP_timeleft( void ); // versionコマンドを処理 void GTP_version( void ); // showboardコマンドを処理 //void GTP_showboard( void ); // kgs-genmove_cleanupコマンドを処理 //void GTP_kgs_genmove_cleanup( void ); // final_status_listコマンドを処理 //void GTP_final_status_list( void ); // set_free_handicapコマンドを処理 //void GTP_set_free_handicap( void ); // fixed_handicapコマンドを処理 //void GTP_fixed_handicap( void ); #endif