python代码: 写个函数判断福建十三水中的三顺子牌型
时间: 2023-12-03 19:45:10 浏览: 74
简单发牌,判断牌型,比较大小的实现(算法)
5星 · 资源好评率100%
假设福建十三水的牌型用一个长度为13的列表`cards`表示,其中每个元素代表一张牌,取值范围为1到52,表示52张牌中的不同牌面。
以下是一个判断三顺子牌型的函数实现:
```python
def is_three_straights(cards):
# 将牌按牌面大小排序
cards = sorted(cards)
# 从小到大遍历每个牌面
for i in range(1, 11):
# 判断是否存在三个连续的牌面
if cards[i:i+3] == [cards[i], cards[i]+1, cards[i]+2]:
# 找到一组顺子后,需要继续找下两组顺子
for j in range(i+3, 11):
if cards[j:j+3] == [cards[j], cards[j]+1, cards[j]+2]:
for k in range(j+3, 13):
if cards[k:k+3] == [cards[k], cards[k]+1, cards[k]+2]:
# 找到了三组顺子,返回True
return True
# 没有找到第三组顺子,接着找第二组顺子的下一个牌面
break
# 没有找到第二组顺子,接着找第一组顺子的下一个牌面
else:
continue
# 找到了第二组顺子但没有找到第三组顺子,接着找第一组顺子的下一个牌面
break
# 没有找到三组顺子,返回False
else:
return False
```
该函数首先将牌按牌面大小排序,然后从小到大遍历每个牌面,判断是否存在三个连续的牌面。如果找到了一组顺子,就继续往后找第二组顺子和第三组顺子。如果找到了三组顺子,就返回True;否则,就返回False。
阅读全文