下面是一个简单的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点。最后比较双方的点数,点数较高的一方获胜。如果双方点数相同,则为平局。

Python 二十一点游戏代码及玩法详解

原文地址: https://www.cveoy.top/t/topic/lUP6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录