被攻击减血,攻击可增加等级

/*
*  备忘录模式
*/
#include <myhead.h>

 //保存值
class mySavevalue  
{
public:
 mySavevalue(string user_name = "",
             int life_value = 100, 
             int magic_point = 100, 
             int rank_values = 1,
             int experience_value = 1000)
             :_user_name(user_name),
             _life_value(life_value),
             _magic_point(magic_point),
             _rank_values(rank_values),
             _experience_value(experience_value)
 {
 }
 mySavevalue& operator=(const mySavevalue &savevalue) 
 {
    	_life_value = savevalue._life_value;
     	_magic_point = savevalue._magic_point;
     	_rank_values = savevalue._rank_values;
     	_experience_value = savevalue._experience_value;
     	return *this;
 }

public:
 	string _user_name;     //用户名(或用户id(md5值))
 	int _life_value;       //红血
 	int _magic_point;      //蓝学
 	int _rank_values;      //等级
 	int _experience_value; //经验值
 	//其它值
};

//游戏角色
class Role  
{
public:
 Role(string user_name,
      int life_value,
      int magic_point,
      int rank_values,
      int experience_value)
      :_user_name(user_name),
      _life_value(life_value),
      _magic_point(magic_point),
      _rank_values(rank_values),
      _experience_value(experience_value)
 {}
 mySavevalue Save() //保存当前值
 {
  mySavevalue savevalue(_user_name, 
            	     _life_value, 
            	     _magic_point,
            	     _rank_values,
            	     _experience_value);
  return savevalue;
 }
 void Loadvalue(mySavevalue &savevalue)  //载入之前的值
 {
  	_life_value = savevalue._life_value;
  	_magic_point = savevalue._magic_point;
  	_rank_values = savevalue._rank_values;
  	_experience_value = savevalue._experience_value;
 }
 void Show()
 { 
  cout << "用户 : " 
       << _user_name.c_str()
       << ", 等级 : " 
       <<  _rank_values
       << ", 红血 : "
       << _life_value
       << ", 蓝血 : "
       << _magic_point
       << ", 当前经验值 : "
       << _experience_value
       << endl; 
 }
 void attack() //升级
 {
  	_magic_point -= 10; 
  	_experience_value += 250;
  	if (_experience_value == 1000)
	{
   		_rank_values += 1;
   		_experience_value = 0;
  	}
 }
 void Being_attacked() //被攻击
 {
  	_life_value -= 10; 
 }

private:
 	string _user_name;
 	int _life_value;
 	int _magic_point;
 	int _rank_values;
 	int _experience_value;
};

//保存的进度库
class LookafterSavevalue  
{
public:
 LookafterSavevalue()
 {}
 void Save(string name, mySavevalue savevalue)
 {
  	_mapSavevalue.insert(map<string, mySavevalue>::value_type(name, savevalue));
 }
 mySavevalue Load(string name)
 {
  	return _mapSavevalue[name];
 }

private:
	 multimap<string, mySavevalue> _mapSavevalue;
};


//测试案例
int main()
{
 LookafterSavevalue lookaftersavevalue;
 Role role("role_wang", 100, 100, 0, 0); 
 role.Show();   //初始值
 
 lookaftersavevalue.Save("role_wang", role.Save()); //保存状态
 
 role.attack();   
 role.Show();  //进攻后
 
 lookaftersavevalue.Save("role_wang", role.Save()); //保存状态
 
 role.Loadvalue(lookaftersavevalue.Load("role_wang")); //载入状态 
 role.Show();  //恢复到状态0
 
 role.attack();   
 role.Show();  //进攻后
 role.attack();  
 role.Show();  //进攻后
 role.attack();   
 role.Show();  //进攻后
 role.attack();   
 role.Show();  //进攻后
    role.Being_attacked(); 
 role.Show(); //被进攻后

 lookaftersavevalue.Save("role_wang", role.Save()); //保存状态

 role.Loadvalue(lookaftersavevalue.Load("role_wang")); //载入状态 
 role.Show();  //恢复到状态1
 getchar();
 return 0;
}

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值