本文整理汇总了C++中Moves::Init方法的典型用法代码示例。如果您正苦于以下问题:C++ Moves::Init方法的具体用法?C++ Moves::Init怎么用?C++ Moves::Init使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Moves
的用法示例。
在下文中一共展示了Moves::Init方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ThinkThread
unsigned __stdcall ThinkThread( LPVOID _p ){
/**************************************************************
思考ルーチンを呼び出すスレッド
**************************************************************/
int ret = 0;
THINK_INFO info;
MOVE* pmove = (MOVE*)_p;
MOVE move;
MMRESULT tid;
int num;
int msec_mate = 0;
memset( &info, 0, sizeof(THINK_INFO) );
// 定跡を調べる。
if( pbook != NULL ){
ret = pbook->GetMove( pshogi, move );
if( ret != 0 ){
// 定跡の表示
moves.Init();
num = pbook->GetMoveAll( pshogi, moves );
DisplayBook( num, moves );
}
}
if( ret == 0 ){
// 詰み探索
sikou_flag = 1;
// タイマーオン
if( limit > 0 ){
// 詰みを調べる時間(最大1秒)
msec_mate = limit * 1000 / 10;
if( msec_mate > 1000 ){
msec_mate = 1000;
}
tid = timeSetEvent( msec_mate, 10, timelimit2, 0, TIME_ONESHOT );
}
ret = pthink->DfPnSearch( pshogi, &move, NULL, &info, &chudanDfPn );
// タイマーオフ
if( limit > 0 ){
timeKillEvent( tid );
}
if( ret ){
DisplayResult( &info );
AddProgress( pshogi->GetStrMove( move ).c_str() );
}
}
if( ret == 0 ){
// 通常探索
sikou_flag = 1;
// タイマーオン
if( limit > 0 ){
tid = timeSetEvent( limit * 1000 - msec_mate, 10, timelimit, 0, TIME_ONESHOT );
}
// 反復深化探索
ret = pthink->Search( pshogi, &move, 32, &info, &chudan, 1 );
// タイマーオフ
if( limit > 0 ){
timeKillEvent( tid );
}
DisplayResult( &info );
// 投了
if( ret != 0 && presign->bad( info ) ){
ret = 0;
}
}
sikou_flag = 0;
if( ret == 0 )
// 指し手がない
return (DWORD)0;
*(pmove) = move;
return (DWORD)1;
}