设计模式和部落冲突

远子 •  2020年11月02日

提示:如果你没有玩过《部落冲突》的话,这篇文章你应该看不懂。

《部落冲突》是一款手机游戏,设计模式是编程领域老生常谈的话题。

最近我同时在读《大话设计模式》、《JavaScript设计模式》、《React设计模式》、《设计模式之禅》这四本书。

今天我突然发现这两者之间有很多相似之处。

1. 介绍一下《设计模式》

目前主流的设计模式有 23 种,有个顺口溜:

  • “单抽工建原”:

    • 单例模式
    • 抽象工厂模式
    • 工厂模式
    • 建造者模式
    • 原型模式
  • “桥代理组装适配器,享元回家装饰外观”:

    • 桥梁模式
    • 代理模式
    • 组合模式
    • 适配器模式
    • 享元模式
    • 装饰模式
    • 门面模式
  • “访问者写好策略备忘录,观察模板迭代的状态,命令中介解释责任链”:

    • 访问者模式
    • 策略模式
    • 备忘录模式
    • 观察者模式
    • 模板方法模式
    • 迭代器模式
    • 状态模式
    • 命令模式
    • 中介者模式
    • 解释器模式
    • 责任链模式

2. 介绍一下《部落冲突》

《部落冲突》是一款 SuperCell 出品的,集塔防、对抗、建设于一体的手机游戏。

preview1.png

在游戏中,玩家可以采集或掠夺资源,用这些资源升级自己部落的防线,抵抗其他玩家的攻击。

下边是我的部落,已经 10 本了。黑色的是城墙,还有资源建筑、防御建筑、兵营之类的,别的玩家可以攻击我,如果成功会获得一部分我的资源。

preview2.png

当然我也可以攻击其他玩家,攻击别人需要部队,训练部队需要消耗资源。

部队有很多种类,每个角色有各自的特点和缺点。比如说:

  • 野蛮人俗称 “屌丝”,造价便宜,可以使用人海战术;
  • 巨人俗称 “胖子”,巨人血多,但是攻击力弱、移动速度慢;
  • 炸弹人对围墙的伤害很高,但是只攻击围墙;
  • 哥布林移动速度快,倾向于资源建筑,抢钱速度贼快,缺点是血实在太少了;
  • 气球兵可以在天上飞,地面的迫击炮、加农炮打不到;
  • ...

还有一些提供加成效果的法术药水,比如说雷电法术、狂暴法术、冰冻法术、毒药法术等等。

这个游戏的核心玩法是兵种搭配,我数了一下,现在的版本有 23 种兵、11 种法术,可想而知,这游戏数不清的套路。

preview3.png

下图是我在攻击别人的部落,我有 16 个气球兵,1 个女王还有一些药水,如果成功的话,我会得到 40w 金币,和 35w 圣水。

preview4.png

部落冲突的套路很多,但是玩家常用的套路就那么几个,像是“天胖流”、“狗球石法流”、“龙球流”... 这种玩法,我发现和设计模式是一样样的。

3. 有哪些共同点

模式也可以叫套路、打法、流派,那么:

  1. 设计模式中的 “单例模式” 也可以叫 “单例流”,“观察者模式” 也可以叫 “观察者流”;
  2. 部落冲突的 “天胖流” 也可以叫 “天胖设计模式”,“龙球流” 也可以叫 “龙球设计模式”;

模式也好,流派也好,打法也好,只是一个称谓。

模式是解决某种问题的最佳打法。在部落冲突中,模式是为了攻克敌人的防线,掠夺别人的资源;在编程中,模式是为了解决业务问题、提升代码质量。

这些模式经过前辈们的尝试验证,优化归类,最终总结出最佳实践,现在有很多现成的书籍将这些套路口口相传,传递给新一代的玩家或者程序员。

所以说,玩部落冲突实际上是在灵活组合各种设计模式,也许部落冲突的高玩很适合转行编程。

End.

(完)