怎么定义J Q K A 2的大小,以及忽略花色进行大小比较
初学Python,
# 定义一个将牌面转换为值的函数
def card_value(card):
if card == 'J':
return 11
elif card == 'Q':
return 12
elif card == 'K':
return 13
elif card == 'A':
return 14
elif card == '2':
return 15
else:
return int(card)
# 定义一个比较两张牌大小的函数,忽略花色
def card_compare(card1, card2):
# 获取牌面对应的值
value1 = card_value(card1)
value2 = card_value(card2)
# 如果牌面大小相同,它们被视为相等
if value1 == value2:
return 0
# 如果一张牌是2,则它是最大的牌
elif value1 == 15:
return 1
elif value2 == 15:
return -1
# 如果一张牌是A,则它比其他牌大
elif value1 == 14 and value2 != 15:
return 1
elif value2 == 14 and value1 != 15:
return -1
# 对于其他牌,直接比较它们的值
else:
return value1 - value2
这个可以进行一个转换
poke = "3,4,5,6,7,8,9,10,J,Q,K,A,2".split()
poke_value = {poke[i]: i for i in range(len(poke))}
def compare_cards(card1, card2):
if poke_value[card1] < poke_value[card2]:
return -1
elif poke_value[card1] > poke_value[card2]:
return 1
else:
return 0
返回-1表示第一张小,1表示第一张大,0表示一样大
比如
print(compare_cards('A', '3'))
我也是刚刚学的,有什么错误的地方或者不好的地方请多指教~(((φ(◎ロ◎;)φ)))