刚开始接到这个做业时,不知道该从何入手,太多的东西须要了解和学习。接口的设置、界面的构造等等都是还没有接触过的东西。后来在老师屡次强调C++面向对象的特性以后,渐渐的理解了抽象、封装、继承和多态的重要性。简单来讲:一个再复杂的程序,都是能够当作一个又一个对象拼接起来的结果,加上C++对封装的要求,能够从每一个简单的对象入手,经过类的实现,构建起程序的基础模型,再在基础上一步一步地完善。至此,终于发现而且亲身体会到了面向对象的巧妙之处,在处理较大规模的程序时,没必要将每一步操做统筹到一块儿进行编程,而能够一块一块的实现。编程
根据个人分工定位,要创建而且根据须要完善类。
英雄类主要是攻击和调用技能的实现:
普通攻击能够直接实现:函数
void heroes::Attack(heroes &p) { cout << name << "攻击" << endl; p.HP -= attack; cout << p.name << "受到" << attack << "点伤害" << endl; if (p.HP <= 0) cout << "K.O." << endl; }
技能攻击则须要调用技能类的成员函数完成:学习
bool heroes::skill_attack(heroes &p) { cout << name << "技能攻击" << endl; if (useSkill == 1) { if (shitan::judge(*this)) { cout << name << "发动试探" << endl; Hurt(heroes &p); return true; } else { cout << "等级过低没法使用此技能,请从新选择技能" << endl; return false; } } if (useSkill == 2) { if (chengjie::judge(*this)) { cout << name << "发动惩戒" << endl; Hurt(heroes &p); return true; } else { cout << "等级过低没法使用此技能,请从新选择技能" << endl; return false; } } if (useSkill == 3) { if (zhansha::judge(*this)) { cout << name << "发动斩杀" << endl; zhansha::Hurt(heroes &p); return true; } else { cout << "等级过低没法使用此技能,请从新选择技能" << endl; return false; } } if (useSkill == 4) { if (kuangbao::judge(*this)) { AddAttackSpeed(*this); AddAttack(*this); Attack(heroes &p); return true; } else { cout << "等级过低没法使用此技能,请从新选择技能" << endl; return false; } } if (useSkill == 5) { if (shanxian::judge(*this)) { return true; } else { cout << "等级过低没法使用此技能,请从新选择技能" << endl; return false; } } if (useSkill == 6) { if (zhiliaoshu::judge(*this)) { Recovery(*this); return true; } else { cout << "等级过低没法使用此技能,请从新选择技能" << endl; return false; } } }
技能类即按照题目要求,实现不一样技能的功能,比较简单。
PS:设计类的时候实际上是但愿有一个界面来描述战斗过程,因此在每个功能中都写入了输出相应文字的功能,但在实际中还未能实现此功能,只能实现单独的战斗界面。this
英雄类:4 hours
技能类:2 hours
技能类的实现与英雄类类似,因此花费时间较少。设计
后期对类的完善:2 hourscode
对本次做业主要的问题就是“思路”,可能在代码的实现上仍是有必定的能力和想法,可是须要一个具体的思路来引导。因此在开始以前找了比较多的资料来学习完成这类程序的思路方法。也有在同窗发布的博客中找到颇有用的资料,总的来讲,在资料方面仍是有所收获的。对象
一、团队做业最重要的就是有明确的分工,而且按时完成本身份内的工做,这样才不会影响整个团队的进度
二、经过这次做业更加深刻地认识了面向对象的程序设计,体会到了在面对较大规模的程序时面向对象的重要性继承