|
| 1 | + |
| 2 | +# 德州扑克牌 |
| 3 | +本程序是德州扑克牌大小裁判程序,来源阿里83行code比赛。 |
| 4 | +https://college.devops.aliyun.com/ |
| 5 | + |
| 6 | +# 使用说明 |
| 7 | + |
| 8 | +```java |
| 9 | + //直接调用裁判程序即可。 |
| 10 | + String result = JudgeManager.getInstance().judge(cards1, cards2); |
| 11 | +``` |
| 12 | + |
| 13 | +# 以下是源内容说明: |
| 14 | + |
| 15 | +哇再次恭喜你完成83行代码重构大师赛第2关密封舱重启,来到了第3关能量舱! |
| 16 | + |
| 17 | +能量舱会有一些小挑战。它的性能通过德州扑克判大小的系统控制。 |
| 18 | + |
| 19 | +你的任务:重构德州扑克判大小的系统,以实现能量舱重启。 |
| 20 | +完成该任务即可重启能量舱,拿到歼星舰长能量水晶,还有机会抽取CHERRY机械键盘(限量1份)+CHERRY创意释压指尖轴(限量500份)。 |
| 21 | + |
| 22 | +德州扑克规则: |
| 23 | +1. 使用52张扑克(去掉大小王),分为四个花色(红桃H,方块D,黑桃S,梅花C),每个花色13张牌,依次从 2 到 A。J,Q,K,A分别对应为11,12,13,14(A只作为14)。游戏过程玩家各随机抽取5张牌,比大小。
|
| 24 | +2. 所有牌型如下: |
| 25 | +* 同花顺(StraightFlush):同一花色的顺子。(最大牌:A-K-Q-J-10 最小牌:2-3-4-5-6) |
| 26 | +* 四条(FourOfAKind):四同张加单张。(最大牌:A-A-A-A-K 最小牌:2-2-2-2-3) |
| 27 | +* 葫芦(FullHouse):三同张加对子。(最大牌:A-A-A-K-K 最小牌:2-2-2-3-3) |
| 28 | +* 同花(Flush):同一花色。(最大牌:A-K-Q-J-9 最小牌:2-3-4-5-7) |
| 29 | +* 顺子(Straight):花色不一样的顺子。(最大牌:A-K-Q-J-10 最小牌:2-3-4-5-6) |
| 30 | +* 三条(ThreeOfAKind):三同张加两单张。(最大牌:A-A-A-K-Q 最小牌:2-2-2-3-4) |
| 31 | +* 两对(TwoPair):(最大牌:A-A-K-K-Q 最小牌:2-2-3-3-4) |
| 32 | +* 一对(OnePair):(最大牌:A-A-K-Q-J 最小牌:2-2-3-4-5) |
| 33 | +* 单牌(HighCard):(最大牌:A-K-Q-J-9 最小牌:2-3-4-5-7)
|
| 34 | +3. 牌型大小: |
| 35 | +* 同花顺(StraightFlush) > 四条(FourOfAKind) > 葫芦(FullHouse) > 同花(Flush) > 顺子(Straight) > 三条(ThreeOfAKind) > 两对(TwoPair) > 一对(OnePair) > 单牌(HighCard) |
| 36 | +* 牌点从大到小为:A、K、Q、J、10、9、8、7、6、5、4、3、2,各花色不分大小。 |
| 37 | +* 同种牌型,对子时比对子的大小,其它牌型比最大的牌张,如最大牌张相同则比第二大的牌张,以此类推,都相同时为平手。 |
| 38 | +* 例: |
| 39 | +"3H 6H 2H 4H 5H" > "8S 8D 8H JH 8C" |
| 40 | +"2S 2D 2H 4H 4C" > "3S 2D 6C 4H 5H" |
| 41 | +"2S 2D 4C 4H 6C" = "2H 2C 4D 4S 6D"
|
| 42 | +4. 比较程序输入2个玩家的牌,并返回比较结果。 |
| 43 | +* 会以字符串形式输入玩家的牌,如 "3H 6H TH 4H AH"。每张牌由:牌点+花色 组成。10、11、12、13、14 分别用 T、J、Q、K、A 表示。 |
| 44 | +* 输出格式:(请保证输出的内容符合格式要求,会用于单元测试做比较) |
| 45 | + * 牌型不同时:[player1/player2] wins - [牌型];例:player1:"3H 6H 2H 4H 5H",player2:"8S 8D 8H JH 8C"。输出:player1 wins - StraightFlush |
| 46 | + * 牌型相同时:[player1/player2] wins - high card:[牌点];例:player1:"3H 6H 2H 4H 5H",player2:"8D 9D TD JD QD"。输出:player2 wins - high card:Q |
| 47 | + * 平手时:输出:tie |
| 48 | + |
| 49 | +### 注意: |
| 50 | +后台会运行若干单测来验证程序的正确性,请不要修改提示了不允许修改的类或者方法的签名,以保证测试的正常运行。例如以下提示: |
| 51 | +// Please don't modify the signature of this method. |
| 52 | +// Please don't modify the class name. |
0 commit comments