#include \n#include \nusing namespace std;\n\nint main() {\n int kingX, kingY;\n int knight1X, knight1Y;\n int knight2X, knight2Y;\n int pawnX, pawnY;\n \n cin >> kingX >> kingY;\n cin >> knight1X >> knight1Y;\n cin >> knight2X >> knight2Y;\n cin >> pawnX >> pawnY;\n \n // 计算骑士1与王之间的曼哈顿距离\n int distKnight1 = abs(knight1X - kingX) + abs(knight1Y - kingY);\n // 计算骑士2与王之间的曼哈顿距离\n int distKnight2 = abs(knight2X - kingX) + abs(knight2Y - kingY);\n // 计算卒与王之间的曼哈顿距离\n int distPawn = abs(pawnX - kingX) + abs(pawnY - kingY);\n \n // 判断是否被将军\n if ((distKnight1 == 3 && knight1X != kingX && knight1Y != kingY) ||\n (distKnight2 == 3 && knight2X != kingX && knight2Y != kingY) ||\n (distPawn == 2 && (pawnX - kingX == 1 || pawnX - kingX == -1) && pawnY - kingY == 1)) {\n cout << "Yes" << endl;\n } else {\n cout << "No" << endl;\n }\n \n return 0;\n}

国际象棋将军判定:骑士和兵

原文地址: https://www.cveoy.top/t/topic/qvUw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录