python-3.x - 用一组元组制作扑克游戏
问题描述
首先,我必须Hands = Set[Tuple[str,str]]
分别表示卡片的花色和等级( Hands = {("Diamonds", "4"),("Clubs","J"),...}
)。然后我必须检查是否Hands
包含同花顺组合(所有 5 张牌依次具有相同的花色。)我尝试使用 for 循环来检查所有牌的花色是否相同,但问题是我无法分割集合内的元素. 在那之后我很难过。有没有办法返回一个指示变量是否Hands
是同花顺的布尔值?
这是我一直在处理的代码
Hands = Set[Tuple[str,str]]
h = {("Diamonds", "Q"),("Diamonds","J"),("Diamonds","K"),("Diamonds","A"),("Diamonds","2")}
def is_sflush(h:Hands) -> bool:
for i in h:
if h[i][0] == h[i+1][0]: #This is where I am wrong and need help here
解决方案
这听起来像是硬件问题,所以不要放弃农场......
你有 2 个检查要弄清楚:相同的西装和顺序。分开做。
对于“相同的套装”,我建议从卡片(而不是等级)中制作一套set
套装,你可以从一组理解中做到这一点。该集合的大小会告诉你什么?
顺序部分需要做更多的工作。:) 您可能需要一个额外的数据结构,该结构具有正确的卡片顺序或位置作为比较的东西。有几种策略可以奏效。
推荐阅读
- sql - 具有最佳字符串匹配的 SQL 左连接
- c++ - 如何为 Unreal Engine 4 启用 /arch:AVX?
- python - Windows 10 上的 Python Matplotlib 安装问题
- python - 在 Pandas 中迭代地分配唯一 ID
- javascript - 任何设计模式都可以替换 javascript 中的 promise/then 链?
- xml - 在 xslt 中映射 xml 元素的最佳方法
- r - R - 为 lapply 定义几个阶跃函数
- python - 我们如何能够直接从 openpyxl 包中调用 load_workbook
- sql - 使用 SQL 列表中的变量运行 for 循环
- javascript - Laravel Fav/Unfav 功能,实现 ajax