13,100
社区成员
发帖
与我相关
我的任务
分享
/**
* 规则判断
*
* @author zg.shi
*/
public interface Rule {
public boolean valid(int[] cards);
/**
* 单牌
*/
public static final Rule SingleRule = new Rule() {
public boolean valid(int[] cards) {
return cards.length == 1;
}
};
/**
* 对牌
*/
public static final Rule DoubleRule = new Rule() {
public boolean valid(int[] cards) {
if (cards.length == 2) {
return (cards[0] / 4 == cards[1] / 4);
}
return false;
}
};
/**
* 三张
*/
public static final Rule TripleRule = new Rule() {
public boolean valid(int[] cards) {
if (cards.length == 3) {
if (cards[0] / 4 == cards[1] / 4) {
return (cards[0] / 4 == cards[2] / 4);
}
}
return false;
}
};
/**
* 炸弹
*/
public static final Rule FourRule = new Rule() {
public boolean valid(int[] cards) {
if (cards.length == 3) {
if (cards[0] / 4 == cards[1] / 4) {
if (cards[0] / 4 == cards[2] / 4) {
return (cards[0] / 4 == cards[3] / 4);
}
}
}
return false;
}
};
/**
* 顺子
*/
public static final Rule IncreaseRule = new Rule() {
public boolean valid(int[] cards) {
if (cards.length >= 5) {
int m = cards[0] / 4;
for (int i = 1; i < cards.length; ++i) {
if (cards[i] / 4 != m + i) {
return false;
}
}
return true;
}
return false;
}
};
}