[파이썬 프로그래밍 21] 간단한 포커 게임 만들기 3: 함수 만들기

파이썬 프로그래밍
간단한 포커 게임 만들기 3 함수 만들기 포커게임은 한번만 하는 게임이 아니라, 여러번 반복하는 게임입니다. 게임마다 카드를 섞어 패를 나눠주고 나눠가진 패가 어떤 패인지 알아아내는 과정을 반복합니다. 그러면 지금까지 만들었던 코드를 연결해서 한번하는 포커게임을 만들어 보겠습니다. 과정은 이렇습니다. 필요한 모듈을 미리 다 불러온다. 카드 한 팩을 만든다. 카드를 섞는다. 선수 A에게 카드 다섯장을, 선수 B에게도 카드 다섯장을 카드 맨 앞장부터 뺴서 준다. 각 선수가 가진 패가 뭔지 알아본다. 결과 출력한다. 지난번 글에서 이미 각각의 과정을 코드로 만들었습니다. 이들을 이어 붙이는 것입니다. 전체 코드는 다음과 같습니다. # 과정 1: 필요한 모듈을 미리 다 불러온다. import random # 과정 2: 카드 한 팩을 만든다. deck = [(suit, k) for suit in ["s", "h", "d", "c"] for k in range(1,14)] # 과정 3: 카드를 섞는다. random.shuffle(deck) # 과정 4: 선수 A에게 카드 다섯장을…
Read More

[파이썬 프로그래밍 20] 간단한 포커 게임 만들기 2. 카드를 섞는(shuffling) 코드와 패가 무엇인지 알아내는 코드

파이썬 프로그래밍
간단한 포커 게임 만들기 2. 카드를 섞는(shuffling) 코드와 패가 무엇인지 알아내는 코드 포커게임의 기본은 선수들이 나눠가진 카드 패(hand)의 순위(rank)를 정하는 겁니다. 패는 포커 게임의 종류에 따라 각선수가 5개의 카드 패를 받기도 하고, 7개의 카드를 받기도 하고, 5개의 카드는 공유하고 각자 2개의 카드를 받아 결국은 각자 7개의 카드를 받는 등 카드를 받는 방식은 몇가지가 있습니다. 그중에서 가장 간단한 방식인 5장의 카드 패를 받는 포커 게임 방식으로 문제를 풀어가겠습니다. 먼저 선수(player)에게 패(hand)를 나눠줘야겠습니다. 실제 포커 게임에서는 게임을 관리하는 딜러(dealer)가 카드 팩을 잘 섞은 후에, 선수에게 패를 나눠줍니다. 카드를 섞기전에 먼저 카드가 순서대로 들어가있는 목록을 만들겠습니다. deck = [(suit, k) for suit in ["s", "h", "d", "c"] for k in range(1,14)] print(deck) 카드를 섞는(shuffling) 코드는, random모듈의 shuffle함수를 이용하겠습니다. import random random.shuffle(deck) print(deck) 카드가 순서대로 있지않고 섞여 있습니다. 이제 섞여있는 카드 팩의 첫번째 카드부터…
Read More

[파이썬 프로그래밍 19] 간단한 포커 게임 만들기 1. 튜플(tuple)과 목록을 연결하는 더하기(+) 기호

파이썬 프로그래밍
간단한 포커 게임 만들기 1. 튜플(tuple)과 목록을 연결하는 더하기(+) 기호 지금까지 공부한 파이썬 기초를 기반으로 간단한 게임 프로그램을 만들 수 있습니다. 간단한 게임은 여러가지가 있는데, 그중에서 포커 게임을 한번 만들어보겠습니다. 게임용 카드 한 팩(deck)에는 4개의 세트(suit)가 있습니다. 각각의 세트는 그려있는 심볼의 무늬가 스페이드(♠), 하트(♥), 다이아몬드(♦), 클로바(♣)로 구분할 수 있습니다. 그리고 각 세트는 13개의 카드가 있습니다. A,2,3, ... ,9,10,J,Q,K 이렇게 13개입니다. 편의상 A는 1로, J는 11로, Q는 12로, K는 13으로 표시하겠습니다. 그려면 1,2,3, ... , 12,13 표시하게 되어 모두 숫자로 나타낼 수 있습니다. 카드 한장은 세트무늬와 숫자의 쌍으로 나타낼 수 있습니다. 스페이드 무늬에 2라면 ("s", 2), 하트 무늬에 10이면 ("h", 10) 인 식으로 나타내면 됩니다. 여기에서 파이썬의 새로운 개념을 설명하겠습니다. 위에서 목록을 나타내는 대괄호[]대신 소괄호()를 사용했습니다. 파이썬에서 소괄호를 목록처럼 사용하면 이는 목록이라고 부르지 않고 튜플(tuple)이라고 부릅니다. 목록과 거의 같지만 튜플은 내용을…
Read More