本文整理汇总了C++中Moves::GetLength方法的典型用法代码示例。如果您正苦于以下问题:C++ Moves::GetLength方法的具体用法?C++ Moves::GetLength怎么用?C++ Moves::GetLength使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Moves
的用法示例。
在下文中一共展示了Moves::GetLength方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: IsCheck
bool Board::IsCheck(Color side)
{
Moves* moves = new Moves();
int j = 0;
for (int i = 0; i < BoardSize * BoardSize; i++)
{
if (this->Chesses[i] != NULL && this->Chesses[i]->GetPlayer()->GetSide() == side)
this->Chesses[i]->GetAvailableMoves(this, moves, true);
for (; j < moves->GetLength(); j++)
{
Move* move = moves->GetMove(j);
Chess* captured = move->GetChessCaptured();
if (captured != NULL && captured->GetChessType() == King)
{
delete moves;
return true;
}
}
}
delete moves;
return false;
}
示例2: HasMove
bool Board::HasMove(Color side)
{
Moves* moves = this->GetAllAvailableMoves(side);
bool has_move = moves->GetLength() > 0;
delete moves;
return has_move;
}
示例3: IsCheckmate
bool Board::IsCheckmate(Color side)
{
if (!this->IsCheck(side))
{
return false;
}
Color opponent = side == White ? Black : White;
Moves* moves = this->GetAllAvailableMoves(opponent);
bool checkmate = moves->GetLength() == 0;
delete moves;
return checkmate;
}
示例4: srand
void PlayerAI1::RequestMove()
{
Moves* moves = this->Game->CurrentBoard->GetAllAvailableMoves(this->Side);
srand (time(NULL));
int index = rand() % moves->GetLength();
Move* move = moves->GetMove(index);
Chess* before = move->GetChessBeforeMove();
Chess* after = move->GetChessAfterMove();
this->Game->MakeMove(before->GetX(), before->GetY(), after->GetX(), after->GetY(), after->GetChessType());
delete moves;
CheckDraw();
}