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; }