收藏 分销(赏)

扑克牌游戏代码.doc

上传人:pc****0 文档编号:7148067 上传时间:2024-12-27 格式:DOC 页数:5 大小:29KB 下载积分:10 金币
下载 相关 举报
扑克牌游戏代码.doc_第1页
第1页 / 共5页
扑克牌游戏代码.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
include<iostream> #include<string> #include<time.h> using namespace std; namespace variable { int used; static int i; } namespace array { int used[27]={0}; } /*自定义函数部分*/ void drawline(int n)//画线函数 { if(n==1) cout<<"----------------------------"; else cout<<"-------------------------------------------------------------------------------"; } //打印版权信息~~嘿嘿~~~~~自己写的程序~~~标个版权~~ void printcopy(){ int short_line(1); drawline(short_line); cout<<"Copyright(c) SehDan.Lee"; drawline(short_line); cout<<endl; } //函数:为名为poker的string类型数组赋初值,作用:生成一副扑克牌 void push_poker(string *str,int len) { string list[15]; for(int i=3;i<18;i++) switch(i) { case 10:list[i-3]="10";break; case 11:list[i-3]='J';break; case 12:list[i-3]='Q';break; case 13:list[i-3]='K';break; case 14:list[i-3]='A';break; case 15:list[i-3]='2';break; case 16:list[i-3]="KING2";break; case 17:list[i-3]="KING1";break; default:list[i-3]=i+48; } string type[4]={"a","b","c","d"}; i=0; for(int j=0;j<13;j++) { for(int k=0;k<4;k++) { *(str+i)=type[k]+"-"+list[j]; i++; } } for(i=0;i<2;i++) *(str+len+i-2)=list[i+13]; } //函数:检测生成的扑克牌是否已被使用 int chk_used(int *p,int i) { for(int j=0;j<27;j++) { if(*(p+j)==i) { return 1; break; } } return 0; } //函数:标记已使用的扑克牌 void used(int *p,int i) { *(p+variable::i)=i; variable::i++; } //数组置零 void set_int_array(int *p,int len) { for(int i=0;i<len;i++) *(p+i)=0; } //抽取扑克 void set_poker(string *str,string *p_poker,int n) { for(int i=0;i<n;i++)//随机抽取n张牌 { srand((unsigned)time(NULL));//以系统时间为种子,产生不同的随机值 variable::used=rand()%54; while(chk_used(array::used,variable::used)==1){variable::used=rand()%54;}//确保产生不重复的随机值 used(array::used,variable::used);//标记产生的随机值,确保下次不再出现 *(p_poker+i)=*(str+variable::used); } variable::i=0; set_int_array(array::used,27); } //出题函数 void print_area(string *str,int times,int row,int row_2,int *r) { int p_row,i,n_list[27]={0}; for(i=0;i<27;i++) n_list[i]=i; if(times!=1) { //接下来处理第一次收集的row信息 int t; for(i=0;i<3;i++) { t=n_list[i]; n_list[i]=n_list[(row-1)*9+i]; n_list[(row-1)*9+i]=t; } for(i=0;i<3;i++) { t=n_list[i+12]; n_list[i+12]=n_list[(row-1)*9+i+3]; n_list[(row-1)*9+i+3]=t; } for(i=0;i<3;i++) { t=n_list[i+24]; n_list[i+24]=n_list[(row-1)*9+i+6]; n_list[(row-1)*9+i+6]=t; } //第二次收集到的row信息(row_2) if(times==3) { for(i=0;i<3;i++) { t=n_list[(row_2-1)*12+i]; n_list[(row_2-1)*12+i]=n_list[i*9]; n_list[i*9]=t; } for(i=0;i<27;i++) *(r+i)=n_list[i]; } } for(i=0;i<27;i++) { if(i%9==0) cout<<endl<<"Line "<<i/9+1<<":"; cout.width(8); cout<<*(str+n_list[i]); } cout<<endl; } /*主函数*/ void main() { int again=1; int times,row,row_2,row_last,r[27],long_line=0; string poker[54],p_poker[27]; push_poker(poker,54); while(again) { times=1,row=0,row_2=0,row_last=0; printcopy(); set_poker(poker,p_poker,27); while(times!=4) { drawline(long_line); print_area(p_poker,times,row,row_2,r); drawline(long_line); cout<<endl; if(!row) cout<<"Remember a card,and tell me what line it reside in(1/2/3):"; else cout<<"What line the card you remembered reside in now(1/2/3):"; if(!row) cin>>row; else if(!row_2) cin>>row_2; times++; } int final; cin>>final; drawline(long_line); cout<<"\nYour remembered card is: "<<p_poker[r[(final-1)*9]]<<endl; cout<<"Donot believe it? Try again?(1 for yes,0 for no)"; cin>>again; cout<<"\n\n\n"; if(again!=1&&again!=0) { cout<<"error!"; break; } } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服