第8周项目4:游戏中的角色类增强版(2)
来源:互联网 发布:手机淘宝售后怎么删除 编辑:程序博客网 时间:2024/04/30 13:34
/* * Copyright(c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:第8周项目4:游戏中的角色类增强版(2) * 作者:于子娴 * 完成日期:2016.4.20 * 版本号:v1.0 * * 问题描述:在上面已经建好的项目基础上,将Weapon类的数据成员改为数组,以支持一个角色可以带多件武器的需求,为此,在原类基础上,改造及增加的数据成员和成员函数至少包括: * 输入描述: * 程序输出: *///1.game.h:类声明#ifndef GAME_H_INCLUDED#define GAME_H_INCLUDED#include <string>using namespace std;class Point //Point类声明{public: //外部接口 Point(int x=0, int y=0); int getX(); int getY(); double distance(const Point &p); //返回与另外一点p之间的距离 void moveTo(int x, int y); //移到另外一点 void move(int dx, int dy); //从当前位置移动private: int x, y; //座标};class Weapon{public: Weapon(string wnam, int f, double k); Weapon(const Weapon&); string getWname(); int getForce(); //返回杀伤力 double getKillRange(); //返回杀伤距离private: string wname; //名称 int force; //杀伤力 double killRange; //杀伤距离};class Role{public: Role(string nam, int b, Point l, Weapon w); //构造函数 ~Role(); //析构函数 void eat(int d); //吃东西,涨d血(死了后吃上东西可以复活) void attack(Role &r); //攻击别人,自己涨血,同时对方被攻击失血。血量取决于当前用的武器 void beAttack(int f); //被别人攻击,参数f是承受的攻击力 double distance(Role &r); //返回与另一角色的距离 bool isAlived(); //是否活着 void moveTo(int x, int y); //移到另外一点 void move(int dx, int dy); //从当前位置移动 void show(); //显示 void changeWeapon(int wno); //换手中的武器private: string name; //角色名称 int blood; //当前血量 bool life; //是否活着 Point location; //位置 Weapon weapon; //武器 Weapon weapons[N]; //武器,N为定义的常变量 int weaponNum; //武器数目 int holdWeapon; //现在手持哪一件武器(用武器数组的下标做标识)。 //0 ≤ holdWeapon < weaponNum //初始时为空手,空手时holdWeapon值为-1,将-1定义为常变量为宜)};#endif // GAME_H_INCLUDED//2.point.cpp,定义点类,表示位置#include <iostream>#include "game.h"using namespace std;int main( ){ Weapon w1[1]= {Weapon("Gold stick",200, 100)}; //金箍棒 Weapon w2[3]= {Weapon("Fire-Tip Lance",180,300), //火尖枪 Weapon("Universal Ring",100,500), //乾坤圈 Weapon("Sky Muddling Damask",50,1000) //混天绫 }; Role wuKong("WuKong", 500, Point(0, 0), w1, 1); Role neZha("NeZha", 210, Point(30,30), w2, 3); wuKong.changeWeapon(0); neZha.changeWeapon(0); cout<<"---begin---"<<endl; wuKong.show(); neZha.show(); cout<<"---1st round---"<<endl; wuKong.attack(neZha); wuKong.show(); neZha.show(); cout<<"---2nd round---"<<endl; neZha.changeWeapon(2); neZha.attack(wuKong); wuKong.show(); neZha.show(); cout<<"---3rd round---"<<endl; neZha.moveTo(100,100); wuKong.attack(neZha); wuKong.show(); neZha.show(); cout<<"---4th round---"<<endl; neZha.attack(wuKong); wuKong.show(); neZha.show(); cout<<"---then---"<<endl; neZha.attack(wuKong); neZha.attack(wuKong); wuKong.attack(neZha); wuKong.show(); neZha.show(); cout<<"---end---"<<endl; return 0;} .
0 0
- 第8周项目4:游戏中的角色类增强版(2)
- 第8周项目4——游戏中的角色类增强版
- 第8周【项目4-游戏中的角色类增强版】
- C++第8周项目 数组和指针 【项目4-游戏中的角色类增强版】 (复习新版)
- 第八周项目4游戏中的角色类增强版
- 第八周上机实践项目4(2):游戏中的角色类增强版
- 第八周项目四 游戏中的角色类增强版
- 第八周上机实践项目——项目4-游戏中的角色类增强版-问题(2)
- 第八周项目(2)-游戏中的角色类增强版
- 第5周项目2-游戏中的角色类
- 第八周上机实践项目——项目4-游戏中的角色类增强版-问题(3)
- 游戏中的角色类增强版
- 补充程序之游戏系列— 4 游戏中的角色类增强版 (2)
- 第5周项目二—游戏中的角色类
- 第八周上机实践项目4(1):游戏中角色类增强版
- 第八周项目四(2)-游戏中角色类的增强版
- 第5周-项目2-游戏中的角色类(2)
- 第5周项目2:游戏中的角色类(2)
- iOS开发中实现UITableView的Cell左划删除等自定义功能
- 【JAVA学习】类的继承
- JTAG、SBW、BSL 三种接口的区别
- 算法导论之P、NP、NPC问题
- 正则表达式匹配任意字符(包括换行符)的写法
- 第8周项目4:游戏中的角色类增强版(2)
- IOS集成到支付宝的步骤及问题
- 恢复oracle数据到以前的某个时间点
- linux文本管理
- android 5.0 eclipse开发环境搭建
- 结构体大小的计算
- QT中常用的类
- spark源码阅读笔记Spark原理(一)基本前提
- Java面试题之精选最常见的面试真题 上