本文整理汇总了C++中board::getPlayerPosition方法的典型用法代码示例。如果您正苦于以下问题:C++ board::getPlayerPosition方法的具体用法?C++ board::getPlayerPosition怎么用?C++ board::getPlayerPosition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类board
的用法示例。
在下文中一共展示了board::getPlayerPosition方法的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: getPoints
// merge in sens invers al parcurgerii miscarilor si calculeaza
// un punctaj pentru fiecare mutare
// citez : "Drumurile noastre poate... Se vor intalni vreodata"
int getPoints(board someBoard, vector<int> mutari, int playerNo) {
int punctajFinal = 0;
int posX = someBoard.getPlayerPositionX(playerNo);
int posY = someBoard.getPlayerPositionY(playerNo);
position posXY = someBoard.getPlayerPosition(playerNo);
int mutariPosibile = someBoard.getPossibleMoves(posXY);
int punctajTemp = awardPoints(mutariPosibile);
punctajFinal += punctajTemp;
for (int i = mutari.size() - 1; i >= 0; i--) {
switch (mutari[i]) {
case (UP) : posX ++;
mutariPosibile = someBoard.getPossibleMoves(posX,posY);
punctajTemp = awardPoints(mutariPosibile);
punctajFinal += punctajTemp;
break;
case (DOWN) : posX --;
mutariPosibile = someBoard.getPossibleMoves(posX,posY);
punctajTemp = awardPoints(mutariPosibile);
punctajFinal += punctajTemp;
break;
case (LEFT) : posY ++;
mutariPosibile = someBoard.getPossibleMoves(posX,posY);
punctajTemp = awardPoints(mutariPosibile);
punctajFinal += punctajTemp;
break;
case (RIGHT) : posY --;
mutariPosibile = someBoard.getPossibleMoves(posX,posY);
punctajTemp = awardPoints(mutariPosibile);
punctajFinal += punctajTemp;
break;
}
}
return punctajFinal;
}