c++新手问题,自己做了一个21点的扑克牌游戏,问题N多part2

来源:百度知道 编辑:UC知道 时间:2024/05/20 18:28:46
这里是后半部分,后半部分只是allc()的定义
第一部分请看http://zhidao.baidu.com/question/49311353.html

int allc(int i)
{
int allc[52]; //给52张牌赋值
int i1=1;
for(i=0;i<13;i++)
{
allc[i]=i1;
if (i1<10)
i1++;
}
int i2=1;
for(i=13;i<26;i++)
{
allc[i]=i2;
if (i2<10)
i2++;
}
int i3=1;
for(i=26;i<39;i++)
{
allc[i]=i3;
if (i3<10)
i3++;
}
int i4=1;
for(i=39;i<52;i++)
{
allc[i]=i4;
if (i4<10)
i4++;
}
cout<<endl;
char hong=003,hei=004,fang=005,hua=006;
i=rand()%52; //怎么能让这个函数每次取出的牌不重复?如果重复就pass重选一个
switch (i) //这么写麻烦吗?有什么简单点的招???
{
case 0:<

/*该程序是模拟21点扑克牌游戏,玩家最多可以要5张牌,
但是如果牌的点数之和超过21,则自动出局,在不超过21点
的情况下,玩与庄家比牌的点数大小,大者为赢家。
*/

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

class CCard
{
private:
int naPip[5]; //定义一个数组,一共是5张牌。
int nNumber; //发了多少张牌。
int nDollar; //有多少钱
int nGamble; //赌注
int nWin; //赢局数
int nLose; //输局数
int nDraw; //输局数
public:
CCard(); //构造函数
void FirstPlayTwo();//最初两张牌
int GetNumber();//返回牌张数
int GetPip(); //返回点数
void DisplayPip();//一次全部显示牌面点数。
void DisplayPip(int ); //除了第一张牌,一次全部显示牌面点数(针对计算机牌的显示)
void TurnPlay();//出了一张牌
void Win();//赢了计算赌注
void Lose();//输了
void Draw();//平局
int setGamble(int );//设置赌注,赌本不够返回1
int getMoney();//返回钱数
void DisplayInfo();//打印必要的信息
int GetCurrentCard();//返回当前牌点。
};
CCard::CCard()
{
nNumber=0;//开始没有发牌