この記事では、Pythonを用いてポーカーゲームを作成する方法を解説します。
ポーカーは戦略と運が鍵となる魅力的なカードゲームで、プログラミングの練習としても最適です。
一歩一歩、コード例を交えながらポーカーゲームを構築していきます。
目次
必要なライブラリ
基本的なポーカーゲームを作るためには、特別なライブラリは不要です。
Pythonの標準ライブラリのみで十分に実現可能です。
ステップ1: カードとデッキのクラス定義
まずはカードとデッキ(トランプ一組)を表すクラスを定義します。
各カードはランクとスート(絵柄)を持ちます。
import random
class Card:
def __init__(self, rank, suit):
self.rank = rank
self.suit = suit
def __repr__(self):
return f"{self.rank} of {self.suit}"
class Deck:
def __init__(self):
ranks = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
suits = ['Hearts', 'Diamonds', 'Clubs', 'Spades']
self.cards = [Card(rank, suit) for rank in ranks for suit in suits]
random.shuffle(self.cards)
def draw(self):
return self.cards.pop()
deck = Deck()
print(deck.draw()) # ランダムに一枚引いて表示
ステップ2: プレイヤーとハンドの管理
次にプレイヤーとそのハンド(手札)を管理するクラスを作成します。
2人以上のプレイヤーにカードを配るための機能を実装します。
class Player:
def __init__(self, name):
self.name = name
self.hand = []
def draw(self, deck):
self.hand.append(deck.draw())
def show_hand(self):
return ', '.join(map(str, self.hand))
deck = Deck()
player1 = Player('Alice')
player2 = Player('Bob')
for _ in range(5):
player1.draw(deck)
player2.draw(deck)
print(f"{player1.name}'s hand: {player1.show_hand()}")
print(f"{player2.name}'s hand: {player2.show_hand()}")
ステップ3: ハンドの評価
ポーカーでは各プレイヤーの手札を評価し、どちらが勝者かを決定する必要があります。
基本的な役(フラッシュ、ストレートなど)を評価するロジックを実装します。
def evaluate_hand(hand):
# 簡単な評価ロジックを実装 (例: ハイカードのみ)
ranks = {card.rank for card in hand}
return max(ranks) # 最高のランクを返す (ハイカードの場合)
player1_score = evaluate_hand(player1.hand)
player2_score = evaluate_hand(player2.hand)
if player1_score > player2_score:
print(f"{player1.name} wins with {player1_score}")
elif player1_score < player2_score:
print(f"{player2.name} wins with {player2_score}")
else:
print("It's a tie!")
まとめ
このようにして、Pythonを用いて基本的なポーカーゲームを作成することができます。
デッキのシャッフルやカードの配布、ハンドの評価など、ゲームの基盤となる要素を学びました。
さらに高度な機能や戦略を実装することで、より複雑で興味深いゲームに進化させることができます。
以上、Pythonでポーカーを作成する方法についてでした。
最後までお読みいただき、ありがとうございました。