一套AI逻辑,基本能商用,模拟中等水平玩家没有问题。
缺点:没有加入牌型的考虑
主要流程:
//要根据gamecode区分出来几个特殊流程
public void Analysis(MjPlayer player, int[] cards) {
TileType originType = new TileType();
SliceCardList(originType, cards, false);
//操作处理
if (player.isCanChi() || player.isCanPeng() || player.isCanGang() || player.isCanAnGang() || player.isCanBuGang()) {
int tmpCode = AiEventLogic(player, originType, cards, AnalyTingPaiLackCard(player, cards));
if (tmpCode >= 1) {
//当前用户(暗杠和补杠)不用取消,直接出牌
if (tmpCode == 1 && player.getGame().getCurrentPlayer() == player.getPosition()) {
setActionCode(0);
} else {
setActionCode(tmpCode);
return;
}
}
}
//只有当前玩家才检测可出牌
if (player.getGame().getCurrentPlay