本文整理汇总了C++中board::copyBoard方法的典型用法代码示例。如果您正苦于以下问题:C++ board::copyBoard方法的具体用法?C++ board::copyBoard怎么用?C++ board::copyBoard使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类board
的用法示例。
在下文中一共展示了board::copyBoard方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getMovePoints
// aplica un backtracking amarat pe fiecare dintre cele 4 directii cardinale
// (la rascruce de vanturi) si calculeaza in momentul in care ajunge la adancimea
// maxima (fundul putului) calculeaza un punctaj pentru fiecare mutare
// din pacate drumul inapoi nu are gropi k ar mai fi taiat din punctaj
int getMovePoints(board previousBoard, int currentDepth, vector<int> mutari) {
position posXYEnemy = previousBoard.getPlayerPosition(2);
position posXYMyPlayer = previousBoard.getPlayerPosition(1);
if (currentDepth >= maxDepth_ ||
previousBoard.getPossibleMoves(posXYEnemy) == 0 ||
previousBoard.getPossibleMoves(posXYMyPlayer) == 0
) {
return getPoints(previousBoard, mutari, 1 /*Player1*/);
} else {
int maxProfit = 0;
for (int i = 0; i < 4; i++) {
int eachProfit = 0;
board tempBoard = previousBoard.copyBoard();
position myPosition = tempBoard.getPlayerPosition(1);
if (tempBoard.isEmpty(i, myPosition)) {
tempBoard.doMove(i,1);
mutari.push_back(i);
eachProfit = getMovePoints(tempBoard, currentDepth + 1, mutari);
if (eachProfit > maxProfit) {
maxProfit = eachProfit;
}
mutari.pop_back();
}
}
return maxProfit;
}
}
示例2: nextMove
int nextMove(board currentBoard) {
int punctajBun = 0;
int punctajTemp = 0;
int mutareBuna = 4; //PlayDead
for (int i = 0; i < 4; i++) {
board tempBoard = currentBoard.copyBoard();
position currentPosition = tempBoard.getPlayerPosition(1);
if (tempBoard.isEmpty(i,currentPosition)) {
tempBoard.doMove(i, 1);
punctajTemp = getMovePoints(tempBoard, 0, mutari_);
if (punctajTemp > punctajBun) {
punctajBun = punctajTemp;
mutareBuna = i;
}
}
}
return mutareBuna;
}