Python 二十一点游戏代码及玩法详解
下面是一个简单的Python 二十一点小游戏:
import random
def get_card():
'获取一张牌'
cards = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
card = random.choice(cards)
if card in ['J', 'Q', 'K']:
return 10
elif card == 'A':
return 11
else:
return int(card)
def game():
'游戏主体'
player_cards = []
dealer_cards = []
player_cards.append(get_card())
dealer_cards.append(get_card())
player_cards.append(get_card())
dealer_cards.append(get_card())
print('玩家的牌是:', player_cards)
print('庄家的牌是:', [dealer_cards[0], '?'])
player_sum = sum(player_cards)
dealer_sum = sum(dealer_cards)
if player_sum == 21:
print('恭喜你,你赢了!')
return
while True:
choice = input('是否继续要牌(y/n)?')
if choice == 'y':
player_cards.append(get_card())
print('你的牌是:', player_cards)
player_sum = sum(player_cards)
if player_sum > 21:
print('你输了!')
return
elif player_sum == 21:
print('恭喜你,你赢了!')
return
else:
break
while dealer_sum < 17:
dealer_cards.append(get_card())
dealer_sum = sum(dealer_cards)
print('玩家的牌是:', player_cards)
print('庄家的牌是:', dealer_cards)
if dealer_sum > 21:
print('恭喜你,你赢了!')
elif dealer_sum == 21:
print('你输了!')
elif dealer_sum > player_sum:
print('你输了!')
elif dealer_sum < player_sum:
print('恭喜你,你赢了!')
else:
print('平局!')
if __name__ == '__main__':
game()
在这个游戏中,玩家和庄家会分别从牌堆中随机获取两张牌。玩家可以选择是否继续要牌,直到他的点数超过21点或者他选择停止要牌。然后庄家会根据规则继续要牌,直到他的点数超过17点或者他的点数超过21点。最后比较双方的点数,点数较高的一方获胜。如果双方点数相同,则为平局。
原文地址: https://www.cveoy.top/t/topic/lUP6 著作权归作者所有。请勿转载和采集!