猪国杀无懈可击求调
查看原帖
猪国杀无懈可击求调
608410
封禁用户楼主2022/5/11 20:28

RT

//以下为无懈可击部分

//使用无懈可击无懈无懈可击
int use_wuxie_to_wuxie_wuxie(int x, int fac){//fac=0,表示目标为主公方;fac=1,表示目标为反贼
    int cur_use_J = x;//这次使用无懈可击的管理员
    int do_J = 0;
    if(fac == 0){
        for(int i = x; i < n + x; ++i){
            int tmp = i;
            if(tmp > n) tmp -= n;
            if(!alive_player[tmp]) continue;
            if(player[tmp].id == "FP"){
                for(int j = 1; j <= player[tmp].hand_num; ++j){
                    if(player[tmp].hand[j] == 'J'){
                        do_J = 1;
                       chen_zhe[tmp] = 1;
                        kkksc03[tmp] = 0;
                        WYXkk[tmp] = 0;
                        minus(j, tmp);
                        cur_use_J = tmp;
                        break;
                    }
                }
                if(do_J) break;;
            }
        }
    }
    else if(fac == 1){
        for(int i = x; i < n + x; ++i){
            int tmp = i;
            if(tmp > n) tmp -= n;
            if(!alive_player[tmp]) continue;
            if(player[tmp].id == "MP"){
                for(int j = 1; j <= player[tmp].hand_num; ++j) {
                    if (player[tmp].hand[j] == 'J') {
                        do_J = 1;
                        minus(tmp, j);
                        cur_use_J = tmp;
                        break;
                    }
                }
            }
            else if(player[tmp].id == "ZP"){
                for(int j = 1; j <= player[tmp].hand_num; ++j) {
                    if (player[tmp].hand[j] == 'J') {
                        do_J = 1;
                        WYXkk[tmp] = 1;
                        kkksc03[tmp] = 0;
                       chen_zhe[tmp] = 0;
                        minus(tmp, j);
                        cur_use_J = tmp;
                        break;
                    }
                }
            }
            if(do_J) break;
        }
    }
    if(do_J == 0) return 1;
    else {
        if(use_wuxie_to_wuxie_wuxie(cur_use_J, fac ^ 1)) return 0;
        else return 1;
    }
}
int wuxie(int x, int source){//无懈可击
    int do_J = 0;//是否无懈成功
    int find_J = 0;//是否找到无懈
    if(player[x].id == "MP"){
        for(int i = source; i < n + source; ++i){
            int tmp = i;
            if(tmp > n) tmp -= n;
            if(!alive_player[tmp]) continue;
            if(player[tmp].id == "MP"){//主公自己无懈 
                for(int j = 1; j <= player[tmp].hand_num; ++j){
                    if(player[tmp].hand[j] == 'J'){
                        minus(tmp, j);
                        if(use_wuxie_to_wuxie_wuxie(1, 0)) do_J = 1;
                        find_J = 1;
                        break;
                    }
                }
            }
            else if(player[tmp].id == "ZP"){//忠臣帮无懈 
                for(int j = 1; j <= player[tmp].hand_num; ++j){
                    if(player[tmp].hand[j] == 'J'){
                        minus(tmp, j);
                        if(use_wuxie_to_wuxie_wuxie(tmp, 0)) do_J = 1;
                        WYXkk[tmp] = 1;
                        kkksc03[tmp] = 0;
                       chen_zhe[tmp] = 0;
                        find_J = 1;
                        break;
                    }
                }
            }
            if(find_J) break;
        }
    }
    else if(player[x].id == "ZP"){
        for(int i = source; i < n + source; ++i){
            int tmp = i;
            if(tmp > n) tmp -= n;
            if(!alive_player[tmp]) continue;
            if(player[tmp].id == "MP"){//主公帮忠臣无懈 
                for(int j = 1; j <= player[tmp].hand_num; ++j){
                    if(player[tmp].hand[j] == 'J'){
                        minus(tmp, j);
                        if(use_wuxie_to_wuxie_wuxie(1, 0)) do_J = 1;
                        find_J = 1;
                        break;
                    }
                }
            }
            else if(player[tmp].id == "ZP"){
                for(int j = 1; j <= player[tmp].hand_num; ++j){
                    if(player[tmp].hand[j] == 'J'){
                        minus(tmp, j);
                        if(use_wuxie_to_wuxie_wuxie(tmp, 0)) do_J = 1;
                        WYXkk[tmp] = 1;
                        kkksc03[tmp] = 0;
                       chen_zhe[tmp] = 0;
                        find_J = 1;
                        break;
                    }
                }
            }
            if(find_J) break;
        }
    }
    else if(player[x].id == "FP"){
        for(int i = source; i < n + source; ++i){//锦囊牌按序依次出牌
            int tmp = i;
            if(tmp > n) tmp -= n;
            if(!alive_player[tmp]) continue;
            if(player[tmp].id == "FP"){
                for(int j = 1; j <= player[tmp].hand_num; ++j){
                    if(player[tmp].hand[j] == 'J'){//对跳反献殷勤将导致跳反
                        minus(tmp, j);
                        if(use_wuxie_to_wuxie_wuxie(tmp, 1)) do_J = 1;
                       chen_zhe[tmp] = 1;
                        kkksc03[tmp] = 0;
                        WYXkk[tmp] = 0;
                        find_J = 1;
                        break;
                    }
                }
            }
            if(find_J) break;
        }
    }
    if(do_J) return 1;
    else return 0;
}
2022/5/11 20:28
加载中...