c++打怪小游戏

#include <iostream> 

using namespace std; 

double shengmingli=2000;//定义主角初始生命力 

int gongjili=150;//定义主角初始攻击力 

int fangyuli=200;//定义主角初始防御力 

int money=20;//定义主角初始金钱数量 

bool guoguan;//定义是否通关判定 

void wuqidian();//定义武器店函数 

void yaodian();//定义药店函数 

void guaiwu1();//定义小怪物函数 

void guaiwu2();//定义大怪物函数 

int main() 



cout<<"欢迎你开始玩打怪物小游戏!\n"; 

cout<<"小镇\n"; 

cout<<"一个1000年的小镇。周围有一条河,有一片树林,很多房子和很多人。\n有一家药店"<<endl; 

cout<<"和一家武器店。\n"; 

int xiaozhen;//定义选择项目 

cout<<"1.去武器店"<<endl; 

cout<<"2.去药品店"<<endl; 

cout<<"3.去打小怪物"<<endl; 

cout<<"4.去打大怪物"<<endl; 

cout<<"5.退出游戏"<<endl; 

cout<<"6.显示你的状态"<<endl; 

cin>>xiaozhen; 

while(xiaozhen!=5)//输入5时退出游戏 



if(shengmingli<=0)//主角生命力小于等于0时游戏结束 



cout<<"你死啦!"<<endl; 

break; 



if(guoguan) 



cout<<"恭喜通关!"<<endl; 

break; 



if(xiaozhen==6)//输入6可检测自己的状态 



cout<<"你的生命力:"<<shengmingli<<endl; 

cout<<"你的攻击力:"<<gongjili<<endl; 

cout<<"你的防御力:"<<fangyuli<<endl; 

cout<<"你拥有的钱:"<<money<<endl; 



else 

switch(xiaozhen) 



case 1 : wuqidian();break; 

case 2 : yaodian();break; 

case 3 : guaiwu1();break; 

case 4 : guaiwu2();break; 

default : cout<<"请不要乱选!"<<endl;break; 



cin>>xiaozhen; 



if(xiaozhen==5) 



cout<<"正在退出游戏……"<<endl; 



cin.get(); 

cin.get(); 

return 0; 



void wuqidian() 



cout<<"欢迎来到武器店!"<<endl; 

cout<<"1、买小刀(1M加2攻击力)"<<endl; 

cout<<"2、买短剑(2M加20攻击力)"<<endl; 

cout<<"3、买大砍刀(5M加40攻击力)"<<endl; 

cout<<"4、买双节棍(7M加60攻击力)"<<endl; 

cout<<"5、买盾牌(2M加30防御力)"<<endl; 

cout<<"6、买铠甲(5M加60防御力)"<<endl; 

cout<<"7、离开武器店"<<endl; 

int wuqidian; 

cin>>wuqidian; 

while(wuqidian!=7)//输入7时结束函数 



switch(wuqidian) 



case 1 : if(money<10) 

cout<<"你的钱不够"<<endl;//钱不够时返回Flase 

else  

cout<<"购买成功!"<<endl;//钱足够时返回True 

gongjili+=2; 

money-=1; 

break; 

case 2 : if(money<80) 

cout<<"你的钱不够"<<endl; 

else  

cout<<"购买成功!"<<endl; 

gongjili+=20; 

money-=80; 

break; 

case 3 : if(money<140) 

cout<<"你的钱不够"<<endl; 

    else  

cout<<"购买成功!"<<endl; 

gongjili+=40; 

money-=140; 

break; 

case 4 : if(money<200) 

cout<<"你的钱不够"<<endl; 

else  

cout<<"购买成功!"<<endl; 

gongjili+=60; 

money-=200; 

break; 

case 5 : if(money<60) 

cout<<"你的钱不够"<<endl; 

else  

cout<<"购买成功!"<<endl; 

fangyuli+=30; 

money-=60; 

break; 

fangyuli+=60; 

money-=100; 

break; 

default : cout<<"无"<<endl; 

    break; 

}  

cin>>wuqidian; 



if(wuqidian==7) 

{   //返回main()主函数 

cout<<"欢迎下次再来!"<<endl; 

cout<<"欢迎你开始玩打怪物小游戏!\n"; 

cout<<"小镇\n"; 

cout<<"一个1000年的小镇。周围有一条河,有一片树林,很多房子和很多人。\n有一家药店"<<endl; 

cout<<"和一家武器店。\n"; 

cout<<"1.去武器店"<<endl; 

cout<<"2.去药品店"<<endl; 

cout<<"3.去打小怪物"<<endl; 

cout<<"4.去打大怪物"<<endl; 

cout<<"5.退出游戏"<<endl; 

cout<<"6.显示你的状态"<<endl; 





/* 

yaodian()的设置与wuqidian()相同,可参照阅读. 

*/ 

void yaodian() 



cout<<"欢迎来到药品店!"<<endl; 

cout<<"1、买1号补血药(10M加200生命)"<<endl; 

cout<<"2、买2号补血药(50M加1000生命 力)"<<endl; 

cout<<"3、买3号补血药(100M加2200生命力)"<<endl; 

cout<<"4、离开武器店"<<endl; 

int yaodian; 

cin>>yaodian; 

while(yaodian!=4) 



switch(yaodian) 



case 1 : if(money<10) 

cout<<"你的钱不够"<<endl; 

else  

cout<<"购买成功!"<<endl; 

shengmingli+=200; 

money-=10; 

break; 

case 2 : if(money<50) 

cout<<"你的钱不够"<<endl; 

else  

cout<<"购买成功!"<<endl; 

shengmingli+=1000; 

money-=50; 

break; 

case 3 : if(money<100) 

cout<<"你的钱不够"<<endl; 

else  

cout<<"购买成功!"<<endl; 

shengmingli+=2200; 

money-=100; 

break; 

default : cout<<"无"<<endl; 

break; 



cin>>yaodian; 



if(yaodian==4) 

{    

cout<<"欢迎下次再来!"<<endl;    

cout<<"欢迎你开始玩打怪物小游戏!\n"; 

cout<<"小镇\n"; 

cout<<"一个1000年的小镇。周围有一条河,有一片树林,很多房子和很多人。\n有一家药店"<<endl; 

cout<<"和一家武器店。\n"; 

cout<<"1.去武器店"<<endl; 

cout<<"2.去药品店"<<endl; 

cout<<"3.去打小怪物"<<endl; 

cout<<"4.去打大怪物"<<endl; 

cout<<"5.退出游戏"<<endl; 

cout<<"6.显示你的状态"<<endl; 





/*这里是两个战斗函数,使用指针来处理.避免造成内存崩溃.*/ 

void guaiwu1() 



cout<<"开始与小怪物战斗!!!"<<endl; 

double* g_shengmingli=new double;//定义怪物生命 

int* g_gongjili=new int;//定义怪物攻击力 

int* g_fangyuli=new int;//定义怪物防御力 

    int* g_money=new int;//定义怪物金钱 

*g_shengmingli=100; 

*g_gongjili=5; 

*g_fangyuli=3; 

*g_money=5; 

double* tongji1=new double;//用来计算主角对怪物的杀伤 

double* tongji2=new double;//用来计算怪物对主角的杀伤 

*tongji1=0; 

*tongji2=0; 

int* huihe=new int;//定义回合数 

*huihe=1; 

cout<<"你开始对小怪物进行攻击!"<<endl; 

int* xuanze=new int; 

/* 

攻击计算公式 

杀伤=攻击力*2-防御力 

玩家每回合可以选择攻击与逃跑 

*/ 

while((*g_shengmingli)>0 && shengmingli>0 && (*xuanze)!=2) 



cout<<"现在是"<<"第"<<*huihe<<"回合!"<<endl; 

cout<<"请选择你的动作:\n"; 

cout<<"1、攻击\n2、逃跑\n"; 

cin>>*xuanze; 

switch((*xuanze)) 



case 1 : cout<<"你对小怪物发动了攻击!"<<endl; 

*g_shengmingli-=gongjili*2-(*g_fangyuli); 

*tongji1=gongjili*2-(*g_fangyuli); 

cout<<"你打掉了小怪物"<<*tongji1<<"的生命!"<<endl; 

cout<<"小怪物还剩"<<(*g_shengmingli)-(*tongji1)<<"点生命"<<endl; 

shengmingli-=(*g_gongjili)*2-fangyuli; 

*tongji2=(*g_gongjili)*2-fangyuli; 

cout<<"小怪物对你发动了攻击!"<<endl; 

cout<<"小怪物打掉了你"<<*tongji2<<"的生命!"<<endl; 

cout<<"你还剩"<<shengmingli-(*tongji2)<<"点生命"<<endl;break; 

case 2 : cout<<"你决定逃跑!"<<endl; 

cout<<"逃跑成功!"<<endl;continue; 

default : cout<<"请不要乱选!"<<endl; 



(*huihe)++; 



if((*g_shengmingli)<=0) 

{//杀死怪物后的返回 

cout<<"小怪物被你杀死了!你真厉害!!!"<<endl; 

money+=(*g_money); 

cout<<"欢迎你开始玩打怪物小游戏!\n"; 

cout<<"小镇\n"; 

cout<<"一个1000年的小镇。周围有一条河,有一片树林,很多房子和很多人。\n有一家药店"<<endl; 

cout<<"和一家武器店。\n"; 

cout<<"1.去武器店"<<endl; 

cout<<"2.去药品店"<<endl; 

cout<<"3.去打小怪物"<<endl; 

cout<<"4.去打大怪物"<<endl; 

cout<<"5.退出游戏"<<endl; 

cout<<"6.显示你的状态"<<endl; 



else 

if(shengmingli<=0) 

{//被怪物杀死后的返回 

cout<<"你被小怪物杀死了!游戏结束!!!"<<endl; 



else 

if((*xuanze)==2) 

{//逃跑的返回 

cout<<"你逃回了小镇!"<<endl; 

cout<<"欢迎你开始玩打怪物小游戏!\n"; 

cout<<"小镇\n"; 

cout<<"一个1000年的小镇。周围有一条河,有一片树林,很多房子和很多人。\n有一家药店"<<endl; 

cout<<"和一家武器店。\n"; 

cout<<"1.去武器店"<<endl; 

cout<<"2.去药品店"<<endl; 

cout<<"3.去打小怪物"<<endl; 

cout<<"4.去打大怪物"<<endl; 

cout<<"5.退出游戏"<<endl; 

cout<<"6.显示你的状态"<<endl; 



delete g_shengmingli; 

delete g_gongjili; 

delete g_fangyuli; 

delete g_money; 

delete tongji1; 

delete tongji2; 



/* 

设置均与void函数guaiwu1()相同,可参照上例阅读. 

*/ 

void guaiwu2() 



cout<<"开始与大怪物战斗!!!"<<endl; 

double* g_shengmingli=new double; 

int* g_gongjili=new int; 

int* g_fangyuli=new int; 

*g_shengmingli=3600; 

*g_gongjili=500; 

*g_fangyuli=500; 

double* tongji1=new double; 

double* tongji2=new double; 

*tongji1=0; 

*tongji2=0; 

int* huihe=new int; 

*huihe=1; 

cout<<"你开始对大怪物进行攻击!"<<endl; 

int* xuanze=new int; 

while((*g_shengmingli)>0 && shengmingli>0 && (*xuanze)!=2) 



cout<<"现在是"<<"第"<<*huihe<<"回合!"<<endl; 

cout<<"请选择你的动作:\n"; 

cout<<"1、攻击\n2、逃跑\n"; 

cin>>*xuanze; 

switch((*xuanze)) 



case 1 : cout<<"你对大怪物发动了攻击!"<<endl; 

*g_shengmingli-=gongjili*2-(*g_fangyuli); 

*tongji1=gongjili*2-(*g_fangyuli); 

cout<<"你打掉了大怪物"<<*tongji1<<"的生命!"<<endl; 

cout<<"大怪物还剩"<<(*g_shengmingli)-(*tongji1)<<"点生命"<<endl; 

shengmingli-=(*g_gongjili)*2-fangyuli; 

*tongji2=(*g_gongjili)*2-fangyuli; 

cout<<"大怪物对你发动了攻击!"<<endl; 

cout<<"大怪物打掉了你"<<*tongji2<<"的生命!"<<endl; 

cout<<"你还剩"<<shengmingli-(*tongji2)<<"点生命"<<endl;break; 

case 2 : cout<<"你决定逃跑!"<<endl; 

cout<<"逃跑成功!"<<endl;continue; 

default : cout<<"请不要乱选!"<<endl; 



(*huihe)++; 



if((*g_shengmingli)<=0) 



    cout<<"大怪物被你杀死了!你真厉害!!!"<<endl; 

guoguan=true; 

cout<<"欢迎你开始玩打怪物小游戏!\n"; 

cout<<"小镇\n"; 

cout<<"一个1000年的小镇。周围有一条河,有一片树林,很多房子和很多人。\n有一家药店"<<endl; 

cout<<"和一家武器店。\n"; 

cout<<"1.去武器店"<<endl; 

cout<<"2.去药品店"<<endl; 

cout<<"3.去打小怪物"<<endl; 

cout<<"4.去打大怪物"<<endl; 

cout<<"5.退出游戏"<<endl; 

cout<<"6.显示你的状态"<<endl; 



else 

if(shengmingli<=0) 



cout<<"你被大怪物杀死了!游戏结束!!!"<<endl; 



else 

if((*xuanze)==2) 



cout<<"你逃回了小镇!"<<endl; 

cout<<"欢迎你开始玩打怪物小游戏!\n"; 

cout<<"小镇\n"; 

cout<<"一个1000年的小镇。周围有一条河,有一片树林,很多房子和很多人。\n有一家药店"<<endl; 

cout<<"和一家武器店。\n"; 

cout<<"1.去武器店"<<endl; 

cout<<"2.去药品店"<<endl; 

cout<<"3.去打小怪物"<<endl; 

cout<<"4.去打大怪物"<<endl; 

cout<<"5.退出游戏"<<endl; 

cout<<"6.显示你的状态"<<endl; 



delete g_shengmingli; 

delete g_gongjili; 

delete g_fangyuli; 

delete tongji1; 

delete tongji2; 

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李余博睿(新疆)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值