本文整理汇总了C++中MoveList::pop_back方法的典型用法代码示例。如果您正苦于以下问题:C++ MoveList::pop_back方法的具体用法?C++ MoveList::pop_back怎么用?C++ MoveList::pop_back使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MoveList
的用法示例。
在下文中一共展示了MoveList::pop_back方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: reportPosition
void Reporter::reportPosition(const GamePosition &position, ComputerPlayer *computerPlayer, UVString *report)
{
UVOStringStream s;
UVOStringStream titleStream;
if (!position.gameOver())
titleStream << position.currentPlayer().name() << MARK_UV(": Turn ") << position.turnNumber() << MARK_UV('\n');
const Quackle::PlayerList players(position.endgameAdjustedScores());
for (PlayerList::const_iterator it = players.begin(); it != players.end(); ++it)
{
s.width(3);
s << right << ((*it) == position.currentPlayer()? MARK_UV("->") : MARK_UV(" "));
s << MARK_UV(' ');
s.width(24);
s << left << (*it).name() << MARK_UV(' ');
s.width(9);
s << (*it).rack().toString() << MARK_UV(' ');
s.width(4);
s << (*it).score();
s << MARK_UV('\n');
}
if (computerPlayer && !position.gameOver())
{
computerPlayer->setPosition(position);
if (position.committedMove().isAMove())
computerPlayer->considerMove(position.committedMove());
const unsigned int movesToShow = 10;
MoveList moves = computerPlayer->moves(movesToShow);
int ourMoveIndex = 0;
int i = 1;
for (Quackle::MoveList::const_iterator it = moves.begin(); it != moves.end(); ++it, ++i)
{
if ((*it) == position.committedMove())
{
ourMoveIndex = i;
break;
}
}
bool isUrp = false;
if (position.committedMove().isAMove())
{
// our move not in list
if (ourMoveIndex == 0)
{
if (moves.size() == movesToShow)
moves.pop_back();
isUrp = true;
ourMoveIndex = movesToShow;
moves.push_back(position.committedMove());
}
}
int highestScore = 0;
double highestEquity = 0;
unsigned int widestPositionString = 0;
unsigned int widestMove = 0;
bool hasWinPercentages = false;
const Quackle::MoveList::const_iterator end(moves.end());
for (Quackle::MoveList::const_iterator it = moves.begin(); it != end; ++it)
{
if ((*it).prettyTiles().length() > widestMove)
widestMove = (*it).prettyTiles().length();
if ((*it).positionString().length() > widestPositionString)
widestPositionString = (*it).positionString().length();
if ((*it).win > 0)
hasWinPercentages = true;
if ((*it).equity > highestEquity)
highestEquity = (*it).equity;
if ((*it).score > highestScore)
highestScore = (*it).score;
}
s << MARK_UV("--");
UVOStringStream headerStream;
headerStream << computerPlayer->name();
headerStream << "'s choices (your play: ";
if (isUrp)
headerStream << "urp";
else
headerStream << ourMoveIndex;
headerStream << ")";
s.width(43);
s << setfill(MARK_UV('-'));
s << left << headerStream.str() << MARK_UV('\n');
s << setfill(MARK_UV(' '));
i = 1;
//.........这里部分代码省略.........