21点又名黑杰克(Blackjack),起源于法国,已流传到世界各地,有着悠久的历史。现在在世界各地的赌场中都可以看到二十一点。随着互联网的发展,二十一点开始走向网络时代。该游戏由2到6个人玩,使用除大小王之外的52张牌,游戏者的目标是使手中的牌的点数之和不超过21点且尽量大。
大家手中扑克点数的计算规则是:2至9牌,按其原点数计算;K、Q、J和10牌都算作10点;A 牌(ace)既可算作1点也可算作11点,由玩家自己决定(当玩家停牌时,点数一律视为最大而尽量不爆,如A+9为20,A+4+8为13,A+3+A视为15)。
这里我们假设游戏仅有两名玩家(分别叫庄家和闲家)进行,以下是游戏规则:
1、闲家和庄家都会从一副牌中抽取两张牌。 庄家会翻开一张牌让闲家看到。
2、闲家可以选择“要牌”或“停牌”,以尽可能接近21点。如果闲家选择“要牌”,则他会从牌堆上抽取一张牌。 如果闲家超过21点,则他输了游戏,无论庄家手中的牌是什么。
3、当闲家完成行动后,庄家会翻开他的第二张牌。如果他的牌点数小于17,则必须要牌。如果他的牌点数大于或等于17,则必须停牌。注意:如果闲家爆了,庄家只会展示第二张牌给闲家,而不会按规则要牌或停牌。
4、当庄家完成行动后,闲家的牌与庄家的牌进行比较。如果闲家的牌点数大于庄家但不超过21点,则闲家赢了游戏。同理如果庄家的牌点数大于闲家但不超过21点,则庄家赢了游戏;如果闲家或庄家超过21点,则超过者输了游戏(按规则不会出现双方同时超过21点的情况)。如果闲家和庄家都不超过21点且牌点数相等,则平局。
现请你写一段闲家的程序来和庄家比赛。因为发牌的顺序是随机的,你很难保证每次都获胜。但庄家的策略是固定的,因此我们要求你的算法要尽可能多的获胜。
这个程序与你做过的大部分题目不一样,你需要通过不断地和另外一个程序(叫“交互程序”)进行交互。你的程序是闲家,交互程序是庄家。
程序开始,庄家会先发给你两张牌,每张牌一行,格式为花色加牌面(中间有一个空格),如Spade 4、Heart A、Heart 10等(由于牌面可能是整数也可能是字符,所以建议按字符串读入)