```python
# 斗地主游戏
# 导入模块
import random
# 定义牌类
class Card():
# 初始化方法
def __init__(self,suit,rank):
self.suit = suit
self.rank = rank
# 显示牌面
def show(self):
print("{} of {}".format(self.rank, self.suit))
# 定义牌堆类
class Deck():
# 初始化方法
def __init__(self):
self.cards = []
self.build()
# 创建牌堆
def build(self):
suits = ["Spades", "Clubs", "Diamonds", "Hearts"]
ranks = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]
for suit in suits:
for rank in ranks:
self.cards.append(Card(suit,rank))
# 洗牌
def shuffle(self):
for i in range(len(self.cards)-1,0,-1):
r = random.randint(0,i)
self.cards[i],self.cards[r] = self.cards[r],self.cards[i]
# 发牌
def deal(self):
return self.cards.pop()
# 定义玩家类
class Player():
# 初始化方法
def __init__(self,name):
self.name = name
self.hand = []
# 摸牌
def draw(self,deck):
self.hand.append(deck.deal())
return self
# 显示手牌
def showHand(self):
print("{}'s hand:".format(self.name))
for card in self.hand:
card.show()
# 定义游戏类
class Game():
# 初始化方法
def __init__(self):
name1 = input("player1's name:")
name2 = input("player2's name:")
name3 = input("player3's name:")
self.deck = Deck()
self.player1 = Player(name1)
self.player2 = Player(name2)
self.player3 = Player(name3)
# 开始游戏
def startGame(self):
self.deck.shuffle()
for i in range(17):
self.player1.draw(self.deck)
self.player2.draw(self.deck)
self.player3.draw(self.deck)
self.player1.showHand()
self.player2.showHand()
self.player3.showHand()
# 开始游戏
game = Game()
game.startGame()
```
python编写斗地主游戏
于 2023-02-19 20:34:09 首次发布
这是一个使用Python编写的斗地主游戏模拟程序。程序包含了牌类和牌堆类的定义,实现了洗牌、发牌和显示手牌等功能。玩家类和游戏类则处理了玩家的姓名输入、摸牌和显示手牌等操作。游戏开始时,系统会提示用户输入三个玩家的名字,然后进行发牌并显示每个玩家的手牌。
摘要由CSDN通过智能技术生成