编写一副扑克牌和一个发牌函数,要求:
(1) 创建一副扑克牌,不包含两个Joker,其它牌面每个四张,花色可以用任意特殊符号表示;
(2) 按照21点的游戏规则,使用学过的数据类型来指定每张牌的点数,其中数字牌的点数与同数字大小,J、Q和K的点数为0.5,A的点数为1;
(3) 发牌函数每次随机发一张的牌,同时需要从发牌集合中删除已发放的牌,函数要求返回发牌的面值、点数和剩余未发的牌;并打印剩余牌数。
在编译器中,编写一个简易的人机对战的双人21点游戏。游戏规则如下:
(1) 游戏者在保证自身点数不超过21点的情况下,所持点数大于对手被判赢,超过21点判输。
(2) 游戏中,电脑可能要进行多轮发牌。首轮发牌时,双方各两张牌,且需要显示PC获得的牌中的一张的牌面(控制台打印);次轮以及以后的轮次,双方各发一张牌,PC的牌面不再显示,但需要在控制台打印自身获得的牌面和总点数;每一轮开始时要在控制台打印轮次信息。
(3) 每一轮发牌之后,人机双方均可叫停游戏或游戏可能自动终止;PC每一轮随机叫停或继续下一轮,人一方也通过控制台输入指令,叫停或者继续游戏;任何一方叫停或此时有任何一方的牌面大于21点,游戏将会被强制终止(游戏终止时需要在控制台打印该信息,并打印游戏终止的原因),并进行输赢的判定(在控制台打印判定结果,以及判定依据)。
(4) 游戏结果可能有如下几种:1)