基本信息
源码名称:21点游戏(c++源码)
源码大小:6.49KB
文件格式:.cpp
开发语言:C/C++
更新时间:2021-02-04
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

“21” 点纸牌游戏

1)基本要求

1.21点游戏是一个古老的扑克游戏,游戏的规则是:各个参与者设法使自己的牌达到总分21而不超过这个数值。扑克牌的分值取它们的面值,A充当1或者11分,J, Q和K人头牌都是10分。

2.庄家VS1~7个玩家。在开局时,包括庄家在内的所有参与者都有两张牌。玩家可以看到他们的所有牌以及总分,而庄家有一张牌暂时是隐藏的。接下来,只要愿意,各个玩家都有机会依次再拿-张牌。如果是玩家的总分超过了21(称为引爆),那么这个玩家就输了。在所有玩家都拿了额外的牌后,庄家将显示隐藏的牌。只要庄家的总分等于或小于16,那么他就必

须再拿牌。如果庄家引爆了,那么还没有引爆的所有玩家都将获胜,引爆的玩家打成平局。否则,将余下的各玩家的总分与庄家的总分做比较,如果玩家的总分大于庄家的总分,则玩家获胜。如果二者的总分相同,则玩家与庄家打成平局。

2)设计内容

  依照规则设计单人游戏程序,其余玩家与庄家均有电脑操作。玩家使用自动决策系统。

3)设计思路

1.使用枚举定义52张扑克牌,有“红桃、黑桃、方块、梅花”四种花色,每种花色有“ACE、TWO~TEN、QUEEN、KING”十三张牌,牌点计算时,ACE在总分高于21时记1,低于21时记11。J、Q、K均记10点

2.定义1~7人参加游戏并输入每位玩家的姓名

3.洗牌,给参与者发牌并显示牌的花色及点数,隐藏庄家的一张牌

4.显示玩家状态

5.判断各玩家点数,询问玩家是否继续要牌,玩家仅控制玩家1,剩余玩家为自动决策系统出牌

自动决策系统设计基于玩家的出牌期望与爆牌几率,参考下表:


通过一组if语句与rand()函数进行设计概率。实现除玩家外的电脑自动出牌的决策系统。

6.所有玩家与庄家要牌结束,统计分数,输出胜负结果

7.询问是否开始新一局游戏

8.游戏类声明与函数声明如下:

class Game_class //声明21点游戏类

{

private:

        Card deck[52];//一副扑克牌

        int dealPos;//发牌位置

        Card hands[8][21];//hand[0]存庄家牌,hand[1-7]存玩家牌

        int numOfCard[8];//庄家及玩家的牌数

        char name[8][NAME_LENGTH];//庄家及玩家姓名

        int numOfPlayer;

        void shuffle();//洗牌

        int GetTotalScore(Card hand[21], int n);//返回一手牌的总分值

        void ShowStatus(int num, bool hideFirstCardAndTotalScore = false);//显示庄家(num=0)或玩家(num>0)的当前状态

        Card DealOneCard()

        {

                 return deck[dealPos ];//发一张扑克牌

        }

public:

        //方法声明

        Game_class();//无参构造函数

        virtual ~Game_class() {};

        void Game();

        char Auto_Decision(int i);//电脑玩家自动决策函数



4)流程图


5)程序开发效果演示