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


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

本文整理汇总了C++中Moves::GetNumber方法的典型用法代码示例。如果您正苦于以下问题:C++ Moves::GetNumber方法的具体用法?C++ Moves::GetNumber怎么用?C++ Moves::GetNumber使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Moves的用法示例。


在下文中一共展示了Moves::GetNumber方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: GenerateTacticalMoves

void Shogi::GenerateTacticalMoves( Moves& moves ){
/************************************************
戦略的な手を列挙する。
Capture, Promote, (King)
************************************************/
	GEN_INFO info;

	// 生成する指し手の種類
	SetGenInfo( info, MOVE_CAPTURE | MOVE_PROMOTE );

	// ピン
	SetGenInfoPin( info );

	if( !info.check ){
		// 盤上
		GenerateMovesOnBoard( moves, info );
	}
	else if( info.check != DOUBLE_CHECK ){
		GenerateCapEvasion( moves, info );
		GenerateNoCapEvasion( moves, info );
	}

	if( moves.GetNumber() == 0 ){
		// 玉を動かす手
		info.flag |= MOVE_KING;
		GenerateMovesOu( moves, info );
	}
}
开发者ID:,项目名称:,代码行数:28,代码来源:

示例2: GetMoveAll

int Book::GetMoveAll( Shogi* pshogi, Moves& moves, TYPE type ){
/************************************************
定跡手を列挙する。
************************************************/
	int i;
	int flag;
	list<BLIST>::iterator ib;
	list<MLIST>::iterator im;
	list<MLIST>* pmlist;
	uint64 hash = pshogi->GetHash();
	MOVE mtemp;

	i = (int)( hash & BOOK_HASH_MASK );

	// 局面が既にあるか調べる。
	flag = 0;
	for( ib = blist[i].begin() ; ib != blist[i].end() ; ++ib ){
		if( (*ib).hash == hash ){
			flag = 1;
			break;
		}
	}

	if( flag == 0 )
		return 0;

	// 指し手を列挙
	pmlist = &(*ib).mlist;
	for( im = pmlist->begin() ; im != pmlist->end() ; ++im ){
		mtemp.Import( (*im).mv );
		if( pshogi->IsLegalMove( mtemp ) ){
			switch( type ){
			// 評価値を用いる場合
			case TYPE_EVAL:
				mtemp.value = (*im).val;
				break;
			// 出現頻度を用いる場合
			case TYPE_FREQ:
			default:
				mtemp.value = (*im).cnt * 100 / (*ib).cnt;
				break;
			}
			moves.Add( mtemp );
		}
	}
	moves.Sort();

	return moves.GetNumber();
}
开发者ID:,项目名称:,代码行数:49,代码来源:


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