类 DoudizhuUtil
java.lang.Object
cn.godmao.poker.doudizhu.DoudizhuUtil
-
嵌套类概要
嵌套类修饰符和类型类说明static classstatic enumstatic classstatic enumstatic enum游戏类型枚举static classstatic class -
字段概要
字段修饰符和类型字段说明static final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final int获取所有牌的权重和最优理牌static final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final int -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明arrangeCard(List<Poker> cards, DoudizhuUtil.GameTypeRule gameType) 最优理牌 权重算法arrangeCard(List<Poker> cards, DoudizhuUtil.GameTypeRule gameType, boolean weight) 最优理牌 权重算法static List<DoudizhuUtil.Pokers>arrangePoker(List<Poker> cards, DoudizhuUtil.GameTypeRule gameType, boolean bestBYweight) 最优理牌 权重算法static DoudizhuUtil.CardType牌型static DoudizhuUtil.CardType牌型2static DoudizhuUtil.CardTypecardType(List<Poker> cards, DoudizhuUtil.GameTypeRule gametype) 牌型2combination(List<Poker> pokers, int m) static booleancomparePoker(DoudizhuUtil.CardType cardTypeA, DoudizhuUtil.CardType cardTypeB) 扑克比较static booleancomparePoker(List<Poker> cardsA, List<Poker> cardsB) static booleancomparePoker(List<Poker> cardsA, List<Poker> cardsB, DoudizhuUtil.GameTypeRule gametype) 比较2static boolean牌值包含static booleancontainPoker(List<Poker> cardsA, List<Integer> pokersNumber) 牌值包含continueCard(List<Poker> cards, int lenth) 连续的牌static intcontinueLengthByDaxiao(List<Poker> cards) 通过牌大小获取连续的牌的最大长度static Pokercopy(Collection<? extends Poker> pokers) copy2(Collection<? extends Collection<? extends Poker>> pokersList) createOneHandsPokers(int firstNum) 创建一手牌 2-A 小王大王createOneHandsPokers(int firstNum, boolean shuangwang) 创建一手牌 2-A 小王大王createPokers(int cardPair) 创建几幅牌删除牌去重static <T> Predicate<T>distinctByKey(Function<? super T, ?> keyExtractor) distribPokers(boolean buxipai, boolean duozha, DoudizhuUtil.GameTypeRule gameType, DoudizhuUtil.Config config) 分配牌distribPokers(DoudizhuUtil.GameTypeRule gameType, DoudizhuUtil.Config config) 分配牌static booleanfindBoubleLine(List<List<Poker>> cardslist) 找到所有连对找所有的飞机getBestCards(List<Poker> handCards, Integer cardsNum, Integer selectMaxNum, DoudizhuUtil.GameTypeRule gameType, boolean random) 获取最佳的牌static List<DoudizhuUtil.PokerList>getBestCardsByPokers(List<List<Poker>> pokersList, DoudizhuUtil.GameTypeRule gameType) static intgetMaxCardNum(List<Poker> pokers) 获取牌最大编号static intgetPokerDaXiao(Poker poker) 通过牌值获取牌的大小static intgetPokerDaXiao(Integer value) 通过牌值获取牌的大小static doublegetPokersListWeight(List<DoudizhuUtil.CardType> cardTypes) 获取权重static doublegetPokersListWeight(List<List<Poker>> cardslist, DoudizhuUtil.GameTypeRule gameType) 获取权重static doublegetPokersWeight(List<Poker> cards, DoudizhuUtil.GameTypeRule gameType) 获取权重static doublegetPokerWeight(DoudizhuUtil.CardType cardType) 通过牌型获取权重static intmakePokers(int peoplenum) 做牌makePokers(int peoplenum, DoudizhuUtil.Config config) 做牌mergeSamePokers(List<Poker> cards) mergeSamePokers(List<Poker> cards, Integer sameSize) mergeSamePokers(List<Poker> cards, Integer sameSize, Boolean cardCross) 合并相同值的牌mergeTogher(List<List<Poker>> cardslist) 合并所有牌parseListStr(List<Poker> pokers) List转 List static PokerparsePokerByNumber(Integer pokernumber) number 转 pokerparsePokerByNumbers(Collection<Integer> pokernumbers) parsePokerByNumbers(List<Poker> pokers, Collection<Integer> pokersNumber) 取 pokers 中存在的 pokersNumberparsePokers(List<String> pokerstrs) List转 List permutationNoRepeat(List list) 排列组合(字符不重复排列)
内存占用:需注意结果集大小对内存的占用(list:10位,length:8,结果集:[10!raisePokersLevel(List<Poker> cardslist, DoudizhuUtil.GameTypeRule gameType) raisePokersLevel(List<Poker> cardslist, DoudizhuUtil.GameTypeRule gameType, int level) raisePokersListLevel(List<List<Poker>> cardslist, DoudizhuUtil.GameTypeRule gameType) raisePokersListLevel(List<List<Poker>> cardslist, DoudizhuUtil.GameTypeRule gameType, int level) 提升手牌的档次 手牌长度不变rebuildCardsNum(List<Poker> pokers, int maxCardNum) 重新构造牌的编号rebuildCardsNum(List<Poker> pokers, int maxCardNum, boolean randomcolor) 重新构造牌的编号typeCard(List<Poker> pokers, DoudizhuUtil.CardType cardType, DoudizhuUtil.GameTypeRule gametype) 通过牌型找到合适的牌
-
字段详细资料
-
COLOR_DAWANG
public static final int COLOR_DAWANG- 另请参阅:
-
COLOR_XIAOWANG
public static final int COLOR_XIAOWANG- 另请参阅:
-
VALUE_DAWANG
public static final int VALUE_DAWANG- 另请参阅:
-
VALUE_XIAOWANG
public static final int VALUE_XIAOWANG- 另请参阅:
-
ILLEGALCARD
public static final int ILLEGALCARD- 另请参阅:
-
NOCARD
public static final int NOCARD- 另请参阅:
-
SINGLECARD
public static final int SINGLECARD- 另请参阅:
-
DOUBLECARDS
public static final int DOUBLECARDS- 另请参阅:
-
BOMBCARDS
public static final int BOMBCARDS- 另请参阅:
-
TREBLEZERO
public static final int TREBLEZERO- 另请参阅:
-
TREBLEONE
public static final int TREBLEONE- 另请参阅:
-
TREBLETWO
public static final int TREBLETWO- 另请参阅:
-
SINGLELINE
public static final int SINGLELINE- 另请参阅:
-
DOUBLELINE
public static final int DOUBLELINE- 另请参阅:
-
THREELINE
public static final int THREELINE- 另请参阅:
-
SINGLECARD_WITH_THREELINE
public static final int SINGLECARD_WITH_THREELINE- 另请参阅:
-
DOUBLECARDS_WITH_THREELINE
public static final int DOUBLECARDS_WITH_THREELINE- 另请参阅:
-
SINGLECARD_WITH_BOMBCARDS
public static final int SINGLECARD_WITH_BOMBCARDS- 另请参阅:
-
DOUBLECARDS_WITH_BOMBCARDS
public static final int DOUBLECARDS_WITH_BOMBCARDS- 另请参阅:
-
maxtherd
public static final int maxtherd获取所有牌的权重和最优理牌- 另请参阅:
-
-
构造器详细资料
-
DoudizhuUtil
public DoudizhuUtil()
-
-
方法详细资料
-
copy
-
copy
-
copy2
-
comparePoker
public static boolean comparePoker(List<Poker> cardsA, List<Poker> cardsB, DoudizhuUtil.GameTypeRule gametype) 比较2 -
cardType
牌型2 -
cardType
牌型2 -
typeCard
public static List<List<Poker>> typeCard(List<Poker> pokers, DoudizhuUtil.CardType cardType, DoudizhuUtil.GameTypeRule gametype) 通过牌型找到合适的牌 -
cardType
牌型 -
getPokerDaXiao
通过牌值获取牌的大小 -
getPokerDaXiao
通过牌值获取牌的大小 -
arrangePoker
public static List<DoudizhuUtil.Pokers> arrangePoker(List<Poker> cards, DoudizhuUtil.GameTypeRule gameType, boolean bestBYweight) 最优理牌 权重算法- 参数:
gameType- 游戏类型bestBYweight- 最优算法根据权重还是长度 true 权重 false 长度
-
arrangeCard
public static List<List<Poker>> arrangeCard(List<Poker> cards, DoudizhuUtil.GameTypeRule gameType, boolean weight) 最优理牌 权重算法- 参数:
gameType- 游戏类型
-
arrangeCard
最优理牌 权重算法- 参数:
gameType- 游戏类型
-
getPokersWeight
获取权重 -
getPokersListWeight
获取权重 -
getPokersListWeight
public static double getPokersListWeight(List<List<Poker>> cardslist, DoudizhuUtil.GameTypeRule gameType) 获取权重 -
getPokerWeight
通过牌型获取权重 -
raisePokersListLevel
public static List<List<Poker>> raisePokersListLevel(List<List<Poker>> cardslist, DoudizhuUtil.GameTypeRule gameType, int level) 提升手牌的档次 手牌长度不变- 参数:
level- 提升的等级
-
raisePokersListLevel
-
raisePokersLevel
public static List<Poker> raisePokersLevel(List<Poker> cardslist, DoudizhuUtil.GameTypeRule gameType, int level) -
raisePokersLevel
public static List<Poker> raisePokersLevel(List<Poker> cardslist, DoudizhuUtil.GameTypeRule gameType) -
permutationNoRepeat
排列组合(字符不重复排列)
内存占用:需注意结果集大小对内存的占用(list:10位,length:8,结果集:[10! / (10-8)! = 1814400])- 参数:
list- 待排列组合字符集合(忽略重复字符)- 返回:
- 指定长度的排列组合后的字符串集合
-
deletePoker
public static List<Poker> deletePoker(List<Poker> cardsA, List<Poker> cardsB, Function<? super Poker, Integer> keyExtractor) 删除牌- 返回:
- cardsB cardsA 中存在 cardsB 的牌
-
mergeTogher
合并所有牌 -
equals
- 抛出:
Exception
-
hashCode
-
findFeiji
找所有的飞机 -
findBoubleLine
找到所有连对 -
continueCard
连续的牌- 参数:
lenth- 几张或以上
-
mergeSamePokers
public static List<List<Poker>> mergeSamePokers(List<Poker> cards, Integer sameSize, Boolean cardCross, Boolean sameSizeexceed) 合并相同值的牌- 参数:
sameSize- 几张相同的牌cardCross- 是否越界获取 默认不越界(false)sameSizeexceed- true 截取大于等于几张相同长度的牌的长度 默认(false) 截取相同长度牌的长度
-
mergeSamePokers
-
mergeSamePokers
-
mergeSamePokers
-
continueLengthByDaxiao
通过牌大小获取连续的牌的最大长度 -
comparePoker
public static boolean comparePoker(DoudizhuUtil.CardType cardTypeA, DoudizhuUtil.CardType cardTypeB) 扑克比较- 返回:
- 判断A是否压得起B
-
comparePoker
-
containPoker
public static boolean containPoker(List<Poker> cardsA, List<Poker> cardsB, Function<? super Poker, Integer> keyExtractor) 牌值包含- 返回:
- cardsA 是否包含 cardsB 的字段的值
-
containPoker
牌值包含- 返回:
- cardsA 是否包含 cardsB 的字段的值
-
distinct
去重- 返回:
- 去重相同的value
-
distinctByKey
-
parsePokerByNumbers
-
parsePokerByNumbers
取 pokers 中存在的 pokersNumber -
parsePokerByNumber
number 转 poker -
createPokers
创建几幅牌 -
createOneHandsPokers
创建一手牌 2-A 小王大王 -
createOneHandsPokers
创建一手牌 2-A 小王大王 -
rebuildCardsNum
重新构造牌的编号- 参数:
randomcolor- 随机颜色
-
rebuildCardsNum
重新构造牌的编号 -
getBestCards
public static List<Poker> getBestCards(List<Poker> handCards, Integer cardsNum, Integer selectMaxNum, DoudizhuUtil.GameTypeRule gameType, boolean random) 获取最佳的牌- 参数:
handCards- 我的手牌cardsNum- 牌数量selectMaxNum- 选择的最大数量gameType- 游戏类型random- 生成愿望牌 or 生成随机牌
-
getBestCardsByPokers
public static List<DoudizhuUtil.PokerList> getBestCardsByPokers(List<List<Poker>> pokersList, DoudizhuUtil.GameTypeRule gameType) -
combination
- 参数:
pokers- :组合数组m- :生成组合长度- 返回:
- :所有可能的组合数组列表
-
distribPokers
public static Map<Integer,List<Poker>> distribPokers(DoudizhuUtil.GameTypeRule gameType, DoudizhuUtil.Config config) 分配牌 -
distribPokers
public static Map<Integer,List<Poker>> distribPokers(boolean buxipai, boolean duozha, DoudizhuUtil.GameTypeRule gameType, DoudizhuUtil.Config config) 分配牌 -
getMaxCardNum
获取牌最大编号 -
makePokers
做牌 -
makePokers
做牌 -
parseListStr
List转 List -
parsePokers
List转 List
-