有基类warrior和其派生类ninja dragon iceman wolf lion,现在有红蓝两个阵营,每个阵营都按照自己的顺序循环产生武士,并且红蓝之间有城市,武士会按照城市前进,如何保存武士的阵营信息并且更新武士的城市信息,并且保证能够调用武士的成员c++
时间: 2024-02-17 12:00:24 浏览: 117
可以使用类和继承的特性来实现这个功能。首先,可以创建一个基类Warrior,其中包含了所有武士共有的属性和方法,例如名称、血量、攻击力、防御力等等。然后,可以创建派生类Ninja、Dragon、Iceman、Wolf和Lion,这些派生类继承自Warrior类,并且包含各自特有的属性和方法。
接着,可以创建红蓝两个阵营的类,它们包含了产生武士的顺序、产生武士的方法、武士的数量等信息。同时,还可以创建城市类,用于记录武士所在的城市信息、城市的战斗情况等。
最后,可以将武士的阵营信息和城市信息保存在每个武士对象中,这样可以方便地更新武士所在的城市信息,并且能够调用武士的成员函数。
以下是一个简单的C++代码示例:
```c++
class Warrior {
public:
string name; // 武士名称
int hp; // 血量
int attack; // 攻击力
int defense; // 防御力
int camp; // 所属阵营
int id; // 武士ID
Warrior(string n, int h, int a, int d, int c, int i) {
name = n;
hp = h;
attack = a;
defense = d;
camp = c;
id = i;
}
void attack(Warrior* enemy) {
// 攻击敌人
}
void defense(Warrior* enemy) {
// 防御
}
void die() {
// 死亡
}
// 其他成员函数
};
class Ninja : public Warrior {
public:
// 特有属性和方法
};
class Dragon : public Warrior {
public:
// 特有属性和方法
};
class Iceman : public Warrior {
public:
// 特有属性和方法
};
class Wolf : public Warrior {
public:
// 特有属性和方法
};
class Lion : public Warrior {
public:
// 特有属性和方法
};
class RedCamp {
public:
int order[5]; // 武士产生顺序
int warriors[5]; // 各武士数量
int cur; // 当前产生的武士序号
RedCamp() {
// 初始化
}
Warrior* createWarrior() {
// 产生武士
}
// 其他成员函数
};
class BlueCamp {
public:
int order[5]; // 武士产生顺序
int warriors[5]; // 各武士数量
int cur; // 当前产生的武士序号
BlueCamp() {
// 初始化
}
Warrior* createWarrior() {
// 产生武士
}
// 其他成员函数
};
class City {
public:
int id; // 城市ID
int flag; // 旗帜所属阵营
Warrior* redWarrior; // 红方武士
Warrior* blueWarrior; // 蓝方武士
City(int i) {
id = i;
}
// 其他成员函数
};
```
阅读全文
相关推荐
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)