21点小游戏(C++版)

int startPosition;//发牌初始位

Card gamers[8][21];

//gamers[0]存放庄家的牌,gamers[1]到[7]存放玩家的牌

//设置庄家即是机器人,一个人也能玩

int numcards[8]; //庄家(numcards[0])及玩家的牌数

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

int numgamer;//玩家数

void Shuffle(); //洗牌函数

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

void ShowStatus(int num,bool hideFirstCard=false);

//显示庄家(对应num=0)或玩家(对应num>0)的当前状态,要隐藏庄家机器人的第一次发的牌和分数

Card FirstCard()

{

return PK[startPosition++];

}//发一张扑克牌

};

//初始化扑克牌,发牌位置,庄家与各玩家手中的扑克牌数

Point21::Point21()

{

int nowPos=0; //当前扑克牌位置

char* str;

for(int shapePos=0;shapePos<4;shapePos++) //花色

{

for(int numPos=1;numPos<=13;numPos++) //面值

{

PK[nowPos].shape=(shapetype)shapePos; //花色

PK[nowPos].num=(numtype)numPos; //面值

nowPos++;

}

}

cout<<endl<<“请问有几个人参加游戏?(最多7个人):”;

str =new char[1];

cin>>str;

numgamer=atoi(str);

//atoi函数与itoa()函数区别

while (numgamer<1||numgamer>7) //限制人数在1~7之间

{

cout<<endl<<“玩家人数限定在1~7个,请重新输入人数:”;

cin>>str;

numgamer=atoi(str);

}

startPosition=0; //发牌位置

int i=0; //临时变量

//庄家numcards[0]及玩家numcards[1~7]手中的扑克牌张数

for(i=0;i<=numgamer;i++) numcards[i]=0;

strcpy(name[0],“庄家”);

for(i=1;i<=numgamer;i++) //玩家姓名

{

cout<<“输入第”<<i<<“个玩家的姓名:”;

cin>>name[i];

}

cout<<“游戏开始”<<endl<<endl;

}

//洗牌,通过产生随机数,交换随机数对应位置的牌和当前位置的牌

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值