最后,我还需要一个能够比较参与者的得分并判断胜负情况的函数,这个函数比较简单,只需要根据游戏规则,书写if和elif组合的条件控制即可。
不过,为了使程序人性化,我们需要在分出胜负的时候,在屏幕上给玩家做出提示。例如:你赢啦!你输啦!你得了几分,电脑得了几分之类的死也死得明白。。。
注意,之前的函数当设计参与者时,我都用了变量player来代替,那是由于之前的函数每次只作用于一个参与者。不过对于得分比较来说,每次都必然涉及参与者双方。
我给这个函数取名compare:
def compare(computer, user): '对参与者的总分进行比较并判出胜负' computer_total = evaluate(computer) #在这个compare函数中,用到了上一节写的evaluate函数 user_total = evaluate(user) #注意字符串'\n'表示换行,换行显示是为了让用户看得更清楚 if computer_total > user_total: print('\n你输啦!\n你的总点数为:', user_total, '\n庄家总点数为:', computer_total, sep = '') elif computer_total < user_total: print('\n你赢啦!\n你的总点数为:', user_total, '\n庄家总点数为:', computer_total, sep = '') elif computer_total == user_total == 21 and 2 == len(computer) < len(user): print('\n你输啦!庄家拿到了黑杰克!') elif computer_total == user_total == 21 and 2 == len(user) < len(computer): print('\n你赢啦!你拿到了黑杰克!') else: print('\n平局!\n你的总点数为:', user_total, '\n庄家总点数为:', computer_total, sep = '')
FAQ
Q:这个函数的参数computer和user是哪来的?
A:和发牌函数与计分函数参数中的player一样,这两个都是我自己取的变量名称。实际使用compare函数时,可以使用其他的变量将其代替。如果对此感到费解,不用纠结,继续学习后面的小节会逐渐理解。
如果还有什么问题或者发现了文章的错误,欢迎给我留言!邮箱可以随便乱写~