이러한 코드를 사용하면 카드를 비교하기가 쉬워진다. 높은 문양이 높은 숫자에 매핑되어 있으므로 문양의 코드만 비교하면 문양을 비교할 수 있다.
순위 매핑은 매우 이해하기 쉽다. 숫자로 된 순위는 바로 해당 정수로 매핑하고, 그림 카드(face card)는 다음과 같이 매핑하면 된다.
잭 → 11
퀸 → 12
킹 → 13
여기서 설명한 매핑이 파이썬 프로그램이 아니라는 것을 구분하기 위해 → 기호를 사용했다. 이러한 매핑은 프로그램 디자인에 속하며 코드에서 명확하게 드러나는 부분은 아니다.
Card의 클래스 정의는 다음과 같다.
class Card:
"""표준 카드 플레이어를 표현."""
def _ _init_ _(self, suit=0, rank=2):
self.suit = suit
self.rank = rank
일반적으로 _ _init_ _ 메서드는 각 속성에 대해 선택 인자를 받는다. 기본 카드는 클럽 2가 된다.
카드를 생성할 때는 원하는 카드의 문양과 순위와 함께 Card를 호출하면 된다.
queen_of_diamonds = Card(1, 12)