警示后人(如果使用递归处理无懈/决斗)
查看原帖
警示后人(如果使用递归处理无懈/决斗)
374185
Leo_Anderson楼主2024/7/8 21:59

一份示例:

int Immune(int From,int To,int for_cards){
    mem_Pigs[From].card_pos_rst();
    do{
        if(mem_Pigs[From].card_flag_get() == 8){
            //cout<<"无懈可击:"<<From<<"-->"<<To<<" for "<<for_cards<<"\n";
            mem_Pigs[From].card_del();
            int Who_next=From;		
            do{
                if(Game.Die_For_You(Who_next,From)==2){
                int dfs=Immune(Who_next,From,8);
                if(dfs!=0) return -1*dfs;
            }  
            Who_next=mem_Pigs[Who_next].nxt;
           }while(Who_next!=From);
           return 1;
       }
   }while(mem_Pigs[From].card_nxt());
    return 0;
}

一定注意:
返回值
int 0 == bool false
int 1 == bool true
int -1 == bool true(而不是false)

我怎么老把负数当作false

2024/7/8 21:59
加载中...