2025年3月13日 星期四 甲辰(龙)年 月十二 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > C语言

扑克牌加减乘除游戏

时间:01-03来源:作者:点击数:76

扑克牌加减乘除游戏,是一种集技巧性和运气性于一体的扑克牌游戏。

现实中可以单人玩,也可以不定人数对抗,用若干副扑克牌去掉王即可游戏,推荐用一副牌双人对抗,乐趣无穷。

本程序利用Card类数组模拟扑克牌,定义3个数组分别表示玩家手中的牌,电脑手中的牌和底牌,用srand((unsigned)time(NULL))产生随机数字,将底牌数组中随机的一项从底牌中移动到其他的数组中,模拟从洗好底牌中抓牌。表示出牌。

单人练习模式中,首先记下一个 1到13之间的随机数字,然后玩家抓牌,当手中的牌的点数恰与记下的随机数字相等,或用手中有的任意两张牌,通过加减乘除四则运算可以凑出该随机数字相等的点数,则停止抓牌并将这一张或两张出出去,随即记下一个新的随机数字,开始下一轮,直道手中的全部牌出完,游戏结束。

人机对抗模式中,首先玩家和计算机各分的5张牌,然后比较玩家和计算机手中最小的牌,谁的小谁就打出这张最小的牌,另一方认为自己的牌凑不出这张牌的点数则开始抓牌,直道手中的牌的点数恰与第一个人出的牌相等,或者用手中有的任意两张牌,通过加减乘除四则运算可以凑出第一个人出的牌相等的点数,则停止抓牌并将这一张或两张出出去,然后要求对方以同样的规则,开始下一轮,直道某一方手中的全部牌出完,游戏结束。

电脑的计算能力使得它肯定会以最优的策略出牌,就让我们看看你的运气如何吧!

压缩包下载: 扑克牌加减乘除游戏 (165.59 KB)

------------------------------以下是程序源码---------------------------------------

  • //扑克牌加减乘除游戏
  • #include<iostream.h>
  • #include<string.h>
  • #include<ctime.h>
  • #include<iomanip.h>
  • using namespace std;
  • //================================================================================================
  • class Card
  • //定义扑克牌Card
  • {
  • private:
  • char design; //花色
  • int number; //点数
  • public:
  • Card() //默认构造方法
  • {
  • design=0;
  • number=0;
  • }
  • void creatCard(int i=1) //带参初始化方法
  • {
  • number=i;
  • if(i>=1&&i<=13)
  • design=3;
  • else if(i>=14&&i<=26)
  • design=4;
  • else if(i>=27&&i<=39)
  • design=5;
  • else if(i>=40&&i<=52)
  • design=6;
  • }
  • void shownumber() //显示牌
  • {
  • int i=number%13;
  • switch(i)
  • {
  • case 1: cout<<"["<<design<<"A]";
  • break;
  • case 2: cout<<"["<<design<<"2]";
  • break;
  • case 3: cout<<"["<<design<<"3]";
  • break;
  • case 4: cout<<"["<<design<<"4]";
  • break;
  • case 5: cout<<"["<<design<<"5]";
  • break;
  • case 6: cout<<"["<<design<<"6]";
  • break;
  • case 7: cout<<"["<<design<<"7]";
  • break;
  • case 8: cout<<"["<<design<<"8]";
  • break;
  • case 9: cout<<"["<<design<<"9]";
  • break;
  • case 10:cout<<"["<<design<<"10]";
  • break;
  • case 11:cout<<"["<<design<<"J]";
  • break;
  • case 12:cout<<"["<<design<<"Q]";
  • break;
  • default: cout<<"["<<design<<"K]";
  • }
  • }
  • int getnumber() //得到牌的真实点数
  • {
  • if(number%13)
  • return number%13;
  • else
  • return 13;
  • }
  • ~Card(){} //析构方法
  • };
  • //================================================================================================
  • const int CARDS=52; //扑克牌总数
  • //函数声明
  • void welcome(); //欢迎界面
  • void start(Card *rc); //初始化底牌
  • void siglegame(); //单人游戏欢迎界面
  • void sigleplay(Card *pc,Card *rc,int& pcn,int& rcn,int want); //单人游戏执行算法
  • void vsgame(); //对抗游戏欢迎界面
  • void playerplay(Card *pc,Card *cc,Card *rc,int& pcn,int& ccn,int& rcn,int want);//对抗时玩家算法
  • void AIplay(Card *pc,Card *cc,Card *rc,int& pcn,int& ccn,int& rcn,int want); //对抗时计算机算法
  • void upminu(); //返回上一级菜单
  • void gameinfo(); //游戏简介
  • void maker(); //制作者
  • void exit(); //退出游戏
  • //================================================================================================
  • int main()
  • //主函数
  • {
  • srand((unsigned)time(NULL)); //随机种子发生器
  • welcome();
  • return 0;
  • }
  • //================================================================================================
  • void welcome()
  • //欢迎界面
  • {
  • int choice; //申请变量接受用户输入
  • cout<<setfill('*')<<setw(47)<<"*"<<endl;
  • cout<<"    欢迎体您验扑克牌加减乘除游戏"<<endl;
  • cout<<setfill('*')<<setw(47)<<"*"<<endl;
  • cout<<" (1) 单人练习。"<<endl; //显示菜单
  • cout<<" (2) 人机对抗。"<<endl;
  • cout<<" (3) 游戏介绍。"<<endl;
  • cout<<" (4) 开发成员。 "<<endl;
  • cout<<" (5) 退出游戏。"<<endl;
  • while(1) //接受用户输入
  • {
  • cout<<""<<setfill('=')<<setw(47)<<"="<<endl;
  • cout<<"请选择1|2|3|4|5:";
  • cin>>choice;
  • if(choice>=1&&choice<=5) //遇到合法输入时跳出循环
  • break;
  • }
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • switch(choice)
  • {
  • case 1: siglegame(); //跳转到各个函数
  • break;
  • case 2: vsgame();
  • break;
  • case 3: gameinfo();
  • break;
  • case 4: maker();
  • break;
  • default: exit();
  • }
  • }
  • //================================================================================================
  • void start(Card *rc)
  • //初始化底牌
  • {
  • for(int i=0;i<CARDS;i++)
  • rc[i].creatCard(i+1); //循环给52张底牌赋值
  • }
  • void siglegame()
  • //单人游戏欢迎界面
  • {
  • cout<<" 单人练习模式"<<endl;
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • Card rc[CARDS]; //底牌数组
  • Card pc[CARDS]; //玩家牌数组
  • int rcn=CARDS; //初始化底牌数
  • int pcn=0; //初始化玩家牌数
  • int want; //申请变量接受随机数
  • start(rc); //初始化底牌
  • want=rand()%13+1; //生成1-13的随机数
  • sigleplay(pc,rc,pcn,rcn,want); //调用单人游戏执行算法
  • }
  • //================================================================================================
  • void sigleplay(Card *pc,Card *rc,int& pcn,int& rcn,int want)
  • //单人游戏执行算法
  • {
  • int choice,p,q,i,j; //申请辅助变量
  • cout<<"你需要凑的随机点数是 "<<want<<endl;
  • if(pcn>0) //手中有牌,则显示出来
  • {
  • cout<<"你现有"<<pcn<<"张牌:"<<endl;
  • for(i=0;i<pcn;i++)
  • {
  • pc[i].shownumber();
  • if((i+1)%5==0) //显示5张牌换一次行
  • cout<<endl;
  • }
  • cout<<endl;
  • }
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • cout<<" (1) 出1张牌。"<<endl;
  • cout<<" (2) 出2张牌。"<<endl;
  • cout<<" (3) 抓牌。"<<endl;
  • cout<<" (4) 玩法提示。"<<endl;
  • cout<<" (5) 回主界面。"<<endl;
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • while(1) //接受用户输入
  • {
  • cout<<"请选择1|2|3|4|5:";
  • cin>>choice;
  • if(choice>=1&&choice<=5) //遇到合法输入时跳出循环
  • break;
  • }
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • if(choice==3) //抓牌算法
  • {
  • if(rcn) //有底牌
  • {
  • int temp=rand()%rcn; //产生一个小于底牌数的随机数
  • pc[pcn]=rc[temp]; //赋给玩家牌
  • pcn++; //玩家牌数加1
  • for(int r=temp;r<rcn;r++)
  • rc[r]=rc[r+1]; //从底牌里删掉这张牌
  • rcn--; //底牌数减1
  • }
  • else
  • cout<<"没底牌了。"<<endl;
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • sigleplay(pc,rc,pcn,rcn,want); //递归调用
  • }
  • else if(choice==1) //出一张牌算法
  • {
  • if(pcn) //手中有牌
  • {
  • int flag=1; //定义监视哨
  • cout<<"请输入出第几张牌:";
  • cin>>i;
  • i--;
  • p=pc[i].getnumber();
  • if(p==want) //满足条件
  • {
  • flag=0;
  • cout<<"你出了一张牌:";
  • pc[i].shownumber();
  • cout<<endl;
  • rc[rcn]=pc[i]; //将这张牌插回底牌中
  • rcn++; //底牌数+1
  • for(int o=i;o<pcn;o++)//从玩家牌里删掉这张牌
  • pc[o]=pc[o+1]; //玩家牌数-1
  • pcn--;
  • if(pcn) //没出净
  • {
  • want=rand()%13+1; //产生新的随机数,进入下一轮
  • sigleplay(pc,rc,pcn,rcn,want);
  • }
  • else //出净了
  • {
  • cout<<"你牌出完了,你赢了!"<<endl;
  • upminu();
  • }
  • }
  • if(flag) //监视哨没有被改值
  • cout<<"出牌有误!"<<endl;
  • }
  • else //第一次必须先抓牌哦
  • cout<<"手中没有牌啊,请先抓牌哦!"<<endl;
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • sigleplay(pc,rc,pcn,rcn,want);
  • }
  • else if(choice==2) //出两张牌算法
  • {
  • if(pcn>=2) //手中有2张以上的牌
  • {
  • int flag=1;
  • cout<<"请分别输入2张牌的次序:";
  • cin>>i>>j;
  • i--;
  • j--;
  • if(i!=j) //两张牌可不能是同一张哦
  • {
  • p=pc[i].getnumber();
  • q=pc[j].getnumber();
  • if(p*q==want||(p%q==0&&p/q==want)||(q%p==0&&q/p==want)||p+q==want||p-q==want||q-p==want)
  • { //满足条件
  • flag=0;
  • cout<<"你出2张牌:";
  • pc[i].shownumber();
  • pc[j].shownumber();
  • cout<<endl;
  • rc[rcn]=pc[i]; //插回底牌
  • rc[rcn+1]=pc[j];
  • rcn+=2;
  • if(i>j) //如果不是按增序输入则交换牌次序
  • {
  • i=j;
  • j=i;
  • }
  • for(int k=j;k<pcn;k++) //删除第2张
  • pc[k]=pc[k+1];
  • pcn--;
  • for(int m=i;m<pcn;m++) //删除第1张
  • pc[m]=pc[m+1];
  • pcn--;
  • if(pcn) //没出净
  • {
  • want=rand()%13+1; //产生新的随机数,进入下一轮
  • sigleplay(pc,rc,pcn,rcn,want);
  • }
  • else //出净了
  • {
  • cout<<"你牌出完了,你赢了!"<<endl;
  • upminu();
  • }
  • }
  • }
  • if(flag) //监视哨没有被改值
  • cout<<"出牌有误!"<<endl;
  • }
  • else
  • cout<<"手中没有2张牌啊,请先抓牌哦!"<<endl;
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • sigleplay(pc,rc,pcn,rcn,want);
  • }
  • else if(choice==4) //玩法提示
  • {
  • cout<<" 首先记下一个 1到13之间的随机数字,然后玩家"<<endl;
  • cout<<"抓牌,当手中的牌的点数恰与记下的随机数字相等,或"<<endl;
  • cout<<"用手中有的任意两张牌,通过加减乘除四则运算可以"<<endl;
  • cout<<"凑出该随机数字相等的点数,则停止抓牌并将这一张"<<endl;
  • cout<<"或两张出出去,随即记下一个新的随机数字,开始下一"<<endl;
  • cout<<"轮,直道手中的全部牌出完,游戏结束。"<<endl;
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • sigleplay(pc,rc,pcn,rcn,want);
  • }
  • else
  • welcome();
  • }
  • //================================================================================================
  • void vsgame()
  • //对抗游戏欢迎界面
  • {
  • cout<<" 人机对抗模式:"<<endl;
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • Card rc[CARDS]; //底牌数组
  • Card pc[CARDS]; //玩家牌数组
  • Card cc[CARDS]; //电脑牌数组
  • int rcn=CARDS; //初始化底牌数
  • int pcn=0; //初始化玩家牌数
  • int ccn=0; //初始化计算机牌数
  • int temp,want,i,pci,cci; //申请辅助变量
  • int min=13,whofirst=0;
  • start(rc); //初始化底牌
  • cout<<"您和计算机各抽5张牌决定谁先出:"<<endl;
  • cout<<"您抽到的牌是";
  • for(i=0;i<5;i++) //开始的5张牌
  • {
  • temp=rand()%rcn;
  • pc[i]=rc[temp];
  • pc[i].shownumber();
  • pcn++;
  • for(int k=temp;k<rcn;k++)
  • rc[k]=rc[k+1];
  • rcn--;
  • }
  • cout<<endl;
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • for(i=0;i<5;i++)
  • {
  • temp=rand()%rcn;
  • cc[i]=rc[temp];
  • ccn++;
  • for(int k=temp;k<rcn;k++)
  • rc[k]=rc[k+1];
  • rcn--;
  • }
  • for(i=0;i<5;i++) //寻找最小的牌
  • {
  • if(min>cc[i].getnumber())
  • {
  • min=cc[i].getnumber();
  • cci=i;
  • }
  • }
  • cout<<"计算机最小的牌点数"<<min<<endl;
  • for(i=0;i<5;i++)
  • {
  • if(min>pc[i].getnumber())
  • {
  • min=pc[i].getnumber();
  • pci=i;
  • whofirst=1; //最小牌在玩家手中,则把whofirst标志置1
  • }
  • }
  • want=min;
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • if(whofirst) //最小牌在玩家手中
  • {
  • cout<<"您拥有最小的牌:"<<endl;
  • cout<<"所以您先出一张:";
  • pc[pci].shownumber();
  • cout<<endl;
  • rc[rcn]=pc[pci];
  • rcn++;
  • for(i=pci;i<pcn;i++)
  • pc[i]=pc[i+1];
  • pcn--;
  • AIplay(pc,cc,rc,pcn,ccn,rcn,want);
  • }
  • else //最小牌在计算机手中
  • {
  • cout<<"计算机拥有最小的牌:"<<endl;
  • cout<<"所以计算机先出一张:";
  • cc[cci].shownumber();
  • cout<<endl;
  • rc[rcn]=cc[cci];
  • rcn++;
  • for(i=cci;i<ccn;i++)
  • cc[i]=cc[i+1];
  • ccn--;
  • playerplay(pc,cc,rc,pcn,ccn,rcn,want);
  • }
  • }
  • //================================================================================================
  • void AIplay(Card *pc,Card *cc,Card *rc,int& pcn,int& ccn,int& rcn,int want)
  • //对抗时计算机算法
  • {
  • int p,q,temp;
  • cout<<"电脑现有"<<ccn<<"张牌:"<<endl;
  • //电脑优先考虑出两张牌算法
  • for(int i=0;i<ccn;i++) //循环访问计算机所有的牌
  • {
  • for(int j=i;j<ccn;j++)
  • {
  • p=cc[i].getnumber();
  • q=cc[j].getnumber();
  • if(p*q==want||(p%q==0&&p/q==want)||(q%p==0&&q/p==want)||p+q==want||p-q==want||q-p==want)
  • { //满足条件
  • temp=rand()%2; //电脑随机选一张让玩家凑
  • temp?want=p:want=q;
  • cout<<"电脑出2张牌:";
  • cc[i].shownumber();
  • cc[j].shownumber();
  • cout<<endl;
  • rc[rcn]=cc[i]; //插回底牌
  • rc[rcn+1]=cc[j];
  • rcn+=2;
  • for(int k=j;k<ccn;k++) //删除第2张
  • cc[k]=cc[k+1];
  • ccn--;
  • for(int m=i;m<ccn;m++) //删除第1张
  • cc[m]=cc[m+1];
  • ccn--;
  • if(ccn) //没出净
  • playerplay(pc,cc,rc,pcn,ccn,rcn,want);//进入玩家部分
  • else
  • {
  • cout<<"电脑牌出完了,你输了!"<<endl;
  • upminu();
  • }
  • }
  • }
  • //出一张牌算法
  • for(int n=0;n<ccn;n++)
  • {
  • p=cc[n].getnumber();
  • if(p==want)
  • {
  • want=p;
  • cout<<"电脑出1张牌:";
  • cc[n].shownumber();
  • cout<<endl;
  • rc[rcn]=cc[n]; //插回底牌
  • rcn++; //底牌数+1
  • for(int o=n;o<ccn;o++) //从电脑牌里删掉这张牌
  • cc[o]=cc[o+1];
  • ccn--; //电脑牌数-1
  • if(ccn) //没出净
  • playerplay(pc,cc,rc,pcn,ccn,rcn,want);//进入玩家部分
  • else
  • {
  • cout<<"电脑牌出完了,你输了!"<<endl;
  • upminu();
  • }
  • }
  • cout<<"电脑抓牌,"; //抓牌算法
  • if(rcn) //有底牌
  • {
  • int temp=rand()%rcn; //产生一个小于底牌数的随机数
  • cc[ccn]=rc[temp]; //赋给电脑牌
  • ccn++; //电脑牌数+1
  • for(int r=temp;r<rcn;r++)
  • rc[r]=rc[r+1]; //从底牌里删掉这张牌
  • rcn--; //底牌数-1
  • AIplay(pc,cc,rc,pcn,ccn,rcn,want); //递归调用
  • }
  • }
  • }
  • }
  • //================================================================================================
  • void playerplay(Card *pc,Card *cc,Card *rc,int& pcn,int& ccn,int& rcn,int want)
  • //对抗时玩家算法
  • {
  • int choice,p,q,i,j;
  • cout<<"你需要凑的牌的点数 "<<want<<endl;
  • cout<<"你现有"<<pcn<<"张牌:"<<endl;
  • for(i=0;i<pcn;i++)
  • {
  • pc[i].shownumber();
  • if((i+1)%5==0) //显示5张牌换一次行
  • cout<<endl;
  • }
  • cout<<endl;
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • cout<<" (1) 出1张牌。"<<endl;
  • cout<<" (2) 出2张牌。"<<endl;
  • cout<<" (3) 抓牌。"<<endl;
  • cout<<" (4) 玩法提示。"<<endl;
  • cout<<" (5) 回主界面。"<<endl;
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • while(1) //接受用户输入
  • {
  • cout<<"请选择1|2|3|4|5:";
  • cin>>choice;
  • if(choice>=1&&choice<=5) //遇到合法输入时跳出循环
  • break;
  • }
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • if(choice==3)
  • {
  • if(rcn) //有底牌
  • {
  • int temp=rand()%rcn; //产生一个小于底牌数的随机数
  • pc[pcn]=rc[temp]; //赋给玩家牌
  • pcn++; //玩家牌数加1
  • for(int r=temp;r<rcn;r++)
  • rc[r]=rc[r+1]; //从底牌里删掉这张牌
  • rcn--; //底牌数减1
  • }
  • else
  • cout<<"没底牌了。"<<endl;
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • playerplay(pc,cc,rc,pcn,ccn,rcn,want); //递归调用
  • }
  • else if(choice==1) //出一张牌算法
  • {
  • int flag=1; //定义监视哨
  • cout<<"请输入出第几张牌:";
  • cin>>i;
  • i--;
  • p=pc[i].getnumber();
  • if(p==want) //满足条件
  • {
  • flag=0;
  • cout<<"你出了一张牌:";
  • pc[i].shownumber();
  • cout<<endl;
  • rc[rcn]=pc[i]; //将这张牌插回底牌中
  • rcn++; //底牌数+1
  • for(int o=i;o<pcn;o++) //从玩家牌里删掉这张牌
  • pc[o]=pc[o+1];
  • pcn--; //玩家牌数-1
  • if(pcn) //没出净
  • AIplay(pc,cc,rc,pcn,ccn,rcn,want);//进入电脑部分
  • else
  • {
  • cout<<"你牌出完了,你赢了!"<<endl;
  • upminu();
  • }
  • }
  • if(flag) //监视哨没有被改值
  • cout<<"出牌有误!"<<endl;
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • playerplay(pc,cc,rc,pcn,ccn,rcn,want);
  • }
  • else if(choice==2) //出两张牌算法
  • {
  • if(pcn>=2) //手中有2张以上的牌
  • {
  • int flag=1;
  • cout<<"请分别输入2张牌的次序:";
  • cin>>i>>j;
  • i--;
  • j--;
  • if(i!=j)
  • {
  • p=pc[i].getnumber();
  • q=pc[j].getnumber();
  • if(p*q==want||(p%q==0&&p/q==want)||(q%p==0&&q/p==want)||p+q==want||p-q==want||q-p==want)
  • { //满足条件
  • flag=0;
  • cout<<"你出2张牌:";
  • pc[i].shownumber();
  • pc[j].shownumber();
  • cout<<endl;
  • rc[rcn]=pc[i]; //插回底牌
  • rc[rcn+1]=pc[j];
  • rcn+=2;
  • if(i>j) //如果不是按增序输入则交换牌次序
  • {
  • i=j;
  • j=i;
  • }
  • for(int k=j;k<pcn;k++) //删除第2张
  • pc[k]=pc[k+1];
  • pcn--;
  • for(int m=i;m<pcn;m++) //删除第1张
  • pc[m]=pc[m+1];
  • pcn--;
  • if(pcn) //没出净
  • {
  • while(1) //两张选一张让电脑凑
  • {
  • cout<<"你选哪张牌让电脑凑?"<<endl;
  • cout<<"选第一张请按1,选第二张请按2:";
  • cin>>choice;
  • if(choice==1)
  • {
  • want=p;
  • break;
  • }
  • else if(choice==2)
  • {
  • want=q;
  • break;
  • }
  • else
  • cout<<"输入有误"<<endl;
  • }
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • AIplay(pc,cc,rc,pcn,ccn,rcn,want);//进入电脑部分
  • }
  • else
  • {
  • cout<<"你牌出完了,你赢了!"<<endl;
  • upminu();
  • }
  • }
  • }
  • if(flag)
  • cout<<"出牌有误!"<<endl;
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • playerplay(pc,cc,rc,pcn,ccn,rcn,want);
  • }
  • }
  • else if(choice==4) //玩法提示
  • {
  • cout<<" 首先玩家和计算机各分的5张牌,然后比较玩家和"<<endl;
  • cout<<"计算机手中最小的牌,谁的小谁就打出这张最小的牌,"<<endl;
  • cout<<"另一方认为自己的牌凑不出这张牌的点数则开始抓牌,"<<endl;
  • cout<<"直道手中的牌的点数恰与第一个人出的牌相等,或者"<<endl;
  • cout<<"用手中有的任意两张牌,通过加减乘除四则运算可以凑"<<endl;
  • cout<<"出第一个人出的牌相等的点数,则停止抓牌并将这一张"<<endl;
  • cout<<"或两张出出去,然后要求对方以同样的规则,开始下一"<<endl;
  • cout<<"轮,直道某一方手中的全部牌出完,游戏结束。"<<endl;
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • playerplay(pc,cc,rc,pcn,ccn,rcn,want);
  • }
  • else
  • welcome();
  • }
  • //================================================================================================
  • void upminu()
  • //返回上一级菜单
  • {
  • cout<<setfill('=')<<setw(47)<<"="<<endl;
  • int e;
  • cout<<" (1) 回主界面"<<endl;
  • cout<<" (2) 退出游戏"<<endl;
  • do
  • {
  • cout<<""<<setfill('=')<<setw(47)<<"="<<endl;
  • cout<<"请选择1|2:";
  • cin>>e;
  • if(e==1)
  • {
  • cout<<""<<setfill('=')<<setw(47)<<"="<<endl;
  • welcome();
  • }
  • else if(e==2)
  • {
  • cout<<""<<setfill('=')<<setw(47)<<"="<<endl;
  • exit();
  • }
  • }while(e!=1||e!=2);
  • }
  • //================================================================================================
  • void gameinfo()
  • //游戏简介
  • {
  • cout<<" 扑克牌加减乘除游戏,是一种集技巧性和运气性"<<endl;
  • cout<<"于一体的扑克牌游戏。"<<endl;
  • cout<<" 现实中可以单人玩,也可以不定人数对抗,用若干"<<endl;
  • cout<<"副扑克牌去掉王即可游戏,推荐用一副牌双人对抗,乐"<<endl;
  • cout<<"趣无穷。本程序利用Card类数组模拟扑克牌,设定了单"<<endl;
  • cout<<"人练习模式和人机对抗模式,如有不懂操作请参考具体"<<endl;
  • cout<<"提示。"<<endl;
  • cout<<" 电脑的计算能力使得它肯定会以最优的策略出牌,"<<endl;
  • cout<<"就让我们看看你的运气如何吧!"<<endl;
  • upminu();
  • }
  • //================================================================================================
  • void maker()
  • //制作者
  • {
  • cout<<"制作组均来自西北大学软件学院2007级4班:"<<endl;
  • cout<<" 总策划: 谢峥丹"<<endl;
  • cout<<" 源代码编者: 曲振波"<<endl;
  • cout<<" 技术支持: 刘伦椿"<<endl;
  • cout<<"特别鸣谢:"<<endl;
  • cout<<" 王建忠,在游戏设计阶段试玩并提出了宝贵的意见。"<<endl;
  • upminu();
  • }
  • //================================================================================================
  • void exit()
  • //退出游戏
  • {
  • char e;
  • cout<<"确认退出吗?(Y/N)";
  • do
  • {
  • cin>>e;
  • if(e=='y'||e=='Y')
  • break;
  • else if(e=='N'||e=='n')
  • welcome();
  • }while(e!='y'||e!='Y'||e!='N'||e!='n');
  • cout<<"再见!"<<endl;
  • cout<<"按回车键退出..."<<endl;
  • getchar();
  • getchar();
  • exit(0);
  • }

 

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门