더북(TheBook)

18.1 카드 객체

덱에는 52장의 카드가 있고, 각 카드는 네 가지 문양 중에 하나이며, 1부터 13까지의 순위를 갖는다. 문양에는 스페이드, 하트, 다이아몬드, 클럽이 있다(이 순서가 브릿지에서는 내림차순이다). 순위는 에이스, 2, 3, 4, 5, 6, 7, 8, 9, 10, 잭, 퀸, 킹으로 되어 있다. 게임에 따라 에이스가 왕보다 높을 수도 있고, 2보다 낮을 수도 있다.

카드 플레이를 표현하는 새 객체를 정의한다면 rank(순위)suit(문양) 속성은 있어야 한다. 이들 속성을 무슨 타입으로 할지는 명확하지 않다. 한 가지 방법은 문장에 Spade, 순위에 Queen과 같이 단어를 포함한 문자열을 사용하는 것이다. 이 방법은 어떤 카드가 더 높은 순위인지, 어떤 문양인지 카드를 비교하기가 쉽지 않다는 문제가 있다.

다른 방법은 순위와 문양을 정수로 변환하는 것이다. 여기서 “인코드(encode, 부호화)”는 숫자와 문양 또는 숫자와 순위 사이에 매핑을 정의한다는 뜻이다. 이러한 종류의 인코딩에는 비밀을 유지하려는 의도가 없다(비밀을 유지하기 위한 인코딩은 ‘암호화(encryption)’라 한다).

예를 들어 다음은 문양과 문양에 해당하는 정수 코드를 나타낸 것이다.

스페이드 → 3

하트 → 2

다이아몬드 → 1

클럽 → 0

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.