为什么调用calcuate_score()后computer_score和user_score会重新定义? (蟒蛇)

问题描述 投票:0回答:0

所以我正在尝试编写 21 点游戏的代码,但在我调用 calcuate_score() 之后,computer_score 不断精化为 0。这是我定义 computer_score 和 user_score 的地方:

import random

user_score = 0
computer_score = 0

cards = [11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10]

user_cards = []
computer_cards = []

这里是我定义 calculate_score() 并优化 user_score 和 computer_score 的地方:

def calculate_score(card_list):
    user_score = sum(user_cards)
    computer_score = sum(computer_cards)
    if computer_cards.count(11) > 0 and computer_cards.count(10) > 0:
        computer_score = 0
    elif user_cards.count(11) > 0 and user_cards.count(10) > 0:
        user_score = 0  
    if user_cards.count(11) > 0:
        cards.remove(11)
        cards.append(1)
    elif computer_cards.count(11) > 0:
        cards.remove(11)
        cards.append(1)

这里是我调用 deal_cards() 的地方:

deal_cards = deal_card()
calculate_score(card_list=[user_score, computer_score])
if computer_cards.count(0) > 0 or user_score > 21:
    print("lose")
else:
    print("win")

PS:我还在学习python,所以请不要提前回答。谢谢你

python blackjack
© www.soinside.com 2019 - 2024. All rights reserved.