bool GameScene::isCanMove(int moveID, int killID, int tox, int toy){ /*根据要移动的棋子的类型来分别判断*/ Stone* moveStone = sts[moveID]; switch (moveStone->getType()){ case Stone::JIANG: return canMoveJIANG(moveID, killID, tox, toy); case Stone::SHI: return canMoveSHI(moveID, tox, toy); case Stone::XIANG: return canMoveXIANG(moveID, killID, tox, toy); case Stone::JU: return canMoveJU(moveID, killID, tox, toy); case Stone::MA: return canMoveMA(moveID, killID, tox, toy); case Stone::PAO: return canMovePAO(moveID, killID, tox, toy); case Stone::BING: return canMoveBING(moveID, killID, tox, toy); default:return false; } }
//判断棋子是否符合行棋规则 bool FourthScene::canMove(int ids,int x ,int y) { //获得选中的棋子 Stone* s = _s4[ids]; //棋子的类型 switch(s->getType()) { //王的走棋规则 case Stone::WANG: { return canMoveWang(ids, x, y); } break; //忍的走棋规则 case Stone::REN: { return canMoveRen(ids, x, y); } break; //寨的走棋规则 case Stone::ZHAI: { return canMoveZhai(ids, x, y); } break; //大的走棋规则 case Stone::DA: { return canMoveDa(ids, x, y); } break; //马的走棋规则 case Stone::MA: { return canMoveMa(ids, x, y); } break; //筒的走棋规则 case Stone::TONG: { return canMoveTong(ids, x, y); } break; //炮的走棋规则 case Stone::PAO: { return canMovePao(ids, x, y); } break; //弓的走棋规则 case Stone::GONG: { return canMoveGone(ids, x, y); } break; //小的走棋规则 case Stone::XIAO: { return canMoveXiao(ids, x, y); } break; //中的走棋规则 case Stone::ZHONG: { return canMoveZhong(ids, x, y); } break; //兵的走棋规则 case Stone::BING: { return canMoveBing(ids, x, y); } break; default: { break; } } return false; }