YTU OJ 2635 P4 游戏中的Human角色

17人阅读 评论(0) 收藏 举报
分类:

题目描述

在一个平面打斗游戏中,任何的角色(Role)都有血量(blood)和位置loc(此处loc是Location类的实例)属性。有了Role类,可以派生出不同的角色,如人、神仙、怪兽等。如下程序中,定义了Location类和Role类,人类(Human)中新增了姓名和攻击力数据成员,请为Human类设计成员函数,并实现Role类中的moveTo和addBlood两个成员函数。
请在begin和end中间写下需要的代码。你只能编辑并提交begin和end之间的代码。
#include <iostream>
using namespace std;
class Location
{
private:
    int x, y;
public:
    Location(int a, int b):x(a),y(b) {}
    int getX(){return x;}
    int getY(){return y;}
    void setXY(int a,int b) {x=a;y=b;};  //设置位置坐标
};
class Role
{
public:
    Role(int rblood, int rx, int ry):blood(rblood),loc(rx,ry) {}
    void moveTo(int rx, int ry);  //移动到(rx, ty)处,要改变loc的值
    void addBlood(int b); //增加血量,参数为负时,代表减少
protected:
    int blood;
    Location loc;
};
void Role::moveTo(int rx, int ry)
{
loc.setXY(rx,ry);
}
void Role::addBlood(int b) 
{
blood+=b;
}
//************* begin *****************
class Human: public Role
{
public:
private:
    string name;  // 姓名
    int attack;   // 攻击力
};
//************* end *****************
int main()
{
    string name;
    int att, blood, x, y;
    cin>>name>>att>>blood>>x>>y;
    Human hum(name,att,blood,x,y); //人name的攻击力att,血量blood,在(x,y)处
    hum.show();
    int incAtt, incBlood, newx, newy ;
    cin>>incAtt;
    cin>>incBlood;
    cin>>newx>>newy;
    hum.addAttack(incAtt);  //攻击力增加incAtt
    hum.addBlood(incBlood); //血量增加incBlood
    hum.moveTo(newx,newy);  //人移到了(news,newy)处
    hum.show();
    return 0;
}

输入

第一行:名字 血量 攻击力 位置,其中位置处是两个整数,代表平面x、y坐标
第二行:增加的攻击力
第三行:要增加的血量
第四行:新位置,用两个整数代表
输入的各部分之间用空格隔开

输出

分别用两行显示游戏角色的初始状态和调整参数后的状态
如“Avanda has 500 attack and 1000 blood in (4,3)”表示Avanda有500攻击力1000血量,在(4,3)位置处

样例输入

Avanda 500 1000 4 3
-300
200
2 5

样例输出

Avanda has 500 attack and 1000 blood in (4,3)
Avanda has 200 attack and 1200 blood in (2,5)

【AC代码】:

class Human: public Role
{
public: Human(string n,int a,int rb,int rx,int ry):Role(rb,rx,ry){name=n;attack=a;};
void show()
{
    cout<<name<<" has "<<attack<<" attack and "<<blood<< " blood in "<<"("<<loc.getX()<<","<<loc.getY()<<")"<<endl;
 
}
void addAttack(int aa)
{
    attack+=aa;
}
private:
    string name;  // 姓名
    int attack;   // 攻击力
};

查看评论

三维游戏中的地形编辑器的制作

介绍如何实现三维地形绘制,地形三维网络的生成,多纹理的混合应用,实现基本的地形刷,并实现对地形的刷绘,实现基本的地形编辑,生成高山,生成沟渠。
  • 2016年01月28日 10:15

P4 游戏中的Human角色

Description在一个平面打斗游戏中,任何的角色(Role)都有血量(blood)和位置loc(此处loc是Location类的实例)属性。有了Role类,可以派生出不同的角色,如人、神仙、怪兽...
  • qq_36776372
  • qq_36776372
  • 2017-04-10 10:51:13
  • 136

YTU 2635: P4 游戏中的Human角色

2635: P4 游戏中的Human角色 时间限制: 1 Sec  内存限制: 128 MB 提交: 524  解决: 328 题目描述 在一个平面打斗游戏中,任何的角色(Role...
  • qq_28954601
  • qq_28954601
  • 2016-02-08 12:50:01
  • 397

[YTU]_2635(P4 游戏中的Human角色)

题目描述 在一个平面打斗游戏中,任何的角色(Role)都有血量(blood)和位置loc(此处loc是Location类的实例)属性。有了Role类,可以派生出不同的角色,如人、神仙、怪兽等。如下程...
  • sxy201658506207
  • sxy201658506207
  • 2017-06-08 19:00:19
  • 287

YTU.2635: P4 游戏中的Human角色

2635: P4 游戏中的Human角色Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 794  Solved: 536[Submit][Status][...
  • JYL1159131237
  • JYL1159131237
  • 2018-04-18 14:26:07
  • 14

OJ积累--P4游戏中的human角色

/* *copyright (c)2015,烟台大学计算机学院 *All rights reserved *文件名称:project.cpp *作者:孙春红 *完成日期:2015年6月24日 *版本号...
  • yantaidaxuecjj
  • yantaidaxuecjj
  • 2015-06-24 21:32:49
  • 431

OJ第三批——Problem T: P4 游戏中的Human角色

问题及代码: Problem T: P4 游戏中的Human角色 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 449  Solve...
  • Timor7hao
  • Timor7hao
  • 2015-07-01 20:35:59
  • 393

游戏角色创建的看法

 现今的游戏设计中基本上都是开发者将游戏内任务建模好,在做成几中类型进行搭配.这样就产生一个问题,造成玩家在创建游戏角色时的自由空间很小,即使有一定的自由度也是很局限在已有模型中选择搭配,不能达到真正...
  • HowkWolf
  • HowkWolf
  • 2006-10-20 19:23:00
  • 819

YTU-OJ-P4 游戏中的Human角色

Problem T: P4 游戏中的Human角色 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 292  Solved: 177 [Sub...
  • MIKASA3
  • MIKASA3
  • 2015-06-24 09:27:08
  • 595

策略模式的应用——游戏中武器的选择

策略模式(Strategy Pattern):定义一系列算法类,将每一个算法封装起来,并让它们可以相互替换,策略模式让算法独立于使用它的客户而变化,也称为政策模式(Policy)。策略模式是一种对象行...
  • u011040361
  • u011040361
  • 2015-04-18 16:26:12
  • 313
    个人资料
    持之以恒
    等级:
    访问量: 6万+
    积分: 4001
    排名: 9899
    最新评论