第五周项目2(1)

来源:互联网 发布:整篇文章翻译软件 编辑:程序博客网 时间:2024/05/01 23:41
  1.  *问题描述:基于下面设计的游戏中角色类,补充完整需要的成员函数,使角色能按一定的规则行动。 
  2.  */  
  3. #include <iostream>   
  4. using namespace std;  
  5. class Role  
  6. {  
  7. public:  
  8.     void eat(int d); //吃东西,涨d血  
  9.     void attack(); //攻击别人,涨1血  
  10.     void beAttack(); //被攻击,失1血,血为0死掉  
  11.     bool isAlived(); //是否活着  
  12.     void setRole(string nam, int b); //设置  
  13.     void show(); //显示  
  14. private:  
  15.     string name;  
  16.     int blood;  
  17.     bool life;  
  18. };  
  19. void Role::eat(int d) //吃东西,涨d血  
  20. {  
  21.     if(isAlived())  
  22.         blood+=d;  
  23. }  
  24. void Role::attack() //攻击别人,涨1血  
  25. {  
  26.     if(isAlived())  
  27.         blood++;  
  28. }  
  29. void Role::beAttack() //被攻击,失1血,血为0死掉  
  30. {  
  31.     if(isAlived())  
  32.         blood--;  
  33.     if(blood==0)  
  34.         life=false;  
  35. }  
  36. bool Role::isAlived() //是否活着  
  37. {  
  38.     return life;  
  39. }  
  40. void Role::setRole(string nam, int b) //设置  
  41. {  
  42.     name=nam;  
  43.     blood=b;  
  44.     if(blood>0)  
  45.         life=true;  
  46.     else  
  47.         life=false;  
  48. }  
  49. void Role::show() //显示  
  50. {  
  51.     cout<<name<<" has "<<blood<<" blood, it is ";  
  52.     if(isAlived())  
  53.         cout<<"alived.";  
  54.     else  
  55.         cout<<"dead.";  
  56.     cout<<endl;  
  57. }  
  58. int main( )  
  59. {  
  60.     Role mary;  
  61.     mary.setRole("Mary", 4);  
  62.     mary.show();  
  63.     mary.attack();  
  64.     mary.eat(2);  
  65.     mary.beAttack();  
  66.     mary.beAttack();  
  67.     mary.show();  
  68.     return 0;  
  69. }  
0 0