Я пытаюсь создать робота, который будет играть в карточную игру "Big 2".
Моя цель состояла в том, чтобы начать играть только в 1 карточную игру. Я пытаюсь проверить это, возвращая True
, если число 1 больше, чем число 2, и False
, если это не так.
RANK_ORDER = '34567890JQKA2'
SUIT_ORDER = 'DCHS'
def is_higher(card1, card2):
a = list(card1)
b = list(card2)
if a[0] == b[0]:
if a[1] > b[1] in SUIT_ORDER:
return True
elif a[1] < b[1] in SUIT_ORDER:
return False
elif a[1] > b[1] in SUIT_ORDER:
return True
elif a[1] < b[1] in SUIT_ORDER:
return False
elif a[1] == b[1]: #problem may be from here downwards
if a[0] > b[0] in RANK_ORDER:
return True
elif a[0] < b[0] in RANK_ORDER:
return False
if __name__ == '__main__':
print(is_higher('8D', '9S'))
print(is_higher('2S', '2D'))
print(is_higher('3H', '2H')) #this has a problem
print(is_higher('QS', 'JS'))
print(is_higher('AD', '2S'))
Однако я несколько преуспел в своей цели, почему он возвращает True
для третьего примера, даже если 3
выше 2
в RANK_ORDER
?