C++游戏.docx
- 文档编号:9766253
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:24
- 大小:19.20KB
C++游戏.docx
《C++游戏.docx》由会员分享,可在线阅读,更多相关《C++游戏.docx(24页珍藏版)》请在冰豆网上搜索。
C++游戏
voidcreat_Poker(Poker*name);
voidset_Poker(Poker*p);
voidre_play(Poker*name);
charde_cin();
voidoutput_information(Player&p1,constchar*pp);
boolinput_information(Player&p,constchar*pp,stringmima);
//boolnew_output_information(Player&p,constchar*pp);
intmain()
{
creat_Poker(&poke[0]);//返回指针,,创建扑克
set_Poker(&poke[0]);//返回指针,洗牌
//for(intjp=0;jp //{ //poke[jp].show(); //}//////////////////////////////用于展示一幅完整的扑克 chardd; intii=0;//////////////专用的循环变量 charnew_name[32]; stringname1; stringmima1="aa"; stringmima2="bb"; fstreamin_out; vector com_playercompture_one; Playerperson_one; cout<<"新用户? (Y/N)"< dd=de_cin(); if(dd=='y'||dd=='Y') { for(;;) { cout<<"创建新角色输入用户名,密码"< cin>>name1; //intii=0; cout< for(intii=0;ii { new_name[ii]=name1[ii]; } cout<<"ii"< new_name[ii]='.'; new_name[ii+1]='t'; new_name[ii+2]='x'; new_name[ii+3]='t'; new_name[ii+4]='\0'; cout< constchar*const_person=const_cast if(! access(const_person,0)) { cout<<"存在性检测结果: "< cout<<"对不起,该用户名已存在,请重新注册"< ! ! ! ! ! ! ! ! continue; }///////c存在返回0不存在返回一u else { cout<<"恭喜您,该用户可用"< //break; } //cout< //if(! new_output_information(person_one,const_person)) //break; //else //continue; cout<<"请输入密码"< for(;mima1! =mima2;) { cout<<"输入密码"< cin>>mima1; cout<<"确认密码"< cin>>mima2; if(mima1! =mima2) cout<<"不匹配,重新输入"< } output_information(person_one,const_person); break; } person_one.set_new(name1,mima1); } else { for(;;) { cout<<"输入用户名"< cin>>name1; intii=0; for(ii=0;ii { new_name[ii]=name1[ii]; } //new_name[ii]='.'; //new_name[ii+1]='t'; //new_name[ii+2]='x'; //new_name[ii+3]='t'; new_name[ii]='\0'; cout<<"输入密码"< cin>>mima1; constchar*const_person1=const_cast boolde_new=input_information(person_one,const_person1,mima1); if(de_new) { cout<<"用户信息匹配成功开始游戏"< break; } else cout<<"对不起,用户名或密码错误重新输入"< } }/////////////////////////////////////////////////////游戏开始阶段玩家信息初始化工做////////////////////////////////////// do{ cout<<"游戏开始"< compture_one.cPoker_push(); re_play(&poke[0]); compture_one.cPoker_push(); re_play(&poke[0]);////开始阶段每人两张牌 person_one.Poker_push(); re_play(&poke[0]); person_one.Poker_push(); re_play(&poke[0]); //////////////////////////////////////游戏开始阶段没人两张牌? ///////////////////////////////////////////////////////// while(compture_one.cget_sum()<15) { compture_one.cPoker_push(); re_play(&poke[0]); //getchar(); } compture_one.cshow_first(); for(;;) { person_one.show_Poker(); charde_player; cout<<"是否要牌(Y/N)"< de_player=de_cin(); if(de_player=='Y'||de_player=='y') { person_one.Poker_push(); re_play(&poke[0]); } else break; } ////////////////发牌阶段、//////////////////////// cout<<"电脑"; compture_one.cshow_Poker(); cout< cout< cout<<"玩家"; person_one.show_Poker(); cout< cout< /////////////////k开始判断胜负、、、、、、、、、、、、、、 if(person_one.get_sum_int()>21&&compture_one.cget_sum()<22) { cout<<"电脑胜利"< } elseif(person_one.get_sum_int()<22&&compture_one.cget_sum()>21) { cout<<"玩家胜利"< person_one.Player_win(); } elseif(person_one.get_sum_int()>21&&compture_one.cget_sum()>21) { cout<<"平分秋色"< } else { if(person_one.get_sum_int()>compture_one.cget_sum()) { cout<<"玩家胜利"< person_one.Player_win(); } elseif(person_one.get_sum_int()==compture_one.cget_sum()) { cout<<"平分秋色"< } else cout<<"玩家失败"< } //////////////胜负已经定更新用户信息////////////// person_one.rename_change(); output_information(person_one,new_name); cout<<"信息成功更新,存储信息已为最新"< compture_one.delete_all(); person_one.delete_all(); person_one.show_in(); //getchar(); cout<<"是否继续? (Y/N)"< dd=de_cin(); if(dd=='y'||dd=='Y') { cout< cout< cout<<"新的回合"< cout< cout< } }while(dd=='y'||dd=='Y'); cout<<"谢谢游戏,再见"< return0; } /////////////////////////////////////////////// ///////////洗牌 voidset_Poker(Poker*p) { //cout<<"洗牌"< for(intkp=0;kp<52;kp++) srand(time(0)); intt=0; Pokertemp; for(intip=0;ip<52;ip++) { t=rand()%52; temp=p[ip]; p[ip]=p[t]; p[t]=temp; } Poker_num=0;//////重置当前牌数 } //////初始化扑克 voidcreat_Poker(Poker*name) { for(intj=0;j<52;j++) { name[j].hua=j/13+3; name[j].num=j%13+49;//转换成为字符型 //if(name[]) switch(name[j].num) { case'1': name[j].num='A'; break; case': ': name[j].num='1'; break; case';': name[j].num='J'; break; case'<': name[j].num='Q'; break; case'=': name[j].num='K'; break; } } } voidre_play(Poker*name) { // cout<<52-Poker_num<<"当前扑克张数"< if(Poker_num>51) { set_Poker(name); } }///////////////扑克用完之后的处理,每次发牌都会检验扑克是否用完 charde_cin() { charde; do{ cin>>de; if(! (de=='n'||de=='N'||de=='Y'||de=='y')) cout<<"输入有误重新输入"< }while(! (de=='n'||de=='N'||de=='Y'||de=='y')); returnde; } /////////////////输入用户信息。 来源: 文件/////////// boolinput_information(Player&p,constchar*pp,stringmima) { //cout< fstreaminput; booldecide; input.open(pp,ios: : in); //cout<<"成功性检测吧读取"< if(! input.good())/////////此时打开成功返回1 { cout<<"文件打开失败,退出程序"< exit(-1);/////////////////////文件打开失败退出程序 } input>>p.name>>p.mima>>p.score>>p.rename; if(p.mima==mima) { decide=1; //break; } else { decide=0; } input.close(); returndecide;////返回真值说明用户名匹配成功 } ///////////////////写入用户信息,目标用户文件/////////// voidoutput_information(Player&p,constchar*pp) { //Playerp; //cout< fstreamin_out; in_out.open(pp,ios: : out); //cout<<"成功性检测吧xiechu"< if(! in_out.good())/////////此时打开成功返回1 { cout<<"文件打开失败,退出程序"< exit(-1);/////////////////////文件打开失败退出程序 } else { in_out< cout<<"信息保存成功"< } in_out.close(); } ///////////新用户用户名合法性检测 // //////////关与游戏升级,计划在2.0版本加入密码保护功能,3,0版本争取写出图形界面啊、////////////// 头文件三个 //Poker.h: interfaceforthePokerclass. // ////////////////////////////////////////////////////////////////////// #if! defined(AFX_POKER_H__6288609E_E8DA_4234_982B_1321FCC9FC06__INCLUDED_) #defineAFX_POKER_H__6288609E_E8DA_4234_982B_1321FCC9FC06__INCLUDED_ #if_MSC_VER>1000 #pragmaonce #endif//_MSC_VER>1000 //#include #include classPoker { charnum; charhua; public: Poker(charnum=0,charhua=0); voidshow(); intgetnum(); friendvoidcreat_Poker(Poker*name); virtual~Poker(); }; #endif//! defined(AFX_POKER_H__6288609E_E8DA_4234_982B_1321FCC9FC06__INCLUDED_) //Player.h: interfaceforthePlayerclass. // ////////////////////////////////////////////////////////////////////// #if! defined(AFX_PLAYER_H__26240C16_0DED_48BE_AE3E_E4FACBC7B7E9__INCLUDED_) #defineAFX_PLAYER_H__26240C16_0DED_48BE_AE3E_E4FACBC7B7E9__INCLUDED_ #if_MSC_VER>1000 #pragmaonce #endif//_MSC_VER>1000 #include #include"Poker.h" #include #include usingnamespacestd; usingstd: : string; classPlayer { stringname; stringmima; stringrename; unsignedintscore; vector public: Player(stringname="",stringmima="",intscore=0,stringrename=""); //Player(Player&a); voidshow_in();//输出信息 voidshow_Poker();//输出扑克 voidrename_change();//适时改变称号 intget_sum_int();//得到点数之和 voidset_new(stringname="0",stringmima="0",intscore=0);//设置新成员 voidPoker_push();//拿牌 voidPlayer_win(); friendboolinput_information(Player&p,constchar*pp,stringmima); friendvoidoutput_information(Player&p,constchar*pp); friendboolnew_output_information(Player&p,constchar*pp); voiddelete_all(); virtual~Player(); }; #endif//! defined(AFX_PLAYER_H__26240C16_0DED_48BE_AE3E_E4FACBC7B7E9__INCLUDED_) //com_player.h: interfaceforthecom_playerclass. // ////////////////////////////////////////////////////////////////////// #if! defined(AFX_COM_PLAYER_H__AB2B96C5_874D_47A0_ADEF_8FFD6E9F9049__INCLUDED_) #defineAFX_COM_PLAYER_H__AB2B96C5_874D_47A0_ADEF_8FFD6E9F9049__INCLUDED_ #if_MSC_VER>1000 #pragmaonce #endif//_MSC_VER>1000 #include #include"Poker.h" usingnamespacestd; classcom_player { vector public: com_player(); voidcshow_Poker(); intcget_sum(); voidcPoker_push();//拿牌 voidcshow_first(); voiddelete_all(); virtual~com_player(); }; #endif//! defined(AFX_COM_PLAYER_H__AB2B96C5_874D_47A0_ADEF_8FFD6E9F9049__INCLUDED_) 原文件 //Poker.cpp: implementationofthePokerclass. // ////////////////////////////////////////////////////////////////////// #include"Poker.h" #include usingnamespacestd; ////////////////////////////////////////////////////////////////////// //Construction/Destruction ////////////////////////////////////////////////////////////////////// Poker: : Poker(charnum,charhua) { this->num=num; this->hua=hua; } voidPoker: : show() { cout< if(num=='1') cout<<"0"; cout<<"\t"; } intPoker: : getnum() { //charnum1=num;//////当前时刻一只可以当做一 switch(n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 游戏