csharp基础练习题:PatternCraft - 观众【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

csharp基础练习题:PatternCraft - 观众【难度:1级】:

Visitor设计模式可被使用,例如,以确定攻击如何在星际游戏涉及不同量的损坏的一个单元.

该模式由委托责任不同类的.

当一个单位受到伤害它可以告诉游客如何处理本身.

你的任务

完成代码,这样,当一个Tank攻击Marine需要21损伤,如果一个Tank攻击Marauder需要32损坏.

海军最初的健康应设置为100和掠夺者的健康应设置为125.

你有3类:

- Marine:有一个health财产和’接受(游客)方法    -Marauder:有一个health财产和'接受(游客)方法
   - TankBullet:访问者类.有visitLight(单位)visitArmored(单位)方法

Resouces

- PatternCraft>观众
   - SourceMaking>观众
   - 维基百科>观众

PatternCraft系列

- 状态模式
   - 策略模式
   - ** 访问者模式**
   - 修饰模式
   - 适配器模式
   - 命令模式

原来[PatternCraft系列(由约翰·林奎斯特)(https://www.youtube.com/playlist?list=PL8B19C3040F6381A2)是Youtube视频的集合,解释了一些设计模式以及如何使用它们(或者可能是)在星际争霸.

编程目标:

using System;
public interface IVisitor
{
    void VisitLight(ILightUnit unit);
    void VisitArmored(IArmoredUnit unit);
}
public interface ILightUnit
{
    int Health { get; set; }
    void Accept(IVisitor visitor);
}
{
    int Health { get; set; }
    void Accept(IVisitor visitor);
}
public class Marine : ILightUnit


测试样例:

using System;
using NUnit.Framework;
[TestFixture]
public class KataTestf
{
    [Test]
    public void _0_VisitLight()
    {
        ILightUnit light = new Marine();
        light.Accept(bullet);
        Assert.AreEqual(100 - 21, light.Health);
    }
    [Test]


最佳答案(多种解法):

点击查看答案

更多关联题目:

免责申明

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars.com/
https://www.codewars.com/kata/patterncraft-visitor

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值