示例#1
0
char	JudgeDredd::takeAPiece(GameInfo& game, coord_t& coord)
{
	char count = 0;
	if (coord.y > 2 && 
		isOpposite(game.getCurrentPlayer(), game.getMap()[coord.y - 1][coord.x]) == true &&
		CHECKMASK(game.getMap()[coord.y - 1][coord.x], TAKENMASKH) == true)
		count++, game.takeOffPieceOnBoard(coord.y - 1, coord.x, NORTH);

	if (coord.y + 3 < LENGTHBOARD && 
		isOpposite(game.getCurrentPlayer(), game.getMap()[coord.y + 1][coord.x]) == true &&
		CHECKMASK(game.getMap()[coord.y + 1][coord.x], TAKENMASKH) == true)
		count++, game.takeOffPieceOnBoard(coord.y + 1, coord.x, SOUTH);
	
	if (coord.x > 2 && 
		isOpposite(game.getCurrentPlayer(), game.getMap()[coord.y][coord.x - 1]) == true &&
		CHECKMASK(game.getMap()[coord.y][coord.x - 1], TAKENMASKV) == true)
		count++, game.takeOffPieceOnBoard(coord.y, coord.x - 1, WEST);

	if (coord.x + 3 < LENGTHBOARD && 
		isOpposite(game.getCurrentPlayer(), game.getMap()[coord.y][coord.x + 1]) == true &&
		CHECKMASK(game.getMap()[coord.y][coord.x + 1], TAKENMASKV) == true)
		count++, game.takeOffPieceOnBoard(coord.y, coord.x + 1, EAST);

	if (coord.x > 2 && coord.y > 2 &&
		isOpposite(game.getCurrentPlayer(), game.getMap()[coord.y - 1 ][coord.x - 1]) &&
		CHECKMASK(game.getMap()[coord.y - 1][coord.x - 1], TAKENMASKDNS) == true)
		count++, game.takeOffPieceOnBoard(coord.y - 1, coord.x - 1, NORTHWEST);

	if (coord.x + 3 < LENGTHBOARD && coord.y + 3 < LENGTHBOARD &&
		isOpposite(game.getCurrentPlayer(), game.getMap()[coord.y + 1 ][coord.x + 1]) &&
		CHECKMASK(game.getMap()[coord.y + 1][coord.x + 1], TAKENMASKDNS) == true)
		count++, game.takeOffPieceOnBoard(coord.y + 1, coord.x + 1, SOUTHEAST);

	if (coord.x > 2 && coord.y + 3 < LENGTHBOARD &&
		isOpposite(game.getCurrentPlayer(), game.getMap()[coord.y + 1 ][coord.x - 1]) &&
		CHECKMASK(game.getMap()[coord.y + 1][coord.x - 1], TAKENMASKDNS) == true)
		count++, game.takeOffPieceOnBoard(coord.y + 1, coord.x - 1, SOUTHWEST);

	if (coord.x + 3 < LENGTHBOARD && coord.y > 2 &&
		isOpposite(game.getCurrentPlayer(), game.getMap()[coord.y - 1 ][coord.x + 1]) &&
		CHECKMASK(game.getMap()[coord.y - 1][coord.x + 1], TAKENMASKDNS) == true)
		count++, game.takeOffPieceOnBoard(coord.y - 1, coord.x + 1, NORTHEAST);
	return count;
}