- #ifndef SADF
- #define SADF
- #include<string>
- using namespace std;
- class Weapon
- {
- public:
- Weapon(string wnam, int f);
- int getForce();
- private:
- string wname; //名称
- int force; //威力
- };
- #endif
- /*因为重复包含头文件,
- 所以要在开头结尾加上#ifndef SADF
- #define SADF #endif
- */
#ifndef SADF #define SADF #include<string> using namespace std; class Weapon { public: Weapon(string wnam, int f); int getForce(); private: string wname; //名称 int force; //威力 }; #endif /*因为重复包含头文件, 所以要在开头结尾加上#ifndef SADF #define SADF #endif */
//文件2,类的定义,Role.h
- #include"Weapon.h"
- class Role
- {
- public:
- Role(string nam, int b, string wnam, int f); //构造函数
- ~Role(); //析构函数
- void eat(int d); //吃东西,涨d血
- void attack(Role &r); //攻击别人,自己涨血,同时失血
- bool isAlived(); //是否活着
- void show(); //显示
- private:
- string name;
- int blood;
- Weapon weapon;
- bool life;
- };
#include"Weapon.h"
class Role
{
public:
Role(string nam, int b, string wnam, int f); //构造函数
~Role(); //析构函数
void eat(int d); //吃东西,涨d血
void attack(Role &r); //攻击别人,自己涨血,同时失血
bool isAlived(); //是否活着
void show(); //显示
private:
string name;
int blood;
Weapon weapon;
bool life;
};
//文件3,类的实现,Weapon.cpp
- #include<iostream>
- using namespace std;
- #include"Weapon.h"
- Weapon::Weapon(string wnam, int f):wname(wnam),force(f) {}
- int Weapon::getForce()
- {
- return force;
- }
#include<iostream>
using namespace std;
#include"Weapon.h"
Weapon::Weapon(string wnam, int f):wname(wnam),force(f) {}
int Weapon::getForce()
{
return force;
}//文件4,类的实现,Role.cpp
- #include<iostream>
- #include"Weapon.h"
- #include"Role.h"
- using namespace std;
- Role::Role(string nam, int b, string wnam, int f):name(nam),blood(b),weapon(wnam,f)
- {
- if(blood>0)
- life=true;
- else
- life=false;
- }
- Role::~Role()
- {
- cout<<name<<"退出江湖..."<<endl;
- }
- void Role::eat(int d) //吃东西,涨d血
- {
- if(isAlived())
- blood+=d;
- }
- void Role::attack(Role &r) //攻击别人,涨1血
- {
- if(isAlived())
- {
- blood+=weapon.getForce();
- r.blood-=weapon.getForce();
- if(r.blood<=0)
- r.life=false;
- }
- }
- bool Role::isAlived() //是否活着
- {
- return life;
- }
- void Role::show() //显示
- {
- cout<<name<<" has "<<blood<<" blood, it is ";
- if(isAlived())
- cout<<"alived.";
- else
- cout<<"dead.";
- cout<<endl;
- }
#include<iostream>
#include"Weapon.h"
#include"Role.h"
using namespace std;
Role::Role(string nam, int b, string wnam, int f):name(nam),blood(b),weapon(wnam,f)
{
if(blood>0)
life=true;
else
life=false;
}
Role::~Role()
{
cout<<name<<"退出江湖..."<<endl;
}
void Role::eat(int d) //吃东西,涨d血
{
if(isAlived())
blood+=d;
}
void Role::attack(Role &r) //攻击别人,涨1血
{
if(isAlived())
{
blood+=weapon.getForce();
r.blood-=weapon.getForce();
if(r.blood<=0)
r.life=false;
}
}
bool Role::isAlived() //是否活着
{
return life;
}
void Role::show() //显示
{
cout<<name<<" has "<<blood<<" blood, it is ";
if(isAlived())
cout<<"alived.";
else
cout<<"dead.";
cout<<endl;
}文件5,主函数,demo.cpp
- #include <iostream>
- using namespace std;
- #include"Role.h"
- int main( )
- {
- Role mary("Mary", 500, "TuLong",200);
- Role jack("Jack", 10, "YiTian", 180);
- cout<<"---begin---"<<endl;
- mary.show();
- jack.show();
- cout<<"---1st round---"<<endl;
- jack.attack(mary);
- mary.show();
- jack.show();
- cout<<"---2nd round---"<<endl;
- mary.attack(jack);
- mary.show();
- jack.show();
- cout<<"---end---"<<endl;
- return 0;
- }
#include <iostream>
using namespace std;
#include"Role.h"
int main( )
{
Role mary("Mary", 500, "TuLong",200);
Role jack("Jack", 10, "YiTian", 180);
cout<<"---begin---"<<endl;
mary.show();
jack.show();
cout<<"---1st round---"<<endl;
jack.attack(mary);
mary.show();
jack.show();
cout<<"---2nd round---"<<endl;
mary.attack(jack);
mary.show();
jack.show();
cout<<"---end---"<<endl;
return 0;
}
本文介绍了一个简单的游戏程序设计案例,其中包括角色(Role)和武器(Weapon)两个类的定义与实现。通过这两个类,实现了角色间的攻击行为,并展示了如何在主函数中使用这些类来模拟战斗场景。
1116

被折叠的 条评论
为什么被折叠?



