61 lines
1.5 KiB
Markdown
61 lines
1.5 KiB
Markdown
# Task 4
|
||
|
||
## 项目概述
|
||
|
||
从Task1标准扑克扩展到短牌扑克
|
||
|
||
## 支持的手牌类型
|
||
|
||
1. **皇家同花顺** (Royal Flush) - A♠K♠Q♠J♠T♠
|
||
2. **同花顺** (Straight Flush) - 连续的五张同花色牌
|
||
3. **四条** (Four of a Kind) - 四张相同点数的牌
|
||
4. **同花** (Flush) - 五张同花色的牌
|
||
5. **满堂红** (Full House) - 三条加一对
|
||
6. **顺子** (Straight) - 五张连续点数的牌(包括A-2-3-4-5轮子)
|
||
7. **三条** (Three of a Kind) - 三张相同点数的牌
|
||
8. **两对** (Two Pair) - 两个对子
|
||
9. **一对** (One Pair) - 一个对子
|
||
10. **高牌** (High Card) - 没有组合的单张高牌
|
||
|
||
### 环境要求
|
||
|
||
**牌组特性**:
|
||
- 移除2、3、4、5,保留6-A(36张牌)
|
||
- 支持A-6-7-8-9特殊顺子
|
||
|
||
**手牌排名调整**:
|
||
```
|
||
短牌vs标准扑克的关键差异:
|
||
- Flush (同花) > Full House (满堂红)
|
||
- 其他排名保持一致
|
||
```
|
||
|
||
**可能的顺子组合**:
|
||
1. A-6-7-8-9
|
||
2. 6-7-8-9-T
|
||
3. 7-8-9-T-J
|
||
4. 8-9-T-J-Q
|
||
5. 9-T-J-Q-K
|
||
6. T-J-Q-K-A
|
||
|
||
### 测试
|
||
|
||
**单元测试**:
|
||
- Card类:创建、解析、验证、比较
|
||
- HandEvaluator:各种手牌类型识别
|
||
- HandRanking:排名比较和字符串表示
|
||
|
||
**关键验证用例**:
|
||
```bash
|
||
# 标准扑克 - Royal Flush
|
||
python main.py "AsKs QsJsTsAdAc"
|
||
# 输出: Royal Flush
|
||
|
||
# 短牌扑克 - 关键规则验证
|
||
python shortdeck_main.py "AsKs QsJs9s" # Flush
|
||
python shortdeck_main.py "AsAh AcKsKh" # Full House
|
||
|
||
# 短牌扑克
|
||
python shortdeck_main.py "As9h 8d7c6s9dKs"
|
||
```
|