一)焖鸡简介
1)规则
略
2)案例
略
二)算法设计
1)枚举类型设计
public class MenjiEnum {
/**
*焖鸡牌类型
*
* @author xiu
* @version 2017年8月1日 下午4:06:32
*/
public enum MJCardType {
/**豹子*/
BAO_ZI(0),
/**同花顺*/
TONG_HUA_SHUN(1),
/**金花*/
JIN_HUA(2),
/**顺子*/
SHUN_ZI(3),
/**对子*/
DUI_ZI(4),
/**散牌*/
SAN_PAI(5),
/**特殊*/
TE_SHU(6);
private final int value;
private MJCardType(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
/**
*焖鸡牌花色类型
*
* @author xiu
* @version 2017年8月1日 下午4:07:14
*/
public enum CardBigType {
/**黑桃1-13*/
HEI_TAO,
/**红桃14-26*/
HONG_TAO,
/**梅花27-39*/
MEI_HUA,
/**方块40-52*/
FANG_KUAI,
/**小王53*/
XIAO_WANG,
/**大王54*/
DA_WANG,
/**癞子*/
LAI_ZI;
}
}
2)判断牌的类型算法
/**
* 是否是顺子
* @param card
* @return
*/
public static boolean getSmallTypeIsShunzi(int[] card){
if((card[0] != 0 && card[1] != 0 && card[2] != 0) && (card[0] != 1 && card[1] != 1 && card[2] != 1)){
if(Math.abs(card[1]-card[0]) == 1 && Math.abs(card[2]-card[1]) == 1){
return true;
}
} else if((card[0] == 11 && card[1] == 12 && card[2] == 0) ||
(card[0] == 12 && card[1] == 0 && card[2] == 1) || (card[0] == 2 && card[1] == 3 && card[2] == 1)){
return true;
}
return false;
}
/**
* 是否是豹子
* @param card
* @return
*/
public static boolean getSmallTypeIsBaozi(int[] card){
if(card[0] == card[1] && card[1] == card[2]){
return true;
}else{
return false;
}
}
/**
* 是否是对子
* @param card
* @return
*/
public static boolean getSmallTypeIsDuizi(int[] card){
if(card[0] == card[1] || card[1] == card[2]){
return true;
}else{
return false;
}
}
/**
* 是否是特殊
* @param card
* @return
*/
public static boolean getSmallTypeIsTeshu(int[] card){
if(card[0] == 2 && card[1] == 3 && card[2] == 5){
return true;
}else{
return false;
}
}
/**
* 是否是同花
* @param cardBigTypes
* @ret