Object C实现三国英雄对战

实验要求

  • 输出随机选择的英雄及其关键属性,输出单挑中每回合的过程、结果,以及最终胜负结果
  • 输出程序设计和运行过程中,相关设计体现的oo特性(数据隐秘性、封装性、继承、多态)

游戏介绍

英雄机制

每个英雄有生命值、能量值、攻击力、防御力和两个技能。

  • 普通攻击的伤害为 攻击力-防御力,当被攻击方的防御力大于攻击方的攻击力时,伤害为0
  • 两个技能中一个为次要技能,一个为主要技能;次要技能在能量不够时也有机率发动,但此时不会产生效果,而是会增加能量值;主动技能必须能量值足够时才能发动;技能的伤害机制与普通攻击不同,不同的技能伤害机制不同
  • 普通攻击有几率被闪避,但技能不能被闪避
  • 能量值在使用技能时被消耗,在英雄攻击、被攻击、使用技能、被技能攻击以及闪避时都会增加能量

对战机制

对战开始时会随机选择地点(辽东、巴蜀、江陵)和天气(晴空万里、大雨磅礴),如果英雄在自己国家内战斗那么他就占据地理优势,防御力会提升,相反防御力会降低;晴空万里会增加英雄攻击力,而大雨磅礴会降低对面英雄的攻击力;如果一个英雄在本国内,那么他防御力提升,对面英雄防御力不会下降,另一个英雄不在自己国家内,那么天气将会对他有利(晴空万里:自身攻击力提升 大雨磅礴:对面攻击力降低);如果两个英雄都不在自己国家内,那么防御力都会下降,根据天气两个英雄的攻击力同时上升或者下降。(注意:当两个英雄都不在自己的国家内时,如果有群雄类别的英雄,那么群雄英雄将视为在自己的国家内)
英雄对战采用回合制,每个回合英雄只能选择一种行为(普通攻击或者技能),如果十回合内有一方英雄生命值降为零一下,那么另一方英雄获胜;如果超过十回合双方都没有死亡,那么生命值多的一方获胜,生命值一样则为平局。

英雄介绍

蜀国英雄

张飞
生命值:15
能量值:3
能量上限:10
攻击力:5
防御力:5
次要技能:怒虎狂啸,提高自身的攻击力,能量消耗 4
主要技能:蛇影狂击,伤害技能,能量消耗 8

诸葛亮
生命值:14
能量值:5
能量上限:12
攻击力:4
防御力:7
次要技能:太极八阵,化解敌方下一次普通攻击,能量消耗 4
主要技能:谋策之刻,伤害技能,能量消耗 8

关羽
生命值:16
能量值:2
能量上限:12
攻击力:5
防御力:5
次要技能:罗刹之武,降低敌方的防御力,能量消耗 5
主要技能:春秋八法,伤害技能,能量消耗 8

吴国英雄

孙权
生命值:17
能量值:5
能量上限:12
攻击力:5
防御力:4
次要技能:帝气东临,降低敌方的攻击力和防御力,能量消耗 5
主要技能:业火净祭,伤害技能,能量消耗 8

黄盖
生命值:14
能量值:4
能量上限:12
攻击力:6
防御力:4
次要技能:地神魔铠,提高自身防御力,能量消耗 8
主要技能:荆棘之形,反弹敌方下回合的普通攻击,能量消耗 5

大乔
生命值:14
能量值:4
能量上限:12
攻击力:6
防御力:5
次要技能:幻舞迷魂,敌人下回合将无法攻击,能量消耗 6
主要技能:落雷天陨,伤害技能,能量消耗 7

魏国英雄

蔡文姬
生命值:15
能量值:2
能量上限:12
攻击力:6
防御力:5
次要技能:思无邪,回复自身部分生命值,能量消耗 3
主要技能:胡笳十八拍,伤害技能,能量消耗 8

夏侯惇
生命值:16
能量值:4
能量上限:12
攻击力:3
防御力:8
次要技能:噬血魔瞳,提高自身攻击力降低自身防御力,能量消耗 3
主要技能:不羁之刃,伤害技能,能量消耗 8

司马懿
生命值:15
能量值:4
能量上限:15
攻击力:5
防御力:5
次要技能:荒芜鬼域,将敌方部分生命值转化为能量值,能量消耗 8
主要技能:魑魅幻纱,伤害技能,能量消耗 5

群雄

吕布
生命值:10
能量值:0
能量上限:15
攻击力:5
防御力:5
次要技能:魔神降临,提高自身攻击力和防御力,能量消耗 8
主要技能:无双鬼雄,伤害技能,能量消耗 2

代码实现

一个Hero父类,其余英雄为Hero的子类
在这里插入图片描述
在这里插入图片描述

数据隐秘性

每个英雄的内部成员变量对于其他英雄是隐秘的,不可见的,体现了数据隐秘性

封装

外部方法可以通过get和set方法来获取和修改每个英雄内部的成员变量,体现了封装

继承

PKOneUnit方法在Hero父类中实现,每个英雄不用重写,直接继承该方法,体现了继承

多态

init方法、skill1方法和skill2方法在父类声明,但是没有具体实现,而是在每个英雄子类中实现,不同英雄的这三个方法不同,体现了多态

实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

游戏源码`

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值