玖叶教程网

前端编程开发入门

如何用Python写一个简单的扑克牌游戏(附源码)

import random

# 定义每种花色的枚举值

SPADE, HEART, DIAMOND, CLUB = range(4)

# 定义每种点数的枚举值

ACE, DEUCE, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING = range(13)

# 定义牌面值

RANKS = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]

# 定义花色值

SUITS = ["?", "?", "?", "?"]

# 定义一副牌

deck = [(rank, suit) for rank in RANKS for suit in SUITS]

# 洗牌

random.shuffle(deck)

# 发牌

player1 = deck[:26]

player2 = deck[26:]

# 游戏循环

while len(player1) > 0 and len(player2) > 0:

# 玩家1取一张牌

card1 = player1.pop()


# 玩家2取一张牌

card2 = player2.pop()


# 比较点数

rank1 = RANKS.index(card1[0])

rank2 = RANKS.index(card2[0])


if rank1 > rank2:

print("Player 1 wins: {}{}".format(card1[0], card1[1]))

player1.insert(0, card1)

player1.insert(0, card2)

elif rank1 < rank2:

print("Player 2 wins: {}{}".format(card2[0], card2[1]))

player2.insert(0, card1)

player2.insert(0, card2)

else:

print("War!")

war_cards1 = [card1]

war_cards2 = [card2]


# 暴力解决平局情况

while rank1 == rank2 and len(player1) > 0 and len(player2) > 0:

for i in range(4):

if len(player1) > 0 and len(player2) > 0:

war_cards1.append(player1.pop())

war_cards2.append(player2.pop())


rank1 = RANKS.index(war_cards1[-1][0])

rank2 = RANKS.index(war_cards2[-1][0])


if rank1 > rank2:

print("Player 1 wins: {}{}".format(card1[0], card1[1]))

player1 = war_cards1 + war_cards2 + player1

else:

print("Player 2 wins: {}{}".format(card2[0], card2[1]))

player2 = war_cards1 + war_cards2 + player2

# 判断胜负

if len(player1) > len(player2):

print("Player 1 wins!")

else:

print("Player 2 wins!")

上述程序实现了一个简单的扑克牌游戏,包括洗牌、发牌、比较点数、平局处理等功能。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言