感觉编程无聊么,感觉玩别人的游戏索然无味,快来这里看看,走过路过别错过。

在这里你可以成为一个异世界的勇者,可以是都市里的一个拯救世界的主人公,你还可以是一个开始打了败仗的主人公然后转生(这个就可以自己在前面加一个剧情并把战斗的函数调用一遍)。

只能输1进入游戏,和其他数字退出游戏(因为还没学有关网络的知识)

输入名字阶段其实没什么用因为没有联机功能

因为没想到什么功能就把去xx加是分别加攻击力,防御力,生命值

0是可以离开勇者村

123456的地方都是一样的但是可以在源代码处修改的

awsd是移动,根据移动的步数随机遇到怪物

下面就是战斗的场景(有亿点简陋)

胜利了就回到地图界面

走到括号就可以退出了(因为没有限制地图大小会出现亿些小Bug)

游戏大概就是这样了。

代码在下面(这是我第一次做的东西有的地方有缺陷,因为临近期末就没有去改了,谢谢大家理解):

#include <iostream>
#include<string>
#include <conio.h>
#include<cstdlib>
using namespace std;struct m_head
{double h_atk;double h_fyl;double h_smz;
};
struct m_xbbh
{double x_atk;double x_fyl;double x_smz;
};
struct m_tbbh
{double t_atk;double t_fyl;double t_smz;
};
struct m_xz
{double z_atk;double z_fyl;double z_smz;
};
struct m_Person
{string  m_name;double atk;double fyl;double smz;struct m_head a ;struct m_xbbh b;struct m_tbbh c;struct m_xz d;
};void showmean()
{cout << "**********************" << endl;cout << "***** 1,进入游戏 *****" << endl;cout << "***** 2,看什么看 *****" << endl;cout << "***** 3,别看了呀 *****" << endl;cout << "***** 4,快点击11 *****" << endl;cout << "***** 5,快快快快 *****" << endl;cout << "***** 6,邀请好友 *****" << endl;cout << "***** 0,退出游戏 *****" << endl;cout << "**********************" << endl;
}
void showmean1()
{cout << "************************" << endl;cout << "***** 1,进入铁匠铺 *****" << endl;cout << "***** 2,进入村长家 *****" << endl;cout << "***** 3,进入小翠家 *****" << endl;cout << "***** 4,进入小埋家 *****" << endl;cout << "***** 5,进入蕾姆家 *****" << endl;cout << "***** 6,回去自己家 *****" << endl;cout << "***** 0,离开勇者村 *****" << endl;cout << "************************" << endl;
}
void showmean2()
{cout << "************************" << endl;cout << "***** 1,进入下水道 *****" << endl;cout << "***** 2,进入小树林 *****" << endl;cout << "***** 3,进入爱琴海 *****" << endl;cout << "***** 4,进入天空岛 *****" << endl;cout << "***** 5,进入火焰山 *****" << endl;cout << "***** 6,进入寒冷地 *****" << endl;cout << "***** 0,回去勇者村 *****" << endl;cout << "************************" << endl;
}
int atkmean(m_Person * xph, double *xl)
{cout << "******************" << endl;cout << "***** 1,斩击 *****" << endl;cout << "***** 2,光波 *****" << endl;cout << "***** 3,防御 *****" << endl;cout << "***** 4,闪避 *****" << endl;cout << "***** 0,逃跑 *****" << endl;cout << "******************" << endl; int select;double atk;cin >> select;atk = xph->atk;while (select){system("cls");cout << "******************" << endl;cout << "***** 1,斩击 *****" << endl;cout << "***** 2,光波 *****" << endl;cout << "***** 3,防御 *****" << endl;cout << "***** 4,闪避 *****" << endl;cout << "***** 0,逃跑 *****" << endl;cout << "******************" << endl;switch (select){case 1:*xl = *xl - (atk*0.5 + 10);cout << "你攻击了敌人并造成" << atk * 0.5 + 10 << endl;cout << "敌人血量还剩下" << *xl << endl;if (*xl > 0) {cout << "你受到敌人的攻击" << endl;xph->smz = xph->smz - 20;cout << "你还剩下" << xph->smz << endl;}elsereturn 1;break;case 2:*xl = *xl - (atk*0.6 + 10);cout << "你攻击了敌人并造成" << atk * 0.6 + 10 << endl;cout << "敌人血量还剩下" << *xl << endl;if (*xl > 0) {cout << "你受到敌人的攻击" << endl;xph->smz = xph->smz - 20;cout << "你还剩下" << xph->smz << endl;}elsereturn 1;break;case 3:xph->smz = xph->smz - 20 * xph->fyl*0.5;cout << "你受到敌人的攻击" << endl;cout << "你还剩下" << xph->smz << endl;break;case 4:cout << "你闪开了对方的攻击" << endl;break;case 0:cout << "你离开了战场" << endl;return 1;break;default:break;}if (xl <= 0)return 1;if (xph->smz <= 0)return -1;}
}
int guaiwu (m_Person * xph)
{double xl = 100;system("cls");cout << "你遇到一个敌人耶,这都被你碰上了" << endl;system("pause");cout << "下水道太脏了你行动受到限制后手攻击" << endl;cout << "敌人嘲讽了你" << endl;cout << "到你攻击了" << endl;if (xl > 0 && xph->smz)atkmean(xph, &xl);else if (xl <= 0)return -1;else if (xph->smz <= 0)return 1;
}
void showdt(m_Person *xph)
{int m_y = 30;int m_x = 20;void yzc(m_Person *xph);char per;int x=1, y=1,i=0;int a = rand() % 20;while (1){void ddt(m_Person *xph);system("cls");cout << "出口" << endl;cout << "( )" << endl;for (int x = 0; x <= m_x; x++){cout << endl;for (int y = 0; y <= m_y; y++){cout << "  ";}}cout << "*";if (i == a){if (guaiwu(xph) == -1){cout << "你已经挂了正在返回勇者村" << endl;xph->smz = 1000;yzc(xph);}a = rand() % 20;}if (m_x == 0 && m_y == 0){system("cls");cout << "恭喜你回到大地图" << endl;showmean2();ddt(xph);}per = _getch();if (per == 'w'){m_x = m_x - 1;i++;}else if (per == 's'){m_x = m_x + 1;i++;}else if (per == 'a'){m_y = m_y - 1;i++;}else if (per == 'd'){m_y = m_y + 1;i++;}}
}
void csh(m_Person *xph)
{xph->a.h_atk = 20;xph->a.h_fyl = 20;xph->a.h_smz = 20;xph->b.x_atk = 20;xph->b.x_fyl = 20;xph->b.x_smz = 20;xph->c.t_atk = 20;xph->c.t_fyl = 20;xph->c.t_smz = 20;xph->d.z_atk = 20;xph->d.z_fyl = 20;xph->d.z_smz = 20;
}
void Percsh(m_Person *xph)
{xph->atk = xph->a.h_atk + xph->b.x_atk + xph->c.t_atk + xph->d.z_atk;xph->fyl = xph->a.h_fyl + xph->b.x_fyl + xph->c.t_fyl + xph->d.z_fyl;xph->smz = xph->a.h_smz + xph->b.x_smz + xph->c.t_smz + xph->d.z_smz;
}
void showperson(m_Person *xph)
{cout << "你的攻击力为" << xph->atk << endl;cout << "你的防御力为" << xph->fyl << endl;cout << "你的生命值为" << xph->smz << endl;
}
void changename(m_Person *xph)
{string name;cout << "已经为你创造了一位五星角色" << endl;cout << "请输入你的名字" << endl;cin >> name;xph->m_name = name;cout << "你的名字为" << xph->m_name << endl;
}
void jqjj()
{cout << "剧情简介" << endl;cout << "恭喜你诞生在勇者村,在你出生后你的家人离你而去然后你就不知道怎么就长大了" << endl;cout << "现在你什么都没有但是这个世界上并不太平有许多的怪物要等着你去拯救" << endl;
}
void ddt(m_Person *xph)
{void yzc(m_Person *xph);system("cls");showmean2();int select;cin >> select;switch (select){case 1:system("cls");showdt(xph);break;case 2:system("cls");showdt(xph);break;case 3:system("cls");showdt(xph);break;case 4:system("cls");showdt(xph);break;case 5:system("cls");showdt(xph);break;case 6:system("cls");showdt(xph);break;case 0:system("cls");yzc(xph);break;}
}
void yzc(m_Person *xph)
{int selcet;cout << "你现在在勇者村" << endl;showmean1();cin >> selcet;while (selcet){cin >> selcet;switch (selcet){case 1:xph->atk = xph->atk + 20;cout << "攻击力加20" << endl;cout << "角色攻击力为" << xph->atk << endl;break;case 2:xph->fyl = xph->fyl + 20;cout << "防御力加20" << endl;cout << "角色防御力为" << xph->fyl << endl;break;case 3:xph->smz = xph->smz + 20;cout << "生命值加20" << endl;cout << "角色生命值为" << xph->smz << endl;break;case 4:xph->atk = xph->atk + 40;cout << "攻击力加40" << endl;cout << "角色攻击力为" << xph->atk << endl;break;case 5:xph->fyl = xph->fyl + 40;cout << "防御力加40" << endl;cout << "角色防御力为" << xph->fyl << endl;break;case 6:xph->smz = xph->smz + 40;cout << "生命值加40" << endl;cout << "角色生命值为" << xph->smz<< endl;break;default:break;}}cout << "已经离开勇者村" << endl;ddt(xph);
}
void m_xsd (m_Person *xph)
{cout << "你已经来到下水道,这里有点脏,你的反应变快了,但是畏手畏脚防御力下降了" << endl;xph->fyl = xph->fyl - 20;showdt(xph);cout << "你已经离开下水道,你已经恢复了" << endl;xph->fyl = xph->fyl + 20;
}
int main()
{showmean();int a;cin >> a;if (a == 1){system("cls");cout << "欢迎进入游戏" << endl;m_Person xph;csh(&xph);Percsh(&xph);changename(&xph);showperson(&xph);system("pause");system("cls");jqjj();system("pause");system("cls");yzc(&xph);}else{cout << "欢迎下次游玩" << endl;return 0;}
}

一个文字类RPG游戏框架(走过路过别错过)C++相关推荐

  1. EA出品的java射击类游戏,盘点五款射击类RPG游戏:你喜欢这类型游戏吗?

    盘点五款射击类RPG游戏:你喜欢这类型游戏吗? 2020-06-04 18:04:06 3点赞 10收藏 3评论 RPG这种类型的游戏有很多,也是有许多玩家的喜欢.说到射击类型与RPG相结合的游戏,不 ...

  2. 极乐迪斯科for Mac(侦探类RPG游戏)中文版

    极乐迪斯科Disco Elysium for Mac是一款很好玩的侦探类RPG游戏,在Disco Elysium汉化版中,玩家将扮演一个落魄潦倒的中尉侦探,身处堕落的港口城市雷瓦科城,你将要用属于自己 ...

  3. java文字类小游戏2.0版本

    java文字类小游戏 用javaFx面板显示文字类小游戏,目前正已完成基本打斗和打怪爆出武器的开发,后续会不断更新示例图如下: 运行这个类开始代码我已上传至码云,有需要的小伙伴自行拉取代码,git项目 ...

  4. 一个简单的RPG游戏架构设计方案

    一个简单的RPG游戏架构设计方案 下面是一个简单的RPG游戏架构设计方案,实现了RPG游戏的基本功能(故事情节.战斗). 整个系统以RPGGameEngine模块为核心,周边包括了故事情节(Scrip ...

  5. 【Android开发VR实战】三.开发一个寻宝类VR游戏TreasureHunt

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53939303 本文出自[DylanAndroid的博客] [Android开发 ...

  6. [蘑菇街] 搜索、算法团队招募牛人啦-年底了走过路过不要错过 - V2EX

    [蘑菇街] 搜索.算法团队招募牛人啦-年底了走过路过不要错过 - V2EX [蘑菇街] 搜索.算法团队招募牛人啦-年底了走过路过不要错过

  7. 【android原生态RPG游戏框架源码】

    转载请注明原创地址:http://www.cnblogs.com/zisou/p/android-RPG.html 这份源码是在今年6月份写的,当时公司有一个技术部们的学习讨论的讲座,然后我自己就写了 ...

  8. 【旅游类APP源码】开发者案例开源,走过路过不可错过!

    小编语继上周分享仿饿了么APP源码后,得到了开发者们的强烈反响.热心的开发者(社区ID:小小昊)又翻箱倒柜地找出一个旅游类项目,大手一挥,慷慨奉献给各位AppCan的同学了!想要学习旅游类APP开发的 ...

  9. python爬虫面试自我介绍范文_走过路过不容错过,Python爬虫面试总结

    Python爬虫面试总结 1. 写一个邮箱地址的正则表达式?[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$ 2. 谈一谈你对 ...

  10. 秀下有关JavaScript的专业技能,走过路过不要错过!

    这一波想给大家秀下有关JavaScript的专业技能! 宅家了大半年,盼啊盼终于盼来了开学.还是挺开心的,可以和宿舍的小伙伴们一起去打王者.喝奶茶.吃烧烤了! 不过,玩归玩,浪归浪,别拿学习就业开玩笑 ...

最新文章

  1. Javascript高级调试——console.table()
  2. android attrs获取_Android 常用侧滑栏实现
  3. TCP/IP协议的深入分析
  4. asp.net 实现一级域名与二级域名共享COOKIE
  5. linux学习手册,Linux命令学习手册-ps
  6. Android系统(62)---Alarm的机制
  7. [leetcode] 839. 相似字符串组并查集
  8. Privoxy教程使用详解
  9. 设置xshell5编码
  10. 如何给计算机安装驱动程序,电脑系统怎么安装驱动程序
  11. 中兴f460光猫资料
  12. 深入浅出hibernate_夏昕_hibernate对储存过程的处理
  13. 微信商户中查看 appid
  14. 【Unity实战100例】Unity制作脑图编辑工具(全网第一首发)
  15. 【编译原理系列】文法、终结符、非终结符、产生式、子集构造法
  16. netty报错 io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
  17. 三年Java开发,java程序员电脑推荐
  18. 文件系统 fsck和e2fsck使用-小白实操记录
  19. Lucene高亮显示详解
  20. 计算机制作节日贺卡教案,节日贺卡教案

热门文章

  1. android多渠道打包流程,Android 多渠道打包总结
  2. 三千弱水,总有一瓢知我冷暖
  3. 荣耀8桌面添加计算机,华为荣耀手机如何添加快捷开关到快捷功能界面中
  4. 6 款免费网络延迟测试工具-从事网络行业必备
  5. 1080p和1080i有什么区别?
  6. linux中reboot函数在哪,reboot()函数 Unix/Linux
  7. 南京信息工程大学计算机考研资料汇总
  8. 如何制作千人千面的NFT?如何存储NFT?#Crystals #nft.storage #ipfs
  9. 别再费劲去找后台的前端框架了,2021 年就用 Fantastic-admin 吧
  10. CVE-2022-28512 Fantastic Blog CMS 1.0 版本存在SQL注入漏洞