예제 #1
0
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;
	}
}
예제 #2
0
//判断棋子是否符合行棋规则
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;
}