问题及代码:
/*
*烟台大学计算机学院
*文件名称:xiangmu2(1).cpp
*作 者:闫安
*完成日期:2016年4月7日
*版 本 号:codeblocks 16.01
*
*问题描述:基于设计的游戏中角色类,补充完整需要的成员函数,使角色能按一定的规则行动
或改变状态。
*输入描述:无
*程序输出:任务的各种状态
*/
#include<iostream>
#include<cmath>
using namespace std;
class Role
{
public:
void setRole(string nam,string clo,int b);
void changecloth(string clot);
void attack();
void eat(int a);
void beAttack();
void show();
bool isAlived();
private:
string name;
string cloth;
int blood;
bool life;
};
void Role::setRole(string nam,string clo,int b)
{
name=nam;
cloth=clo;
blood=b;
}
void Role::changecloth(string clot)
{
cloth=clot;
}
void Role::attack() //攻击一次,血量+1
{
if(isAlived())
blood++;
}
void Role::eat(int a) //血量+a
{
if(isAlived())
blood+=a;
}
void Role::beAttack() //被攻击血量-2
{
if(isAlived())
blood-=2;
if(blood==0)
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<<"She is in "<<cloth<<" cloth."<<endl;
}
int main()
{
Role mary;
mary.setRole("Mary","red",4);
mary.show();
mary.attack();
mary.eat(2);
mary.changecloth("blue");
mary.beAttack();
mary.beAttack();
mary.show();
return 0;
}
运行结果:
知识点总结:
运用类的知识设定游戏人物,并进行简单运行