第十三章综合项目--模拟打斗程序
初级项目
1.任务编号:
2.任务名称:模拟一个打斗程序
3.任务所属课程名称:类的定义、常用类、封装
4.任务难度:C-简单
5.任务描述:
1)编写一个控制台程序,实现一个简单的战斗程序。
2)首先定义一个基类英雄(Hero)
属性:(名字Name、血量HP、蓝量MP,基础伤害下限BaseHurtLow,基础伤害上限BaseHurtHigh,基础防御下限BaseDefenseLow,基础防御上限Base DefenseHigh)
构造方法:默认属性:血量1000,蓝量800,基础伤害下限100,基础伤害上限300,基础防御下限0,基础防御上限100
方法:基础攻击Attack())基础防御Defense()
攻击伤害=攻击下限到攻击上限的一个随机值,攻击伤害应减去被攻击者的防御值
3)定义一个打斗(Battle)类,用于控制交战。
类中包涵有一个方法FightGo(Hero a,Hero b),主要作用是:a先开始攻击b一下,然后b攻击a一下,互相来回攻击直至某个对象生命值为0为止,每次攻击对方可以选择
基础攻击还是技能攻击,扣除的生命值是在自己Attacklow和AttackHigh之间取一个随机值。方法中显示每次来回打斗的信息,包括对方英雄名字,扣除的生命值及剩余
的生命值等。
在main方法中定义2个英雄Hero对象,执行FightGo方法,来完成一次战斗过程。
6.提示
产生随机数可以参考Random类,
攻击进度控制System.Threading.Thread.Sleep(1000);/休眠1秒
参考代码-初级
先定义一个Hero类
再定义一个Battle类
主程序定义两个Hero对象
中级项目
1.任务编号:
2.任务名称:模拟一个打斗程序
3.任务所属课程名称:类的定义、常用类、封装、继承、多态
4.任务难度:B-适中
5.任务描述:
1)编写一个控制台程序,实现一个简单的战斗程序。
2)首先定义一个基类英雄(Hero)
属性:(名字Name、血量HP、蓝量MP,基础伤害下限BaseHurtLow,基础伤害上限BaseHurtHigh,基础防御下限BaseDefenseLow,基础防御上限BaseDefenseHigh)
构造方法:默认属性:血量1000,蓝量800,基础伤害下限100,基础伤害上限300,基础防御下限0,基础防御上限100
也可以用户自定义属性:
方法:基础攻击Attack() 基础防御Defense()
攻击伤害=攻击下限到攻击上限的一个随机值
3)再定义三个职业继承英雄类
战士(Soldier):
属性:(技能SkillName,技能伤害下限SkillHurtLow,技能伤害上限SkillHurtHigh,技能消耗蓝量SkillMP)
构造方法:战士构造方法中基础血量+300,蓝量-200,防御+50
方法:重写父类攻击方法Attack()
用户可选择发动物理攻击或技能攻击
物理攻击:攻击伤害=攻击者基础攻击值-被攻击者基础防御
技能攻击:攻击伤害=攻击者技能攻击值-被攻击者基础防御
注意:技能伤害消耗相应蓝值,蓝值不够不能发动技能攻击,只能发动物理攻击
射手(Shooter):
属性:(技能SkillName,技能伤害下限SkillHurtLow,技能伤害上限SkillHurtHigh,技能消耗蓝量SkillMP)
构造方法:射手构造方法中基础血量-300,攻击+120,防御-20
方法:技能伤害SkillAttack()
刺客(Assassin):
属性:(技能SkillName,技能伤害下限SkillHurtLow,技能伤害上限SkillHurtHigh,技能消耗蓝量SkillMP)
构造方法:刺客构造方法中基础伤害+120,基础血量-100,防御-20
方法:技能伤害SkillAttack()
同时定义构造函数用于初始化这些信息。
评论 (0)