此程序为21 点扑克牌游戏,玩家一共可以要五张牌,但如果牌的点数超过21,则自动出局;在不超过21 点的情况下,玩家与庄家比牌的点数大小,大者为赢,相同则为平局。 程序说明: 1) 将所有的函数与相应的数据封装到类中,并改写主程序。使程序简化。 2) 程序中一共有 13 张扑克牌可以随时抽取,大于 10 的点数为0.5。 3) 超级玩家永远不会输掉,即超级玩家可以查看下一张牌,若大于 21 点,则可以拒绝,当然游戏规则上不能泄露这点秘密。 4) 超级玩家可以查看下一张牌,即输入指定的字符串或字符,然后按要求输入正确密码后才能看自己的和计算机的牌,并指定下一级牌的点数。 5) 每次要牌后可以设定赔率,即如果开始下的是 10 元钱的注,如果牌好,你可以要求继续下注,当然不能超过你所有的总钱数。 6) 将界面的提示说明改成中文界面,界面的解释详细友好,可以吸引更多的玩家。 类的封装 设计一个类,将出牌,下注等的操作包含进去,玩家和计算机。均为这个类的对象。这样,在玩牌及判断输赢时,函数只需要用这两个对象的引用做参数即可,大大简化了函数。 具体的参考的数据结构如下; class CCard { private: int naPip[5]; //一共五张牌 int nNumber; //实际发了多少牌 int nDollar; //有多少钱 int nGamble; //赌注 int nWin; //赢局数 int nLost; //输局数 int nDraw; //平局数 public: CCard(); //构造函数,初始化 void FirstPlayTwo(); // 最初两张牌 int GetNumber(); //返回牌的张数 double GetPip(); //返回点数 void DidplayPip(); //依次显示牌面的点数 void DidplayPip(int); //除了第一张牌,依次全部显示牌面点数(针对计算机牌的显示) void TurnPlay(); //出一张牌 void Win(); //赢了计算赌注 void Lose(); //输了 void Draw(); //平局 int SetGamblec(int); //设置赌注,赌本不够返回-1 int GetMoney(); //返回钱数 void DisplayInfo(); //显示必要的信息 char * GetCurrentCard(); //返回当前牌点 void DeleteCard(void); //删除当前牌点,作弊用 void ModifyCard(double); //修改当前牌,作弊用 int Addgamble(int); //加赌注 }; 主程序 #include #include //fuctions void replay(char &ans); //询问玩家是否再玩一局 void hit(int &total); //要一张牌 void deal(...