import random
# 定义牌堆
cards = [1,2,3,4,5,6,7,8,9,10,10,10,10]*4
# 定义计算手牌点数的函数
def count_points(hand):
points = sum(hand)
if points > 21 and 11 in hand:
points -= 10
return points
# 定义游戏主体
def play_game():
# 初始化玩家和庄家的手牌
player_hand = []
dealer_hand = []
# 玩家先拿一张牌
player_hand.append(random.choice(cards))
print("你的手牌是:", player_hand)
# 庄家拿两张牌,其中一张暗牌
dealer_hand.append(random.choice(cards))
dealer_hand.append(random.choice(cards))
print("庄家的手牌是:[?,", dealer_hand[1], "]")
# 玩家决定是否继续拿牌
while True:
choice = input("是否继续拿牌?(y/n)")
if choice == 'y':
player_hand.append(random.choice(cards))
print("你的手牌是:", player_hand)
if count_points(player_hand) > 21:
print("你爆了!")
return -1
else:
break
# 庄家一直拿牌直到手牌点数大于等于17
while count_points(dealer_hand) < 17:
dealer_hand.append(random.choice(cards))
print("庄家的手牌是:[?,", dealer_hand[1:], "]")
# 判断胜负
player_points = count_points(player_hand)
dealer_points = count_points(dealer_hand)
print("你的点数是:", player_points)
print("庄家的点数是:", dealer_points)
if player_points > 21:
return -1
elif dealer_points > 21:
return 1
elif player_points > dealer_points:
return 1
elif player_points == dealer_points:
return 0
else:
return -1
# 开始游戏
while True:
result = play_game()
if result == 1:
print("你赢了!")
elif result == 0:
print("平局!")
else:
print("你输了!")
choice = input("是否再来一局?(y/n)")
if choice == 'n':
break
用python实现21点小游戏
最新推荐文章于 2024-05-19 11:09:09 发布