第十三章综合项目--模拟打斗程序

第十三章综合项目--模拟打斗程序

TomHanck4
2022-06-18 / 0 评论 / 1 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年06月20日,已超过1034天没有更新,若内容或图片失效,请留言反馈。

第十三章综合项目--模拟打斗程序

初级项目

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()
  同时定义构造函数用于初始化这些信息。

参考代码-中级

先定义一个Hero类,添加技能相关的属性,在Attack的方法中添加技能攻击

添加3个职业类

添加一个Battle类

主程序添加两个职业类及技能名

0

评论 (0)

取消