当前位置: 首页>>代码示例>>C++>>正文


C++ Moves::Init方法代码示例

本文整理汇总了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;
}
开发者ID:,项目名称:,代码行数:88,代码来源:


注:本文中的Moves::Init方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。