找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4560|回复: 4
打印 上一主题 下一主题
收起左侧

c/c++打怪小游戏源码

[复制链接]
回帖奖励 1 黑币 回复本帖可获得 1 黑币奖励! 每人限 1 次(中奖概率 10%)
跳转到指定楼层
#
ID:613800 发表于 2019-9-25 08:51 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
#include <iostream>

using namespace std;

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

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

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

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

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、买小刀(加攻击力)"<<endl;

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

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

cout<<"4、买电锯(加攻击力)"<<endl;

cout<<"5、买盾牌(加防御力)"<<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+=20;

money-=10;

break;

case 2 : if(money<20)

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

else  

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

gongjili+=40;

money-=20;

break;

case 3 : if(money<30)

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

    else  

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

gongjili+=60;

money-=30;

break;

case 4 : if(money<40)

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

else  

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

gongjili+=100;

money-=40;

break;

case 5 : if(money<10)

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

else  

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

fangyuli+=30;

money-=10;

break;

fangyuli+=60;

money-=20;

break;

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

    break;

}  

cin>>wuqidian;

}

if(wuqidian==7)

{      //返回main()主函数

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

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号补血药(加生命)"<<endl;

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

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

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

int yaodian;

cin>>yaodian;

while(yaodian!=1)

{

switch(yaodian)

{

case 1 : if(money<10)

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

else  

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

shengmingli+=30;

money-=10;

break;

case 2 : if(money<20)

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

else  

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

shengmingli+=50;

money-=1;

break;

case 3 : if(money<40)

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

else  

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

shengmingli+=100;

money-=40;

break;

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

break;

}

cin>>yaodian;

}

if(yaodian==4)

{      

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



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=20;

*g_gongjili=1;

*g_fangyuli=1;

*g_money=50;

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<<"一个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<<"一个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=50;

*g_gongjili=15;

*g_fangyuli=10;

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)-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<<"一个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<<"一个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;

}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

地板
ID:1051746 发表于 2022-11-13 16:07 | 只看该作者
打怪小游戏  ok   ok   ok   !!!!!
回复

使用道具 举报

板凳
ID:328075 发表于 2022-10-30 21:03 | 只看该作者
打怪小游戏  ok   ok   ok   !!!!!
回复

使用道具 举报

沙发
ID:328075 发表于 2022-10-30 21:02 | 只看该作者
"打怪小游戏"  dsm dsm  !!!!!  
回复

使用道具 举报

楼主
ID:328075 发表于 2022-10-30 21:02 | 只看该作者
download look at  , ok!!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表