这周发现以前的AI里信息记录方式的不足,改进了记录方式,基本完善了现在的类的搭建,实现了自身函数的大部分功能。目前待完善的有两部分
一个是接口信息的传递转化模块还没有写,还待确认 一个是自身的势能计算还待优化,目前有人为可预见bug
class AI{public: string respond_table(string message){} //接受信息返回信息的,最高层函数 bool hupai(int hand_brick_less[],int chupai) {} //将自己的牌,与别人的出牌判断是否胡牌 bool hupai(int hand_brick_more[]){} //基本同上 int* tingpai(int hand_brick_less[]){} //判断自己听哪张牌,将听得牌都返回 bool pengpai(int hand_brick_less[],int chupai){} //判断是否要碰牌 bool zhigangpai(int hand_brick_less[],int chupai){} //判断自己是否要直杠牌 bool wangangpai(int hand_brick_less[],int clear_brick[],int mopai){} //判断自己是否要弯杠牌 double calculate_energy(int hand_brick_less[]){} //计算当前牌面的势能函数 double calculate_energy_max(int hand_brick_more[]){} //计算当前牌面不论出哪张牌,能达到的最大势能 int remain(int hand_brick_now[]){} //计算当前牌组剔除后还有几张,是胡牌函数的小函数 int chupai(int hand_brick_more[]){} //判断该出哪张牌private: int m_hand_brick_less[30]; //手牌数组,较少时,如13,10,7,4,1 int m_hand_brick_more[30]; //手牌数组,交多时,如14,11,8,5,2 int m_clear_brick[30]; //桌面碰杠牌 //后面的暂时还没用上 int m_desk_brick[30]; //桌面上已经出现了的牌 int m_xia_chupai[30]; //三个对手出的牌 int m_dui_chupai[30]; int m_shang_chupai[30]; int m_anpai[30]; //剩下的还从来没见过的牌};