控制台模拟西游记游戏

这款控制台模拟西游记游戏,主要是对C++学习做个检验,进行实际编程看理解C++多少。游戏里包括了C++主要的各个知识点。

1. 各个角色定义:? 类的设计

  • 普通角色:如普通行人??? 类名:Actor
  • 和尚:专指取经的和尚,如唐三藏等?? 类名:Monk
  • 妖怪:会吃人,总是和取经的和尚作对,如白骨精等?? 类名:Monster
  • 神仙:功力强大,会在危难关头帮助和尚,如观音菩萨等?? 类名:God

2.各个角色关系设计:?? 类和继承

image

  • Actor:角色类,作为共基类存在
  • Monk:和尚类,继承于Actor。如:唐三藏属于Monk类
  • God: 神仙类,继承于Actor。如:观音菩萨属于God类
  • Monster: 妖怪类,继承于Actor。如:白骨精属于Monster类
  • FollowerMonster: 随从妖怪类,继承于Monster。随从妖怪类用以描述等待跟随唐三藏的妖怪,如:白龙马、猪八戒和沙和尚

3.文本文件解析

角色列表通对文本文件提供,

####演员表
####和尚列表
monk=唐三藏, 唐玄宗, 1
weapon=九环锡杖, 20

monk=孙悟空,孙悟空,72
weapon=如意金箍棒,99

####随从列表

follower=小白龙,20,蛇盘山鹰涧,白龙马,白龙马

follower=猪刚 ,48,云栈洞,猪八戒,猪悟能
weapon=九齿钉耙,48

follower=流沙河怪,36,流沙河,沙和尚,沙悟静
weapon=降妖杖,36

####神仙列表

god=如来佛祖,true,1000

god=观世音菩萨,false,500

god=菩提祖师,true,160

god=玉皇大帝,true,150

god=王母娘娘,false,120

god=太上老君,true,300

god=灵吉菩萨,true,160

god=南极寿星,true,160

god=太白金星,true,300

god=二郞真君,true,72
weapon=三尖两刃枪,99

god=镇元大仙,true,160

god=托塔李天王,true,180
weapon=舍利子如意黄金宝塔,100

god=文殊菩萨,true,160

god=普贤菩萨,true,160

god=东海龙王,true,160

god=西海龙王,true,160

god=阴曹阎王,true,160

god=曏日星宫,true,160

god=嫦娥,true,120

god=毗蓝婆菩萨,true,60

god=巨灵神,true,160
weapon=宣花板斧,33

####妖怪列表

monster=白骨精,false,50, 白骨山
weapon=双剑,40

monster=青毛狮子怪,true,40, 狮驼岭

monster=蝎子精,false,30, 琵琶洞
weapon=三股钢叉,40

monster=蜘蛛精,false,40, 盘丝洞

monster=通天河鱼怪,true,40, 通天河
weapon=九瓣铜锤,80

monster=独角 ,true,46, 金晴山皘洞
weapon=金刚琢,200

monster=铁扇公主,false,46, 云山芭蕉洞
weapon=芭蕉扇,66

monster=金鼻白毛老鼠精,true,46, 陷空山无底洞

monster=黑熊怪,true,36, 黑风山黑风洞
weapon=黑长枪,40

monster=黄风怪,true,50, 黄风岭
weapon=三股钢叉,60

monster=南山大王,true,30, 隐雾山折岳連环洞
weapon=铁櫡,40

monster=黑水河怪,true,30, 卫阳峪黑水河
weapon=竹节钢鞭,40

monster=黄眉大王,true,50, 狼牙棒
weapon=狼牙棒,80
weapon=金钹,80

monster=红孩儿,true,20, 枯松涧火云洞
weapon=八丈火尖枪,40

monster=蜈蚣精,true,40, 黄花观

monster=金角大王,true,50, 平顶山莲花洞
weapon=红葫芦,80
weapon=玉净瓶,80

monster=银角大王,true,40, 平顶山莲花洞
weapon=金绳子,80

monster=狮魔王,true,30, 乌鸡国
weapon=宝刀,80

monster=白鹿精,true,30, 比丘国
weapon=蟠龙拐杖,40

monster=黄袍怪,true,40, 碗子山波月洞

#######################################

注解:

monk=孙悟空,孙悟空,72????? //名字??? 功力
weapon=如意金箍棒,99????? //配带兵器??? 功力

4.同一个动作各角色不同处理方式?? 多态的实现

5.功能提升,兵器功力大小比较等??? 操作符重载实现

6.妖怪吃掉唐三藏、无法找到指定角色等?? 异常处理

image

7.要知道哪些角色是妖怪、要知道哪些角色是神仙???? RTTI获取角色类型

RTTI(Run-Time Type Identification),通过运行时类型信息程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。

if(typeid(actor) == typeie(Monster))???? //例

8.角色、兵器的管理???? STL容器实现

STL是Standard Template Library的简称,中文名标准模板库,惠普实验室开发的一系列软件的统称。

9.查找某个角色、排序兵器????? 泛型算法实现

部份代码:

工程中类定义:

image

实际运行截图:

image

参考:标准C++开发入门与编程实践