ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:19.63KB ,
资源ID:6277420      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6277420.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于C++的21点游戏.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于C++的21点游戏.docx

1、基于C+的21点游戏/*游戏名称:21点益智游戏创作团队:软日1010班游戏设计小组(之一)负责人:陈振涛时间:20110506*/#include#includePoker.h#includePlayer.h#include com_player.h#include/洗牌#include#include#include#include#include/用于文件存在性检测using namespace std;/using ios:in;/using ios:out;/using ios:app;extern int Poker_num=0;extern vectorpoke;/生命为全局变量

2、,不可初始化/extern const char *const_person;void creat_Poker(Poker * name);void set_Poker(Poker *p);void re_play(Poker * name);char de_cin();void output_information(Player &p1,const char*pp); bool input_information (Player &p,const char *pp,string mima);/bool new_output_information(Player & p,const char

3、* pp);int main() creat_Poker(&poke0);/返回指针,创建扑克 set_Poker(&poke0);/返回指针,洗牌/ for(int jp=0;jppoke.size();jp+)/ / pokejp.show();民/ /用于展示一幅完整的扑克 char dd; int ii=0;/专用的循环变量 char new_name32; string name1; string mima1=aa; string mima2=bb; fstream in_out; vectorpoke(52,0); com_player compture_one; Player p

4、erson_one; cout新用户?(Y/N)endl; dd=de_cin(); if(dd=y|dd=Y) for(;) cout创建新角色输入用户名,密码name1; /int ii=0; coutname1.length()当前长度endl; for(int ii=0;iiname1.length();ii+) new_nameii=name1ii; coutiiiiendl; new_nameii=.; new_nameii+1=t; new_nameii+2=x; new_nameii+3=t; new_nameii+4=0; coutnew_name; const char *

5、const_person=const_cast(new_name); if(!access(const_person,0) cout存在性检测结果:endl; cout对不起,该用户名已存在,请重新注册endl;/有大问题! continue; /c存在返回0不存在返回一u else cout恭喜您,该用户可用endl; /break; /coutconst_person; /if(!new_output_information(person_one,const_person) ) / break; / else / continue; cout请输入密码endl; for(;mima1!=m

6、ima2;) cout输入密码mima1; cout确认密码mima2; if(mima1!=mima2) cout不匹配,重新输入endl; output_information(person_one,const_person); break; person_one.set_new(name1,mima1); else for(;) cout输入用户名name1; int ii=0; for(ii=0;iiname1.length();ii+) new_nameii=name1ii; /new_nameii=.; /new_nameii+1=t; /new_nameii+2=x; /new_

7、nameii+3=t; new_nameii=0; cout输入密码mima1; const char* const_person1=const_cast(new_name); bool de_new=input_information(person_one,const_person1,mima1); if(de_new) cout用户信息匹配成功开始游戏endl; break; else cout对不起,用户名或密码错误重新输入endl; /游戏开始阶段玩家信息初始化工做/ do cout游戏开始endl; compture_one.cPoker_push(); re_play(&poke0

8、); compture_one.cPoker_push(); re_play(&poke0);/开始阶段每人两张牌 person_one.Poker_push(); re_play(&poke0); person_one.Poker_push(); re_play(&poke0); /游戏开始阶段没人两张牌?/ while(compture_one.cget_sum()15) compture_one.cPoker_push(); re_play(&poke0); /getchar(); compture_one.cshow_first(); for (;) person_one.show_P

9、oker(); char de_player; cout是否要牌(Y/N)endl; de_player=de_cin(); if(de_player=Y|de_player=y) person_one.Poker_push(); re_play(&poke0); else break; /发牌阶段、/ cout电脑; compture_one.cshow_Poker(); coutcompture_one.cget_sum(); coutendl; cout玩家; person_one.show_Poker(); coutperson_one.get_sum_int(); cout21&co

10、mpture_one.cget_sum()22) cout电脑胜利endl; else if(person_one.get_sum_int()21) cout玩家胜利21&compture_one.cget_sum()21) cout平分秋色compture_one.cget_sum() cout玩家胜利endl; person_one.Player_win(); else if (person_one.get_sum_int()=compture_one.cget_sum() cout平分秋色endl; else cout玩家失败endl; /胜负已经定更新用户信息/ person_one.

11、rename_change(); output_information(person_one,new_name); cout信息成功更新,存储信息已为最新endl; compture_one.delete_all(); person_one.delete_all(); person_one.show_in(); /getchar(); cout是否继续?(Y/N)endl; dd=de_cin(); if(dd=y|dd=Y) coutendl; coutendl; cout新的回合endl; coutendl; coutendl; while(dd=y|dd=Y); cout谢谢游戏,再见e

12、ndl; return 0;/洗牌void set_Poker(Poker *p) /cout洗牌endl; for(int kp=0;kp52;kp+) srand(time(0); int t=0; Poker temp; for(int ip=0;ip52;ip+) t=rand()%52; temp=pip; pip=pt; pt=temp; Poker_num=0;/重置当前牌数/初始化扑克void creat_Poker(Poker * name) for(int j=0;j52;j+) namej.hua=j/13+3; namej.num=j%13+49;/转换成为字符型 /i

13、f(name) switch(namej.num) case 1:namej.num=A; break; case :namej.num=1; break; case ;:namej.num=J; break; case:namej.num=Q; break; case =:namej.num=K; break; void re_play(Poker * name) / cout52-Poker_num当前扑克张数51) set_Poker(name); /扑克用完之后的处理,每次发牌都会检验扑克是否用完char de_cin() char de; do cinde; if(!(de=n|de

14、=N|de=Y|de=y) cout输入有误重新输入endl; while(!(de=n|de=N|de=Y|de=y); return de;/输入用户信息。来源:文件/bool input_information(Player &p,const char*pp,string mima ) /coutpp当前用户endl; fstream input; bool decide; input.open(pp,ios:in); /cout成功性检测吧读取input.good()endl; if(!input.good()/此时打开成功返回1 cout文件打开失败,退出程序p.namep.mima

15、p.scorep.rename; if(p.mima=mima) decide=1; /break; else decide=0; input.close(); return decide;/返回真值说明用户名匹配成功/写入用户信息,目标用户文件/void output_information(Player & p,const char * pp) /Player p;/ coutpp当前用户endl; fstream in_out; in_out.open(pp,ios:out ); /cout成功性检测吧xiechu in_out.good()endl; if(!in_out.good()

16、/此时打开成功返回1 cout文件打开失败,退出程序endl; exit(-1);/文件打开失败退出程序 else in_outp.name p.mima p.score p.renameendl; cout信息保存成功 1000#pragma once#endif / _MSC_VER 1000/#include#includeclass Poker char num; char hua;public: Poker(char num=0,char hua=0); void show(); int getnum(); friend void creat_Poker(Poker * name);

17、 virtual Poker();#endif / !defined(AFX_POKER_H_6288609E_E8DA_4234_982B_1321FCC9FC06_INCLUDED_)/ Player.h: interface for the Player class./#if !defined(AFX_PLAYER_H_26240C16_0DED_48BE_AE3E_E4FACBC7B7E9_INCLUDED_)#define AFX_PLAYER_H_26240C16_0DED_48BE_AE3E_E4FACBC7B7E9_INCLUDED_#if _MSC_VER 1000#prag

18、ma once#endif / _MSC_VER 1000#include#includePoker.h#include#includeusing namespace std;using std:string;class Player string name; string mima; string rename; unsigned int score; vectorhand_Poker;public: Player(string name= ,string mima= ,int score=0,string rename= );/ Player(Player & a ); void show

19、_in();/输出信息 void show_Poker();/输出扑克 void rename_change();/适时改变称号 int get_sum_int();/得到点数之和 void set_new(string name=0,string mima=0,int score=0);/设置新成员 void Poker_push();/拿牌 void Player_win(); friend bool input_information (Player &p,const char *pp,string mima); friend void output_information(Player

20、 &p,const char*pp); friend bool new_output_information(Player & p,const char * pp); void delete_all(); virtual Player();#endif / !defined(AFX_PLAYER_H_26240C16_0DED_48BE_AE3E_E4FACBC7B7E9_INCLUDED_)/ com_player.h: interface for the com_player class./#if !defined(AFX_COM_PLAYER_H_AB2B96C5_874D_47A0_A

21、DEF_8FFD6E9F9049_INCLUDED_)#define AFX_COM_PLAYER_H_AB2B96C5_874D_47A0_ADEF_8FFD6E9F9049_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000#include#includePoker.husing namespace std;class com_player vectorchand_Poker;public: com_player(); void cshow_Poker(); int cget_sum(); void cPoker_push();/拿牌 void cshow_first(); void delete_all(); virtual com_player();#endif / !defined(AFX_COM_PLAYER_H_AB2B96C5_874D_47A0_ADEF_8FFD6E9F9049_INCLUDED_)原文件/ Poker.cpp: implementation of the Poker class./

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1