本文整理汇总了C++中Moves::Sort方法的典型用法代码示例。如果您正苦于以下问题:C++ Moves::Sort方法的具体用法?C++ Moves::Sort怎么用?C++ Moves::Sort使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Moves
的用法示例。
在下文中一共展示了Moves::Sort方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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();
}