`

一个小试题:英雄角色PK

 
阅读更多

前段时间在网上看到一个公司的试题,题目不算严谨,我按照自己的想法写了一个小程序。测试多次,运行正常。先将题目和我做的答案附下。欢迎交流。

------------------------------------

三个英雄角色参与PK

每个英雄具有以下几个属性:生命值(为0时英雄倒下)、攻击力(每次攻击时扣除对方的生命值点数)、攻击间隔(每次攻击过后都要等待间隔时间才能进行下次攻击,首次攻击之前也要先等待间隔时间)

另外,每个英雄都拥有两个技能:攻击技能和防御技能,攻击技能在攻击对方时有一定概率发动,防御技能在被对方攻击时有一定概率发动,具体参数如下

 

BM: 

生命650 攻击力40 攻击间隔1.5s    

攻击技能(跳劈):每次攻击时有30%几率造成双倍伤害

防御技能(反弹):每次被攻击时有30%几率把我方受到的伤害反弹给对方,例如我方被攻击,对方攻击力30,扣除我方30点生命值,如果技能发动,则对方也要扣除30点生命值,伤害只能反弹一次(两个BM相互PK的时候不出现连续反弹)

 

DH:生命600 攻击力30 攻击间隔1s

攻击技能(吸血):每次攻击时有30%几率把造成的伤害转变为自己的生命值(对被攻击者造成伤害,并且将攻击伤害转变成自己的生命值),

但不能超过上限,例如我方攻击,扣除对方30的生命值,同时给自己增加30点生命值

防御技能(闪避):每次被攻击时有30%几率闪避不受伤害

 

MK:

生命700 攻击力50 攻击间隔2.5s

攻击技能(重击):每次攻击时有30%几率造成对方眩晕3s的效果(对方受到伤害后附加眩晕),对方英雄眩晕期间不能发起攻击,只能挨打,被攻击时也不能发起防御技能,且眩晕结束后对方英雄要重新等待攻击间隔,眩晕时间不能叠加,如果对方已经处于眩晕,我方又发动攻击技能,那么对方眩晕时间重新开始计算

防御技能(天神):每次被攻击时有60%的几率防御一半伤害,例如我方被攻击,对方攻击力为40,如果技能发动,则只扣除我方20点生命值

 

1.程序启动后,监听控制台输入

2.输入任意两个英雄名称(逗号分隔)发起PK,格式:BM,DH

3.系统输出PK详细过程,直到有一方胜出,格式如下:

BM攻击DH,BM发动攻击技能,DH未发动防御技能,BM:350->350,DH:280->200

....

BM胜出

------------------------------------------------

运行如下:


....................经过一番打斗之后..............



 -----------------------------

代码附上传文件中。
 

  • 大小: 9.2 KB
  • 大小: 9.8 KB
分享到:
评论

相关推荐

    NamePK小游戏源码 (java)

    "NamePK小游戏源码 (java)" 是一个专为Java初学者设计的学习资源,它提供了一个实际的游戏项目,帮助开发者深入理解Java编程语言的核心概念和实际应用。NamePK小游戏,顾名思义,可能是一个基于名字对战的小型游戏,...

    python pk小游戏.txt

    本Python程序是一个简单的文本型角色对战游戏。游戏的主要逻辑是通过随机选择玩家和敌人的角色,并根据角色的不同属性进行战斗。游戏中的角色包括骑士(Knight)、刺客(Assassion)以及弓箭手(Bowman)。每个角色...

    建材建筑行业周报:估值业绩PK,寻找新平衡.pdf

    建材建筑行业周报:估值业绩PK,寻找新平衡.pdf

    打字英雄(联机打字PK程序极适合学生)

    注:我是一个小学信息技术教师,根据上课的实际情况开发了本软件。 功能介绍: 1.支持个人赛,和分组对抗赛两种模式 2.支持自定义练习内容。 3.支持练习完毕名次公布(可指定公布前几名) 4.支持掉线再登陆接着掉线...

    “梦想杯”2017 年江苏省信息与未来小学生夏令营 IT 小能手 PK 之程序设计试题

    “梦想杯”2017年江苏省信息与未来小学生夏令营是一场旨在激发青少年对信息技术兴趣、提升编程技能的活动。在这个活动中,参赛的小学生们通过程序设计试题..."梦想杯"不仅是一个比赛,更是一个培养未来IT人才的摇篮。

    自己写的一个名字pk

    新手学java ,因为玩过网上的名字pk,就想着自己做一个~~ = = 只能在eclipse里开,运行main.java 是JFrame的 namePK.java 也可以直接运行,是控制台版本的……

    pk:一个从package.json中提取信息的小实用程序

    pk是一个小型实用程序CLI,用于查询JSON文件,例如package.json或manifest.json等。 获取特定字段的值 :flexed_biceps: pk scripts.start 解析semver版本 :snake: pk -s version 缩小json :mouse_face: pk -m ...

    pk.zip_Chatter_PK法_颤振pk_颤振分析pk法_颤振计算pk法

    这种方法的精髓在于将颤振问题转化为寻找一个临界点,即找到使得系统失稳的特定飞行条件或速度。 在 PK 法中,颤振速度通常被定义为飞行器达到某个速度时,其结构开始不稳定并发生周期性的振动。这个速度对于飞机的...

    Winfrom小游戏之pk

    在这个小游戏的实现中,可能会有两个玩家进行PK,每个玩家轮流猜测一个数字,然后比较数字大小,根据规则决定谁得分。这将涉及到类之间的交互,比如游戏类调用玩家类的方法来执行动作,然后更新各自的分数。 在...

    flash做的名字PK的小游戏~很简陋

    标题中的“flash做的名字PK的小游戏~很简陋”表明这是一个使用Adobe Flash软件开发的简单游戏,主要功能是让玩家用自己或他人的名字进行对战。Flash是一种曾经广泛用于创建交互式网页内容、动画和游戏的平台,尤其是...

    PK脚本小合集

    PK脚本小PK脚本小合集.exe

    国际化战略:华为PK海尔.docx

    国际化战略:华为PK海尔

    html+css实现的PK进度条.根据双主的数据生成相应长度的红色蓝色条

    2. **背景图元素**:`pk_bg.gif`可能是一个用于进度条背景的图像,可以包含两条平行的线条,分别代表红蓝两方。这可以通过`<img>`标签引入,并设置为背景图片。 3. **进度条条纹元素**:两个单独的`<div>`元素,分别...

    Scratch 双人 PK 操作游戏:双人战场.sb3

    游戏背景:一只神秘的时空之手正在向那些它认为值得在多个宇宙中战斗的人伸出援手。有些人可能是自愿加入战斗的。有些人可能别无选择。一些人试图反击,但失败了。不管是什么原因,他们现在都在这里。他们唯一能做的...

    matlab加法运算程序代码-Matlab-Toolbox:用于处理PK-Sim:registered:或MoBi:registered:模型的Matlab:registered:函数集合

    PK-Sim:registered: 或 MoBi:registered: 中开发的模型。 例如,Matlab:registered: 环境可用于更改模型中的参数、模拟模型并分析结果。 这允许在模型分析阶段进行高效操作,使用 Matlab:registered: 中可用的编程...

    数独联网对战APP源代码.rar

    主要功能:联网数独PK,单机,排行榜,注册登录 数独联网对战APP,可做毕业设计,课程设计,期末大作业,也可练手。 主要功能:联网数独PK,单机,排行榜,注册登录 数独联网对战APP,可做毕业设计,课程设计,...

    language-ur_PK:ur_PK的语言包

    【标题】"language-ur_PK:ur_PK的语言包"指的是为巴基斯坦乌尔都语(Urdu,代码为ur_PK)定制的软件语言包。这个包是根据提供的翻译内容自动生成的,目的是为了让软件用户界面适应乌尔都语使用者的需求。 【描述】...

    PK2400 通信工具

    "PK2400通信工具"是一个专门针对PK2400数据采集设备的软件解决方案,主要用于实现数据的高效采集和处理。LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是这款工具的核心,它是一个由美国国家仪器...

    万字解析小程序(1):小程序 PK APP = 无解 ?

    看小程序这个赛道,不该看 “小程序 PK APP”,也不该看“微信 PK Android”,而是看“微信 PK 智能手机”。 哪里错了? 为了形成“短平快”的判断,我们经常会贴标签。 比如:实习生小姑娘一脸花痴的说“我的idol太...

Global site tag (gtag.js) - Google Analytics