我试图解决一个问题,我得到两张牌,我应该比较哪一张更高。我试着把清单摊开,但不知道如何比较。因此,目的是找出第一对是否高于其他对;如果第一对高于它,则返回true,如果第二对高于它,则返回false。 这是目前为止的基本代码:
RANK_ORDER = '34567890JQKA2'
SUIT_ORDER = 'DCHS'
def is_higher_pair(pair1, pair2):
dev1 = RANK_ORDER.find(pair1[0][0])
dev2 = SUIT_ORDER.find(pair1[0][1])
dev3 = RANK_ORDER.find(pair1[1][0])
dev4 = SUIT_ORDER.find(pair1[0][1])
your_answer = False
if dev1 > dev3:
your_answer = True
if dev1 == dev3:
if dev2 > dev4:
your_answer = True
return your_answer //compares the card in the first pair but i dont know how to compare two pairs.
if __name__ == '__main__':
print(is_higher_pair(['AH', 'AD'], ['8D', '8S']))
print(is_higher_pair(['JS', 'JD'], ['2D', '2S']))
print(is_higher_pair(['6D', '6S'], ['6H', '6C']))
print(is_higher_pair(['KH', 'KS'], ['KD', 'KC']))
print(is_higher_pair(['0H', '0D'], ['0S', '0C']))
我的输出应该考虑等级和适合度,因此对于上面给定的操作,这应该是结果:
True
False
True
True
False
我试着比较了两张牌,但还是不明白我在做什么。你知道吗
我找到了解决办法,在这里发布:
如果我很好地理解了如何比较对,那么这段代码将产生正确的输出:
编辑:实现这一点的较短版本(没有
Pair
类)是:我认为这是op想要的功能,它可以最小化比较。它确实假设一对是有效的一对,并且卡片是唯一的
相关问题 更多 >
编程相关推荐