더북(TheBook)

18.4

이제 카드는 준비되었으니 다음 단계는 덱(Deck)을 정의하는 것이다. 덱은 카드로 구성되므로 각각의 Deck에는 카드 리스트가 속성이 된다.

다음은 Deck 클래스를 정의한 것이다. _ _init_ _ 메서드에서는 cards 속성을 생성하고, 52장의 카드 세트를 생성한다.

class Deck:

 

def _ _init_ _(self):

self.cards = []

for suit in range(4):

for rank in range(1, 14):

card = Card(suit, rank)

self.cards.append(card)

덱을 채우는 가장 쉬운 방법은 중첩 루프를 사용하는 것이다. 바깥 루프는 0부터 3까지의 문양(suit)을 열거한다. 안쪽 루프는 1부터 13까지의 순위(rank)를 열거한다. 각 반복에서는 현재 문양과 순위로 새로운 Card를 생성하고 이를 self.cards에 추가한다.

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