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