宠物养成游戏参考模板.docx
《宠物养成游戏参考模板.docx》由会员分享,可在线阅读,更多相关《宠物养成游戏参考模板.docx(20页珍藏版)》请在冰豆网上搜索。
宠物养成游戏参考模板
1前言
C++面向对象编程强调“封装”,“继承“和“多态”。
数据和与数据相关的操作被包装成对象(严格的说是“类”),每一种对象是相对完整和独立的。
对象可以有派生的类型,派生的类型可以覆盖(或重载)原本已有的操作。
优点如下:
(1)更接近自然事物的描述方式,容易理解。
(2)继承\封装\多态,使得程序便于管理和扩展。
(3)对大型的项目有帮助,小型的讲求运行效率的,面向过程更好一点。
队员分工:
(1):
负责宠物养成游戏的策划和协助方案。
(2):
负责面向对象的模块设计和程序实现。
(3):
负责宠物养成游戏的体验与后期维护。
2需求分析
2.1任务和要求
使用类结构设计宠物养成游戏。
具体要求:
(1)设定宠物基本属性,如成长、饥饿、快乐、忠诚等,可以通过用户选择对宠物属性进行修改,如喂食即可增加饥饿值。
饥饿、快乐、忠诚都达到一定值即可提高成长值。
(2)每次操作宠物增加的属性值是随机的,并且不会自动减少。
但是,可以有随机事件减少属性值,如喂食时可能有中毒事件,减少一定饥饿值。
(3)宠物基本信息需要保存在存档文件中,自由读写。
2.2运行环境
(1)WINDOWS操作系统
(2)VisualC++6.0编译环境或DEVC++5.0编译环境
2.3开发语言
C++语言
3分析和设计
3.1系统分析及设计思路
相信大多数使用Windows操作系统的使用者,对这款游戏都不陌生。
这款游戏不止操作简单,规则也不难,再加上游戏速度的控制机制易得,让整个游戏在操作过程中充满了愉快与轻松的气氛。
除了游戏当中能够给使用者带来快乐以外,游戏设计内容无形中也不短训练使用者逻辑思考能力,对于依靠高度脑力工作的现代人,都可以通过这个游戏,不时训练一下自己的智商,所以我们不难发现,在各种可携带的电子产品上都有着款游戏的踪影。
下面我们来介绍一下这款养成游戏的设计思路:
根据游戏策划,来分析所要设计的对象。
首先,我们设计一个动物类(animal),附有基本属性和动物的活动方法。
在设计几个可爱型的动物,如小猫,小狗。
继承于动物类(animal)的基本属性和玩法。
为了增添游戏的趣味性,让宠物与其他小动物进行pk,展示自身的活力。
最后,设计一个输出类(input)显示宠物的基本属性和他们的需求。
3.2主要类图
图3.1宠物养成游戏类图
3.3函数流程图
图3.2宠物养成游戏流程图
4具体代码实现
模块一主函数:
#include
#include"cat.h"
#include"dog.h"
#include"animal.h"
#include"input.h"
usingnamespacestd;
/*runthisprogramusingtheconsolepauseroraddyourowngetch,system("pause")orinputloop*/
intmain(intargc,char**argv)//主函数,生成类的对象,进行客户所需要的操作。
{catc1(50,50);
intn,sex;
inputt;
while(!
0)
{
cin>>n;
switch(n)
{
case1:
p1.play();t.add(p1);t.cheak(p1);break;
case2:
p1.eat();t.add(p1);t.cheak(p1);break;
case3:
p1.drink();t.add(p1);t.cheak(p1);break;
case4:
p1.work();t.add(p1);t.cheak(p1);break;
case5:
p1.sleep();t.add(p1);t.cheak(p1);break;
case6:
c1.fight(p1);t.add(p1);t.cheak(p1);t.cheakk(c1);break;
case7:
p1.show();t.add(p1);t.cheak(p1);break;
default:
cout<<"输入错误喽!
重新输入吧!
"<}
}
return0;
}
模块二input类的定义(input..h)和代码的实现(input.cpp)。
#ifndefINPUT_H
#defineINPUT_H
classinput//定义了输出类的基本属性和实现方法
{
public:
input();
~input();
voidxianshi();//显示小狗当前的信息
voidsexXianshi();//显示用户可以玩的方式
voidcheakk();//检查小猫的状态进行处理
voidcheak():
//检查小狗的状态进行处理
voidadd():
//修开玩家操作后的小狗和小猫的信息
};
#endif
#include"input.h"
#include
usingnamespacestd;
input:
:
input()
{
}
input:
:
~input()
{
}
voidinput:
:
xianshi(){
cout<<"\t\t\t请输入:
\n\t\t1.狗狗玩耍\n\t\t2.狗狗吃饭\n\t\t3.狗狗喝水\n\t\t4.狗狗工作\n\t\t5.狗狗睡觉\n\t\t6.狗狗pk猫猫打架\n\t\t7.显示狗狗信息"<}
voidinput:
:
sexXianshi()
{
inta;
cout<<"尊敬的用户您好,欢迎来到本游戏,祝你玩得开心!
\n\n本产品由:
,,为你奉献\n\n\n\t要继续请随意输入任意数字(0--9)"<cin>>a;
system("cls");
cout<<"\t\t请输入小狗狗的性别吧!
\n\t\t1.男性2.女性"<}
voidanimal:
:
cheakk(cat&c1)
{
if(c1.weight<=40)
{
cout<<"小猫被你pk掉了!
很厉害啊,小狗狗,释放你无尽的活力吧!
再pk下一个吧!
"<catCount++;
c1.weight=50;
}
else
c1.weight;
}
intinput:
:
cheak(dog&p1)
{
if(p1.weight>110)
{
cout<<"主人,我已经饱了!
"<p1.weight=110;
}
if(p1.weight<=90)
{
cout<<"主人,我好好饿啊!
"<}
else;
return0;
}
intinput:
:
add(dog&p1)
{
if(p1.count>=4)
{
p1.age++;
p1.mood+=2;
p1.smart++;
p1.count=0;
cout<<"年龄:
"<"<"<}
if(p1.mood>=100&&p1.smart>=110)
{
p1.classs=1;
if(num==0)
{
cout<<"小狗狗生长期达到1级!
继续加油奥!
"<num++;
}
else
num;
}
if(p1.mood>=120&&p1.smart>=120)
{
p1.classs=2;
if(num==1)
{
cout<<"小狗狗生长期达到2级!
小狗狗成为聪明小玲珑了,再接再厉哈!
"<num++;
}
else
num;
}
if(p1.mood>=130&&p1.smart>=130)
{
p1.classs=3;
if(num==2)
{
cout<<"小狗狗达到3级,很厉害!
小狗狗成为快乐达狗了!
"<num++;
}
}
if(p1.mood>=140&&p1.smart>=140)
{
p1.classs=4;
if(num==3){
cout<<"小狗狗达到4级,成为聪明快乐元老了!
"<}
else
num;
}
else
p1.count,p1.classs;
return0;
模块三animal类的定义(animal..h)和代码的实现(animal.cpp)。
#ifndefANIMAL_H
#defineANIMAL_H
classanimal//定义animal的一些基本属性和方法
{
private:
intage;
intsex;
intclasss;
intweight;
intdrinks;
intmood;
intsmart;
public:
animal();
~animal();
voidplay();
voideat();
};
#endif
#include"animal.h"
animal:
:
animal()
{
}
animal:
:
~animal()
{
}
模块四dog类的定义(dog.h)和代码的实现(dog.cpp)。
#ifndefDOG_H
#defineDOG_H
classdog:
publicanimal//定义了dog类的基本属性和函数方法。
(继承animal类)
{
private:
intage,sex,classs,weight,drinks,mood,smart;
staticintcount=0;
public:
dog(intage,intsex,intclasss,intweight,intdrinks,intmood,intsmart)
:
age(age),sex(sex),classs(classs),weight(weight),drinks(drinks),mood(mood),smart(smart){}
dog(dog&p1)
{
age=p1.age;
sex=p1.sex;
classs=p1.classs;
weight=p1.weight;
drinks=p1.drinks;
mood=p1.mood;
smart=p1.smart;
}
voidplay();
voideat();
voiddrink();
voidsleep();
voidwork();
voidshow();
};
#endif
#include"dog.h"
#include
usingnamespacestd;
dog:
:
dog()
{
}
dog:
:
~dog()
{
}
voiddog:
:
play()
{
count++;
weight--;
cout<<"玩的很high!
"<}
voiddog:
:
eat()
{
count++;
weight+=2;
cout<<"又吃了一顿大餐!
"<}
voiddog:
:
drink()
{
count++;
weight++;
cout<<"我喝到甜甜的水了!
"<}
voiddog:
:
sleep()
{
count++;
cout<<"为了健康,我好好休息!
\n主人别打扰我奥!
"<}
voiddog:
:
work()
{
count++;
weight--;
smart++;
cout<<"好好工作哦喽!
"<}
voiddog:
:
show()
{
cout<<"\t\t小狗狗信息:
\n\t\t1.年龄:
"<cout<<"\t\t2.性别:
"<cout<<"\t\t3.等级:
"<cout<<"\t\t4.pk猫猫数:
"<cout<<"\t\t4.体重:
"<cout<<"\t\t5.湿润度:
"<cout<<"\t\t6.心情:
"<cout<<"\t\t7.聪明指数:
"<}
模块五cat类的定义(cat.h)和代码的实现(cat.cpp)。
#ifndefCAT_H
#defineCAT_H
classcat:
publicanimal//定义了cat的属性和操作函数。
(继承animal类)
{
private:
intweight,smart;
public:
cat(intweight,intsmart):
weight(weight),smart(smart){}
~cat();
voidfight(dog&p1);
voidshow();
};
#endif
#include"cat.h"
cat:
:
cat()
{
}
cat:
:
~cat()
{
}
voidcat:
:
fight(dog&p1)
{
p1.mood--;
p1.weight-=2;
p1.smart+=2;
weight-=2;
smart++;
cout<<"小狗狗与小猫作战!
小猫体重下降2点哦啊"<}
voidcat:
:
show()
{
cout<<"\t\t小猫的信息:
\n\t\t1.体重:
"<"<}
5课程设计总结
5.1程序运行结果或预期运行结果
图5.1欢迎与游戏介绍
图5.2宠物的选择
图5.3与宠物进行互动
图5.4输出小狗的基本信息
图5.5当小狗有需求时候及时反馈给玩家
5.2设计结论
随着宠物养成游戏的开发完成,本游戏中期的主要功能也基本实现。
本系统以Devc作为开发工具,Devc以简单,易用等优点成为开发本系统的首选工具。
本报告阐述了宠物养成游戏的分析与设计的全过程,并在论文中相应的位置插入了图片、流程图、类图以及一些具有技巧性的程序代码,更加清晰的描述了该游戏是如何是实现运行的。
宠物养成游戏是一款益智游戏,该游戏与那些网络游戏和3D游戏相比,他有编写简单上手特点,非常适合任务人们在完成工作的时候适当的娱乐要求。
小游戏大都是以益智和娱乐为目的,不仅给紧张工作的人们以放松,还可以让人们的大脑得到开发。
由于我学的c++时间比较短,其中很多知识还没有涉及到,在宠物养成游戏中有些功能还不够完善,例如在本游戏中宠物之间不可进行一些竞技比赛。
希望在以后的工作和学习中不断的充实自己的知识结构,把宠物养成游戏的功能进一步完善,使它成为一个更具有实用价值的游戏软件,同时也恳请老师指正。
参考文献
[1]张福祥.C语言程序设计[M].辽宁大学出版社,2008.1
[2]张福祥,王萌.C语言程序设计习题解答与实验实训[M].沈阳:
辽宁大学出版社,2008.
[3]牛莉,刘远军等.计算机等级考试辅导教程[M].北京:
中国铁道出版社,2008.
[4]吕凤翥.C++语言程序设计(第2版).电子工业出版社,2007.2
[5]李云清、杨庆红、揭安全.数据结构[M].人民邮电大学出版社,2004.6
致谢
历时将近一个月的时间终于将这个课程设计做完,在课程设计的制作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。
尤其要感谢我课程设计的指导老师——老师,他对我们进行了无私的指导和帮助,不厌其烦的帮助进行课程设计的修改和改进。
再次就是要感谢我的其他两名队员:
和同学,没有你们的合作以及在我困难之时对我的鼓励,我自己一个人是不可能完成这项挑战难度极高的课程设计。
另外,在校图书馆找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。
在此向帮助和指导过我的各位老师表示最衷心的感谢。
通过这次的课程设计,不仅学到了一些课本上学不到的知识与算法,而且也开阔了视野,提高了自己的编程能力。
最后,还是要感谢老师能给了我们这次提高自己编程能力的机会,这次课程设计使我受益匪浅。