高分跪求C++语言设计的对抗游戏完整剧情程序。
#包含“math.h”
#包含" stdlib.h "
#包括“ctime”
使用命名空间std
int标志;
CCard类
{ int nCard1,nCard2//两张卡
静态int nLoop//打出的牌数,给出游戏结束时打出的总牌数。
int nScore//总分
int nWin,nLose
静态nDraw//赢、输、平的次数
int nBet//下注
公共:
int Bet
CCard();//构造函数
int SetCard();//打两张牌
void Show();//显示卡点数
int add bet(int);//增加赌注,失败则返回0。
无效的朋友比较(CCard & amp,CCard & amp);//Friend函数,比较卡点大小并显示结果。
无效的朋友显示结果(CCard & amp,CCard & amp);//友函数,输出输赢结果和最终积分。
};
int CCard::nDraw = 0;
int CCard::n loop = 0;
CCard::CCard(){ ns core = 20;
Bet = nScore
nWin = 0;
nLose = 0;
nBet = 0;
}
int CCard::set card(){ for(int I = 0;我& lt=100000000;i++);
srand((无符号)time(0));
ncard 1 =(rand()% 13+1);
ncard 2 =(rand()% 13+1);
返回ncard 1;}
void CCard::Show()
{
if(ncard 1 & gt;1。& ampncard 1 & lt;= 10)cout & lt;& ltncard 1 & lt;& lt" ";
else开关(nCard1){
案例1:{ ncard 1 = 1;cout & lt& lt" A " & lt& lt" ";打破;}
案例11:{ cout & lt;& lt" J " & lt& lt" ";打破;}
案例12:{ cout & lt;& lt“Q”& lt;& lt" ";打破;}
案例13:{ cout & lt;& lt“K”& lt;& lt" ";}
}
if(ncard 2 & gt;1。& ampnCard2 & lt=10)
cout & lt& ltnCard2 & lt& lt" ";
else开关(nCard2){
案例1:{ ncard 2 = 1;cout & lt& lt" A " & lt& lt" ";打破;}
案例11:{ cout & lt;& lt" J " & lt& lt" ";打破;}
案例12:{ cout & lt;& lt“Q”& lt;& lt" ";打破;}
案例13:{ cout & lt;& lt“K”& lt;& lt" ";} }
cout & lt& ltendl
} int CCard::add bet(int a){ nBet = a;
if(nBet & gt;nScore | | nBet & lt1){ return 0;}
返回1;
}
无效比较(CCard & amp用户,CCard & amp计算机){
if((user . ncard 1 = = user . ncard 2)& amp;& amp(computer.nCard1!=computer.nCard2))
{
user . ns core+= computer . nbet;computer . ns core-= computer . nbet;
user . nloop++;
computer . nloop++;
user . nwin++;
computer . nlose++;
用户。bet = user . ns core;
电脑。Bet = computer.nScore
if(computer . ns core & lt;=0)
{ShowResult(用户,计算机);返回;} cout & lt& lt“玩家赢了这场游戏,请继续努力”< & ltendl
}
else if((user.nCard1!= user . ncard 2)& amp;& amp(computer . ncard 1 = = computer . ncard 2))
{
computer . ns core+= user . nbet;
user . ns core-= user . nbet;
user . nloop++;
computer . nloop++;
computer . nwin++;
user . nlose++;
用户。bet = user . ns core;
电脑。Bet = computer.nScore
if(user . ns core & lt;=0)
{ShowResult(用户,计算机);返回;}
cout & lt& lt“可惜电脑赢了这场比赛~”& lt;& ltendl
}
其他
{
if((user . ncard 1+user . ncard 2)>;(computer . ncard 1+computer . ncard 2))
{ user . ns core+= computer . nbet;computer . ns core-= computer . nbet;
user . nloop++;
computer . nloop++;
user . nwin++;
computer . nlose++;
用户。bet = user . ns core;
电脑。Bet = computer.nScore
if(computer . ns core & lt;=0)
{ShowResult(用户,计算机);返回;} cout & lt& lt“玩家赢了这场游戏,请继续努力”< & ltendl
}
else if((user . ncard 1+user . ncard 2)& lt;(computer . ncard 1+computer . ncard 2)){
computer . ns core+= user . nbet;
user . ns core-= user . nbet;
user . nloop++;
computer . nloop++;
computer . nwin++;
user . nlose++;
用户。bet = user . ns core;
电脑。Bet = computer.nScore
if(user . ns core & lt;=0)
{ShowResult(用户,计算机);返回;}
cout & lt& lt“可惜电脑赢了这场比赛~”& lt;& ltendl
}
其他
{ cout & lt& lt“画”
user . nloop++;computer . ndraw++;
}
}
}
void显示结果(CCard & amp用户,CCard & amp电脑)
{
cout & lt& lt“——游戏结束!结果:-”
if(user . ns core & lt;= 0)cout & lt;& lt“电脑赢了,玩家努力!”& lt& ltendl
else cout & lt& lt“恭喜玩家赢了!”& lt& ltendl
cout & lt& lt"出牌数:" < & ltuser.nLoop & lt& ltendl
cout & lt& lt"玩家点数:"
cout & lt& lt"玩家赢的次数:"
cout & lt& lt"玩家输的次数:"
cout & lt& lt"玩家平手的次数:"
cout & lt& lt"计算机集成:"
cout & lt& lt"计算机获胜的数量:"
cout & lt& lt"计算机负时间:"
cout & lt& lt"计算机调配的数量:"
cout & lt& lt“-”& lt;& ltendl
flag = 1;
user . nloop = 0;
user . ndraw = 0;
cout & lt& lt“游戏结束,按任意键退出”< & ltendl系统(“暂停”);
}
void main()
{
选择:
flag = 0;
int start,ucard,ccard,bet,cont,sel = 1;//sel=0,玩家下注,sel=1,第一注算//牌。
char ch
CCard用户,计算机;
cout & lt& lt要开始游戏,请按1
bing in:if(flag = = 1){ system(" cls ");
转到选择;
}
CIN & gt;& gt开始;
开关(启动){
案例1:{ cout & lt;& lt“开始发牌吧,期待……”;
用户。SetCard();
ucard =用户。SetCard();
电脑。SetCard();
电脑。SetCard();
打破;
}
案例0:{退出(0);} } cout & lt& ltendl
cout & lt& lt“你的第一张牌是”
if(ucard & lt;= 10 & amp;& ampucard & gt1)cout & lt;& ltucard
否则{
交换机(ucard){
案例1:cout & lt;& lt“一”;
打破;
案例11:cout & lt;& lt“J”;
打破;
案例12:cout & lt;& lt“问”;
打破;
案例13:cout & lt;& lt“K”;
}
} cout & lt& ltendl
cout & lt& lt"是否选择下注:"
CIN & gt;& gtcont
开关(续){
案例0:{ sel = 0;
转到nextplayer}
}
cout & lt& lt“你还有”
bet:cout & lt;& lt“请下注”
CIN & gt;& gt下注;
if(bet & gt;5)
{
cout & lt& lt“请不要下注超过5,再试一次”< & ltendl
goto bet
}
如果(!(用户。打赌& amp& amp电脑。AddBet(bet)))
{
cout & lt& lt“下注超过0哟,再试一次”< & ltendl
goto bet
}
nextplayer: if(sel==0){
开关(卡){
案例14:{ bet = 5;打破;}
案例13:{ bet = 3;打破;}
案例12:{ bet = 2;打破;}
案例11:{ bet = 1;打破;}
案例10:{ bet = 4;打破;}
情况9:{ bet = 1;打破;}
情况8:{ bet = 3;打破;}
情况7:{ bet = 4;打破;}
情况6:{ bet = 5;打破;}
情况五:{ bet = 1;打破;}
情况四:{ bet = 5;打破;}
情况三:{ bet = 2;打破;}
情况二:{ bet = 3;打破;}
}
而(!(用户。打赌& amp& amp电脑。AddBet(bet)))
{ bet-;}
cout & lt& lt“电脑下注”
CIN & gt;& gtch;
开关(通道){
案例“Y”:{ }
案例“y”:{
打破;}
案例“N”:{ }
案例' n ':
cout & lt& lt“请选择1继续游戏,按0退出游戏”< & ltendl
sel = 1;
goto bingin
打破;
}
}
sel = 1;
}
cout & lt& lt“下注成功”
cout & lt& lt"请选择1继续"
cout & lt& lt“请选择0放弃”
scanf("%d ",& ampcont);
开关(续){
案例1:{
cout & lt& lt"玩家的卡是:"
用户。show();
cout & lt& lt“电脑的卡是”
电脑。show();
打破;}
案例0:{
cout & lt& lt"请选择1重新开始"
cout & lt& lt“如果不想玩,请选择0”& lt;& ltendl
goto bingin
打破;}
}
比较(用户、电脑);
cout & lt& lt"重新开始选择1 "
cout & lt& lt“如果不想玩,请选择0”& lt;& ltendl
goto bingin}