📄 设计文档.txt
字号:
学生姓名:杨智猛 班级:00级计机四班 学号:200035003203212
设计送档:
本程序为一坦克小游戏。
编写主要分为五个部:
一、地图编画与输出,运用了Map类。
二、敌方坦克移动,运用了Tank类。
三、己方坦克戈动,运用了Tank类的子类Player类。
四、敌方坦克炮弹移动,运用了Missile类。
五、己方坦克炮弹移动,运用了Missile类的子类Pmissile类。
一、Map类
构造函数Map():为默认构造函数。
构造函数Map(char *FileName):为从载构造函数,用于打开己存在地图。
公有函数:
Display(char *FileName):用于建立并打地图数据SAVE地档案中,游戏中并不提供此功能,它只用于程序员编写程序。
Refresh():用于输出地图。
静态成员:
map[81][26]:用于记录地图上各座标数据,作为静态成员配合类中的友类Missile可作数据交流之用。
二、Tank 类
构造函数:Tank(int x,int y)用于初始化敌方坦克的座标。
公有成员:
虚函数Move():用于判断坦克周围座标的权那个最大,并向该处移动。定义为虚函数是为了便于给Player类从载。
虚函数Retake():用于从新对坦克座标库值,在游戏中作用为坦克战死后在新座标重新出现。
数据成员:int X,Y 用于纪录坦克当前座标。
保护成员:
函数SetValue():用于计算每个座标的权,以便Move()函数判断。
静态成员:int Value[81][26]用于纪录座标的权给每个坦克对象用。
int Tx,Ty 用于纪录目标座标给个个坦克对象用。
三、Player类
为Tank的子类。
从载了Move()函数,改为用键盘输入己方坦克移动路径。
四、Missile类
构造函数Missile(int x,int y):用于初始化炮弹起始座标。
公有成员:
Running(Tank &s)虚函数:用于移动炮弹。定义为虚函数是为了供PMissle类继丞。
Return(Tank &s)虚函数:用于当前一炮弹作用结束,初始下当前炮弹座。标定义为虚函数是为了供PMissle类继丞。
ChangeMap(Tank &,Tank &):用于当炮弹对地图作出改变后,改变纪录在Value中的权。
保护成员:
int MX,MY:用于纪录炮弹当前座标。
int D:用于纪录炮弹行坐成向。
静护成员:
static int Total:用于纪录己方被击中次数。
五,PMissile类
为Missile的子类。
从载了ChangeMap,改变了修改Value的方法
程序功能:
作为娱乐的一种小游戏。
编译后只有一个Game.exe档,执行时需要另加地图目录。即在game.exe的目录下必须与map\处在同一目录下。作业中包含的后缀为map的FILE就是放在map目录中。
分析及讨论:
由于编程技巧关系,本程序尚有许多地方有待改善,
例如:须改为图形介面而不是用ASCLL码符号,使游戏介面欠缺美观。
由于不懂得分线程,所以只好用WHILE包含所有须运行的函数以达到多线程的效果。
由于使用了delay来降低游戏速度,以至游戏极有可能在不同速度的计算机上,有不同的效果。
在坦克中弹时,程序并不能立即把残余在萤幕上的“*”清除。虽经过反复调试,改善仍然不大。
在算法上出现许多无谓的从复,在编程技巧上还有待改善。
不懂得消去萤幕上闪烁的光标。
有须要进一步熟练C++,改善程序架构,以提高可读性及方便其他人进行维护。
最佳控作环境:DURON 700 、128M (本人所用)
若速度太慢可修改全局常量speed,数值越大速度越快,范围为1 至 35。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -