狭路相逢勇者胜
来源:互联网 发布:淘宝上洗纹身的管用吗 编辑:程序博客网 时间:2024/05/01 10:17
描述:
有两个战士在战斗,每个人每回合攻击一次,直到其中一人的血量<=0。写一个方法来返回胜利者的名字。现有一个Fighter类,如下:
public class Fighter { public string Name; public int Health, DamagePerAttack; public Fighter(string name, int health, int damagePerAttack) { this.Name = name; this.Health = health; this.DamagePerAttack = damagePerAttack; }}
例如:
declareWinner(new Fighter(“佐助”, 10, 2), new Fighter(“鸣人”, 5, 4), “佐助”) => “佐助”
佐助攻击鸣人; 鸣人剩余三点血.
鸣人攻击佐助; 佐助剩余六点血.
佐助攻击鸣人; 鸣人剩余一点血.
鸣人攻击佐助; 佐助剩余二点血.
佐助攻击鸣人: 鸣人血量为-1,已死亡. 佐助胜出.
MyCode:
public class Kata { public static string declareWinner(Fighter fighter1, Fighter fighter2, string firstAttacker) { int h1 = fighter1.Health,h2 = fighter2.Health; int a1 = fighter1.DamagePerAttack,a2 = fighter2.DamagePerAttack; while(h1 > 0 && h2 > 0) { if(fighter1.Name == firstAttacker) { h2 = h2 - a1; firstAttacker = fighter2.Name; } else { h1 = h1 - a2; firstAttacker = fighter1.Name; } } return h1 <= 0 ? fighter2.Name : fighter1.Name; }}
CodeWar:
using System.Linq;public class Kata { public static string declareWinner(Fighter fighter1, Fighter fighter2, string firstAttacker) { var fighters = new [] { fighter1, fighter2 }; var Attacker = fighters.Single(f => f.Name == firstAttacker); var Defender = fighters.Single(f => f.Name != firstAttacker); Defender.Health -= Attacker.DamagePerAttack; if(Defender.Health <= 0) { return Attacker.Name; } return declareWinner(fighter1, fighter2, Defender.Name); }}
0 0
- 狭路相逢勇者胜
- 古华山一条路,狭路相逢勇者胜
- 经典战役—2004Nollelva之狭路相逢勇者胜
- 二十一、狭路相逢勇者生
- 亮剑——狭路相逢智勇者胜
- 亮剑——狭路相逢智勇者胜
- 狭路相逢Android胜:智能手机市场深度分析
- 适者生存,勇者胜~!
- 和父母“狭路相逢”
- 腾讯360再次狭路相逢
- 勇者无极
- 勇者斗恶龙
- 勇者砍恶龙
- 勇者斗恶龙
- 勇者斗恶龙
- 勇者斗恶龙
- 勇者斗恶龙
- 电商争霸战 狭路相逢谁能胜
- 2016阿里巴巴73款开源产品全向图
- 如何将github的项目直接导入到Android studio中
- Scrollview+ListView嵌套listview显示不全的问题
- 《程序员》Part2 2010年真题下
- 分布式架构高可用架构_Keepalived+Nginx实现高可用Web负载均衡
- 狭路相逢勇者胜
- java 生成数字,字符,特殊字符组合方式代码
- TextRank算法自动摘要的Java实现
- OC block的回环引用
- sprintf() 格式化输出函数
- 将指定文件夹下的所有文件打包下载
- C++学习:list容器详解(一)
- area range region scope区别
- css:font字体