类 GuandanUtil
java.lang.Object
cn.godmao.poker.guandan.GuandanUtil
- 直接已知子类:
AbstractGuandanAI
-
嵌套类概要
嵌套类修饰符和类型类说明static classstatic enumstatic classstatic class -
字段概要
字段修饰符和类型字段说明最优组合static final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic LinkedHashMap<Set<Integer>,List<Poker>> 所有钢板static LinkedHashMap<Set<Integer>,List<Poker>> 所有连对static LinkedHashMap<Set<Integer>,List<Poker>> 所有顺子所有同花顺static final int -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明arrangePoker(List<Poker> cardss, int laiziValue) 最优理牌arrangePoker(List<Poker> cardss, int laiziValue, boolean sortByWeight) 最优理牌arrangePoker(List<Poker> cardss, int laiziValue, List<Integer> arrlist, boolean sortByWeight) 最优理牌static GuandanUtil.CardType获取牌型static GuandanUtil.CardType获取牌型combination(List<Poker> pokers, int m) static booleancomparePoker(GuandanUtil.CardType cardTypeA, GuandanUtil.CardType cardTypeB) 扑克比较 判断A是否压得起Bstatic boolean牌值包含static intcontinueLength(List<Poker> cards) 连续牌的最大长度static List<GuandanUtil.GuandanPokers>convert(Collection<List<Poker>> pokersArr, int laiziValue) static List<GuandanUtil.GuandanPokers>convert(Collection<List<Poker>> pokersArr, int laiziValue, boolean sort) static Pokercopy(Collection<? extends Poker> pokers) copy2(Collection<? extends Collection<? extends Poker>> pokersList) static List<GuandanUtil.GuandanPokers>copy3(List<GuandanUtil.GuandanPokers> guandanPokers) createPokers(int cardPair, boolean shuffle) createPokers(int cardPair, boolean shuffle, Integer number, boolean addKing) 创建几幅牌 cardPair 幅 shuffle 是否洗牌deal(List<Poker> myHandCards, List<Poker> pokerList, LinkedHashMap<Integer, Integer> typeNums, int laiziValue) static void删除牌 cardsB cardsA 中存在 cardsB 的牌distribPokers(List<Poker> pokers, int peoplenum) 分配牌freePlay(List<GuandanUtil.GuandanPokers> guandanPokers) 自由出牌static List<GuandanUtil.GuandanPokers>getBestSort(List<GuandanUtil.GuandanPokers> bestCards, int laiziValue) 最优出牌 排序getBoom(GuandanUtil.CardType cardType, List<GuandanUtil.GuandanPokers> guandanPokers) 获取所有比cardType牌型大的炸弹获取炸弹获取炸弹getGangban(List<Poker> cards, int laiziCount) 获取钢板static Map<Integer,List<GuandanUtil.GuandanPokers>> getGuandanPokerMapByValue(List<GuandanUtil.GuandanPokers> guandanPokers) getLaiZiOrNot(List<Poker> cards, int laiziValue) 1 获取赖子牌 2 获取非赖子牌static Map<Integer,List<GuandanUtil.GuandanPokers>> getLaiZiOrNot1(List<GuandanUtil.GuandanPokers> cards, int laiziValue) 1 获取赖子牌 2 获取非赖子牌getLianDui(List<Poker> cards, int laiziCount) static intgetPokerDaXiao(int pokervalue, int laiziValue) static intgetPokerDaXiao(Poker poker, int laiziValue) getPokerMapByValue(List<Poker> cards) static doublegetPokerWeight(GuandanUtil.CardType cardType, List<Poker> pokers) 通过牌型获取权重是不是顺子static List<GuandanUtil.GuandanPokers>guandanConvert(Collection<List<GuandanUtil.GuandanPokers>> pokersArr, int laiziValue) static List<GuandanUtil.GuandanPokers>guandanConvert(Collection<List<GuandanUtil.GuandanPokers>> pokersArr, int laiziValue, boolean sort) static intstatic intstatic intstatic inthashCode_value(List<Poker> pokers) static inthashCode_value(Map<Integer, List<Poker>> pokerMap) static intstatic inthashCode2_value(List<List<Poker>> pokersList) static boolean是否有赖子static booleanhasShunziTonghua(List<Poker> cards) 有同花顺static voidinit()static void合并相同值的牌mergeTogher(Collection<List<Poker>> cards) 合并所有牌optimalBomb(List<Poker> cards, int laiziValue) 找到最佳炸弹找到最佳炸弹optimalSingleLine(List<Poker> cards, int laiziValue) 找到最佳顺子optimalSingleLine(List<Poker> cards, int laiziValue, boolean sameColor) 找到最佳顺子 或者 同花顺optimalSingleLineSameColor(List<Poker> cards, int laiziValue) 查找所有同花顺optimalSingleSameColor(List<Poker> cards, int laiziValue) 查找所有同花顺parsePokerByNumbers(List<Poker> pokers, Collection<Integer> pokersNumber) 取 pokers 中存在的 pokersNumberpermutationNoRepeat(List list) static voidstatic boolean是否同花static boolean是否同花typeCard(GuandanUtil.CardType cardType, List<Poker> handCards, int laiziValue) typeCard2(GuandanUtil.CardType cardType, List<GuandanUtil.GuandanPokers> guandanPokers, int laiziValue) 合适的牌typeCard2(GuandanUtil.CardType cardType, List<GuandanUtil.GuandanPokers> guandanPokers, int laiziValue, boolean qiang) 合适的牌static List<List<GuandanUtil.GuandanPokers>>typeCard3(GuandanUtil.CardType cardType, List<GuandanUtil.GuandanPokers> handCards, int laiziValue)
-
字段详细资料
-
CARDTYPE_ILLEGALCARD
public static final int CARDTYPE_ILLEGALCARD- 另请参阅:
-
CARDTYPE_NOCARD
public static final int CARDTYPE_NOCARD- 另请参阅:
-
CARDTYPE_SINGLECARD
public static final int CARDTYPE_SINGLECARD- 另请参阅:
-
CARDTYPE_DOUBLECARD
public static final int CARDTYPE_DOUBLECARD- 另请参阅:
-
CARDTYPE_DOUBLECARDLINETHREE
public static final int CARDTYPE_DOUBLECARDLINETHREE- 另请参阅:
-
CARDTYPE_THREECARD
public static final int CARDTYPE_THREECARD- 另请参阅:
-
CARDTYPE_THREECARDTWO
public static final int CARDTYPE_THREECARDTWO- 另请参阅:
-
CARDTYPE_THREECARDLINE
public static final int CARDTYPE_THREECARDLINE- 另请参阅:
-
CARDTYPE_SINGLELINE
public static final int CARDTYPE_SINGLELINE- 另请参阅:
-
CARDTYPE_SINGLELINESAMECOLOR
public static final int CARDTYPE_SINGLELINESAMECOLOR- 另请参阅:
-
CARDTYPE_BOMBCARD
public static final int CARDTYPE_BOMBCARD- 另请参阅:
-
CARDTYPE_BOMBCARDKING
public static final int CARDTYPE_BOMBCARDKING- 另请参阅:
-
initShunziTonghua
所有同花顺 -
initShunzi
所有顺子 -
initGangban
所有钢板 -
initLiandui
所有连对 -
initLaiZi_1
-
initLaiZi_2
-
arrlist
最优组合 -
maxNum
public static final int maxNum- 另请参阅:
-
-
构造器详细资料
-
GuandanUtil
public GuandanUtil()
-
-
方法详细资料
-
main
-
newList
-
deal
-
optimalSingleSameColor
查找所有同花顺 -
optimalSingleLineSameColor
查找所有同花顺 -
init
public static void init() -
combination
- 参数:
pokers- :组合数组m- :生成组合长度- 返回:
- :所有可能的组合数组列表
-
hasLaizi
是否有赖子- 参数:
cardss-laiziValue-- 返回:
-
arrangePoker
最优理牌 -
arrangePoker
public static GuandanUtil.GuandanPokersWeight arrangePoker(List<Poker> cardss, int laiziValue, boolean sortByWeight) 最优理牌 -
arrangePoker
public static GuandanUtil.GuandanPokersWeight arrangePoker(List<Poker> cardss, int laiziValue, List<Integer> arrlist, boolean sortByWeight) 最优理牌 -
optimalBomb
找到最佳炸弹 -
optimalBomb
找到最佳炸弹 -
getPokerWeight
通过牌型获取权重- 参数:
cardType-- 返回:
-
optimalSingleLine
找到最佳顺子 -
optimalSingleLine
public static List<List<Poker>> optimalSingleLine(List<Poker> cards, int laiziValue, boolean sameColor) 找到最佳顺子 或者 同花顺 -
getPokerMapByValue
-
getGuandanPokerMapByValue
public static Map<Integer,List<GuandanUtil.GuandanPokers>> getGuandanPokerMapByValue(List<GuandanUtil.GuandanPokers> guandanPokers) -
createPokers
-
createPokers
public static List<Poker> createPokers(int cardPair, boolean shuffle, Integer number, boolean addKing) 创建几幅牌 cardPair 幅 shuffle 是否洗牌 -
distribPokers
分配牌 -
deletePoker
public static void deletePoker(List<Poker> cardsA, List<Poker> cardsB, IFunction<? super Poker, Integer> keyExtractor) 删除牌 cardsB cardsA 中存在 cardsB 的牌 -
parsePokerByNumbers
取 pokers 中存在的 pokersNumber -
containPoker
public static boolean containPoker(List<Poker> cardsA, List<Poker> cardsB, IFunction<? super Poker, Integer> keyExtractor) 牌值包含- 返回:
- cardsA 是否包含 cardsB 的字段的值
-
sameColor
是否同花 -
sameColor
是否同花 -
mergeSame
public static List<List<Poker>> mergeSame(List<Poker> cards, Integer sameSize, Boolean cardCross, Boolean sameSizeexceed) 合并相同值的牌- 参数:
cards- 手牌sameSize- 几张相同的牌cardCross- 是否越界获取 默认不越界(false)sameSizeexceed- true 截取大于等于几张相同长度的牌的长度 默认(false) 截取相同长度牌的长度- 返回:
- 合并的牌
-
mergeTogher
合并所有牌 -
getPokerDaXiao
-
getLianDui
-
getGangban
获取钢板 -
continueLength
连续牌的最大长度 -
hasShunziTonghua
有同花顺 -
getShunzi
是不是顺子 -
getPokerDaXiao
public static int getPokerDaXiao(int pokervalue, int laiziValue) -
getLaiZiOrNot
1 获取赖子牌 2 获取非赖子牌 -
getLaiZiOrNot1
public static Map<Integer,List<GuandanUtil.GuandanPokers>> getLaiZiOrNot1(List<GuandanUtil.GuandanPokers> cards, int laiziValue) 1 获取赖子牌 2 获取非赖子牌 -
comparePoker
扑克比较 判断A是否压得起B -
copy3
-
typeCard2
public static List<List<Poker>> typeCard2(GuandanUtil.CardType cardType, List<GuandanUtil.GuandanPokers> guandanPokers, int laiziValue) 合适的牌 -
typeCard2
public static List<List<Poker>> typeCard2(GuandanUtil.CardType cardType, List<GuandanUtil.GuandanPokers> guandanPokers, int laiziValue, boolean qiang) 合适的牌 -
convert
public static List<GuandanUtil.GuandanPokers> convert(Collection<List<Poker>> pokersArr, int laiziValue) -
convert
public static List<GuandanUtil.GuandanPokers> convert(Collection<List<Poker>> pokersArr, int laiziValue, boolean sort) -
guandanConvert
public static List<GuandanUtil.GuandanPokers> guandanConvert(Collection<List<GuandanUtil.GuandanPokers>> pokersArr, int laiziValue) -
guandanConvert
public static List<GuandanUtil.GuandanPokers> guandanConvert(Collection<List<GuandanUtil.GuandanPokers>> pokersArr, int laiziValue, boolean sort) -
typeCard
-
typeCard3
public static List<List<GuandanUtil.GuandanPokers>> typeCard3(GuandanUtil.CardType cardType, List<GuandanUtil.GuandanPokers> handCards, int laiziValue) -
quchong
-
getBoom
public static List<List<Poker>> getBoom(GuandanUtil.CardType cardType, List<GuandanUtil.GuandanPokers> guandanPokers) 获取所有比cardType牌型大的炸弹 -
getBoom
获取炸弹 -
getBoom
public static List<List<Poker>> getBoom(List<Poker> cards, int laiziValue, boolean cross, boolean sort) 获取炸弹 -
freePlay
自由出牌 -
cardType
获取牌型 -
cardType
获取牌型 -
hashCode
-
hashCode2
-
hashCode
-
hashCode
-
hashCode2_value
-
hashCode_value
-
hashCode_value
-
getBestSort
public static List<GuandanUtil.GuandanPokers> getBestSort(List<GuandanUtil.GuandanPokers> bestCards, int laiziValue) 最优出牌 排序 -
permutationNoRepeat
-
copy
-
copy
-
copy2
-