炉石传说 C# 设计文档(序)
经过3个月的开发,有很多感触。
以前一直以为技术是开发成败的第一因素,现在发现,等到你代码写的时间够长,经验够丰富,什么功能都能随手完成,对于业务的分析能力变成了第一位。
炉石山寨版的BS版本用到的HTML5的SVG,我看了一个下午的教程,借鉴以前GUI+和HTML的经验,很快就能写点东西出来了。
WebSocket,Github上找了一个开源的C#项目,通讯这块也是几个小时就搞定了。Javascript不是很熟悉,当时闭包这样的一些概念也算听说过,Js也是无障碍就写成了。
整个项目的技术壁垒其实不是很高,难的是对于炉石的业务的理解。
设计一个项目,就是将项目分割成若干个子系统,然后用适当的设计模式,让代码出现在它该出现的地方。
一个项目的代码量,肯定是不断增加,然后通过重构减少,然后又加入新的子系统,导致代码量的增加,再通过重构减少,这样的螺旋形的折腾和反复(迭代)使得代码越来越完善。
同时,随着对于业务的理解,很有可能会对原来的设计产生颠覆性的修改。炉石的开发中,我3次做了颠覆性的设计的修改。
血的教训告诉我们,开发之前,一定要做好业务的研究。
如果你觉得你的代码这样写也不好,那样写也不对,不用纠结了,好好睡一觉,然后重新整理一下业务,修改一下你的业务模型,然后所有问题就迎刃而解了。
中国的外包公司,包括一些有名的大公司,都不喜欢写文档,或者文档落后与代码。
代码可以上线,可以取得业绩,文档似乎完全只是为了应付CMM的规定,所以,别说考虑文档的美观了,就是一个和代码同步的文档,对于大多数公司来说,也很奢侈。
很多人有一个观点,好的代码是不需要注释和文档的,代码就是最好的注释和文档。
其实,我觉得,文档不是伪代码,应该是对于业务的一种解释,以及编码的一个依据。
我觉得需要这些枚举,是通过怎样的调查分析得到的结论。
aaarticlea/png;base64,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" alt="" />
我觉得业务流程是怎样的,我通过分析业务,画出流程图得到的一个结果。
aaarticlea/png;base64,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" alt="" />
很多人说,炉石的C#代码通过反编译可以看得到,为什么要重复去山寨呢?
这段时间工作很空闲,写代码写得旧了,所以想通过山寨炉石来提高自己的分析和设计能力。
炉石其实你真正的考虑怎么设计的好,怎么使得你的设计可以同时满足BS,CS,网络版,单机版,也是非常不容易的。然后炉石的业务,如果很多地方不考虑扩展性,也不是很复杂,一个月足够完成所有的编码工作了。
但是,如果要考虑到扩展性,考虑到重复使用,考虑到IOC这样的东西,则需要好好考虑的。
例如,施放法术,
我写到最后就是一个施放法术的接口(抽象),然后各种法术的具体实现,
施法流程是调用了施放法术的接口,通过法术数据去调用具体的实现。
法术接口:
(博客园的插入代码推荐有了,旁边那个插入代码没有存在的意义了,个人觉得)
using Engine.Action;
using Engine.Card;
using Engine.Client;
using System;
using System.Collections.Generic; namespace Engine.Effect
{
public interface IAtomicEffect
{
/// <summary>
/// 对方复原操作
/// </summary>
/// <param name="game"></param>
/// <param name="actField"></param>
void ReRunEffect(ActionStatus game, String[] actField);
/// <summary>
/// 对英雄动作
/// </summary>
/// <param name="game"></param>
/// <param name="PlayInfo"></param>
/// <returns></returns>
String DealHero(ActionStatus game, PublicInfo PlayInfo);
/// <summary>
/// 对随从动作
/// </summary>
/// <param name="game"></param>
/// <param name="Minion"></param>
/// <returns></returns>
String DealMinion(ActionStatus game, MinionCard Minion);
/// <summary>
/// 获得效果信息
/// </summary>
/// <param name="InfoArray"></param>
void GetField(List<String> InfoArray);
}
}
一个伤害效果
using Engine.Action;
using Engine.Client;
using Engine.Control;
using Engine.Utility;
using System;
using System.Collections.Generic; namespace Engine.Effect
{
/// <summary>
/// 攻击效果
/// </summary>
public class AttackEffect : IAtomicEffect
{
/// <summary>
/// 效果表达式
/// </summary>
public String 伤害效果表达式 = String.Empty;
/// <summary>
/// 伤害加成
/// </summary>
public Boolean 伤害加成 = false;
/// <summary>
/// 获得效果信息
/// </summary>
/// <param name="InfoArray"></param>
void IAtomicEffect.GetField(List<string> InfoArray)
{
伤害效果表达式 = InfoArray[];
伤害加成 = ExpressHandler.GetBooleanExpress(InfoArray[]);
}
/// <summary>
/// 对英雄动作
/// </summary>
/// <param name="game"></param>
/// <param name="PlayInfo"></param>
/// <returns></returns>
String IAtomicEffect.DealHero(ActionStatus game, Client.PublicInfo PlayInfo)
{
int AttackPoint = ExpressHandler.GetEffectPoint(game, 伤害效果表达式);
//调整伤害值
if (伤害加成) AttackPoint += game.AllRole.MyPublicInfo.BattleField.AbilityDamagePlus;
if (PlayInfo.Hero.AfterBeAttack(AttackPoint))
{
game.battleEvenetHandler.事件池.Add(new Engine.Utility.CardUtility.全局事件()
{
触发事件类型 = CardUtility.事件类型枚举.受伤,
触发位置 = PlayInfo.Hero.战场位置
});
}
return Server.ActionCode.strAttack + CardUtility.strSplitMark + PlayInfo.Hero.战场位置.ToString() + CardUtility.strSplitMark + AttackPoint.ToString();
}
/// <summary>
/// 对随从动作
/// </summary>
/// <param name="game"></param>
/// <param name="Minion"></param>
/// <returns></returns>
String IAtomicEffect.DealMinion(ActionStatus game, Card.MinionCard Minion)
{
int AttackPoint = ExpressHandler.GetEffectPoint(game, 伤害效果表达式);
//调整伤害值
if (伤害加成) AttackPoint += game.AllRole.MyPublicInfo.BattleField.AbilityDamagePlus;
if (Minion.设置被攻击后状态(AttackPoint))
{
game.battleEvenetHandler.事件池.Add(new Engine.Utility.CardUtility.全局事件()
{
触发事件类型 = CardUtility.事件类型枚举.受伤,
触发位置 = Minion.战场位置
});
}
return Server.ActionCode.strAttack + CardUtility.strSplitMark + Minion.战场位置.ToString() + CardUtility.strSplitMark + AttackPoint.ToString();
}
/// <summary>
/// 对方复原操作
/// </summary>
/// <param name="game"></param>
/// <param name="actField"></param>
void IAtomicEffect.ReRunEffect(ActionStatus game, string[] actField)
{
int AttackPoint = int.Parse(actField[]);
if (actField[] == CardUtility.strYou)
{
//MyInfo
if (actField[] == Client.BattleFieldInfo.HeroPos.ToString("D1"))
{
game.AllRole.MyPublicInfo.Hero.AfterBeAttack(AttackPoint);
}
else
{
game.AllRole.MyPublicInfo.BattleField.BattleMinions[int.Parse(actField[]) - ].设置被攻击后状态(AttackPoint);
}
}
else
{
//YourInfo
if (actField[] == Client.BattleFieldInfo.HeroPos.ToString("D1"))
{
game.AllRole.MyPublicInfo.Hero.AfterBeAttack(AttackPoint);
}
else
{
game.AllRole.MyPublicInfo.BattleField.BattleMinions[int.Parse(actField[]) - ].设置被攻击后状态(AttackPoint);
}
}
}
}
}
/// <summary>
/// 实施效果
/// </summary>
/// <param name="singleEffect"></param>
/// <param name="game"></param>
/// <param name="RandomSeed"></param>
/// <returns></returns>
public static List<string> RunSingleEffect(EffectDefine singleEffect, ActionStatus game, int RandomSeed)
{
List<string> Result = new List<string>();
List<string> PosList = SelectUtility.GetTargetList(singleEffect.AbliltyPosPicker, game, RandomSeed);
foreach (string PosInfo in PosList)
{
var PosField = PosInfo.Split(CardUtility.strSplitMark.ToCharArray());
var strResult = string.Empty;
if (PosField[] == CardUtility.strMe)
{
switch (int.Parse(PosField[]))
{
case BattleFieldInfo.HeroPos:
Result.Add(GetEffectHandler(singleEffect, game, CardUtility.strMe + CardUtility.strSplitMark + BattleFieldInfo.HeroPos.ToString("D1")).DealHero(game, game.AllRole.MyPublicInfo));
break;
case BattleFieldInfo.AllMinionPos:
for (int i = ; i < game.AllRole.MyPublicInfo.BattleField.MinionCount; i++)
{
Result.Add(GetEffectHandler(singleEffect, game, CardUtility.strMe + CardUtility.strSplitMark + (i + ).ToString("D1")).DealMinion(game, game.AllRole.MyPublicInfo.BattleField.BattleMinions[i]));
}
break;
case BattleFieldInfo.AllRolePos:
Result.Add(GetEffectHandler(singleEffect, game, CardUtility.strMe + CardUtility.strSplitMark + BattleFieldInfo.HeroPos.ToString("D1")).DealHero(game, game.AllRole.MyPublicInfo));
for (int i = ; i < game.AllRole.MyPublicInfo.BattleField.MinionCount; i++)
{
Result.Add(GetEffectHandler(singleEffect, game, CardUtility.strMe + CardUtility.strSplitMark + (i + ).ToString("D1")).DealMinion(game, game.AllRole.MyPublicInfo.BattleField.BattleMinions[i]));
}
break;
default:
Result.Add(GetEffectHandler(singleEffect, game, PosInfo).DealMinion(game, game.AllRole.MyPublicInfo.BattleField.BattleMinions[int.Parse(PosField[]) - ]));
break;
}
}
else
{
switch (int.Parse(PosField[]))
{
case BattleFieldInfo.HeroPos:
Result.Add(GetEffectHandler(singleEffect, game, CardUtility.strYou + CardUtility.strSplitMark + BattleFieldInfo.HeroPos.ToString("D1")).DealHero(game, game.AllRole.YourPublicInfo));
break;
case BattleFieldInfo.AllMinionPos:
for (int i = ; i < game.AllRole.YourPublicInfo.BattleField.MinionCount; i++)
{
Result.Add(GetEffectHandler(singleEffect, game, CardUtility.strYou + CardUtility.strSplitMark + (i + ).ToString("D1")).DealMinion(game, game.AllRole.YourPublicInfo.BattleField.BattleMinions[i]));
}
break;
case BattleFieldInfo.AllRolePos:
Result.Add(GetEffectHandler(singleEffect, game, CardUtility.strYou + CardUtility.strSplitMark + BattleFieldInfo.HeroPos.ToString("D1")).DealHero(game, game.AllRole.YourPublicInfo));
for (int i = ; i < game.AllRole.YourPublicInfo.BattleField.MinionCount; i++)
{
Result.Add(GetEffectHandler(singleEffect, game, CardUtility.strYou + CardUtility.strSplitMark + (i + ).ToString("D1")).DealMinion(game, game.AllRole.YourPublicInfo.BattleField.BattleMinions[i]));
}
break;
default:
Result.Add(GetEffectHandler(singleEffect, game, PosInfo).DealMinion(game, game.AllRole.YourPublicInfo.BattleField.BattleMinions[int.Parse(PosField[]) - ]));
break;
}
}
}
return Result;
}
最后,通过对于业务的不断理解,有一些看上去不一样的东西变得一样了。
法术,光环,战吼,亡语,其实都是一样的
一些看上去一样的东西,变得不一样了
奥秘有的是修改触发行为,有的是追加效果;光环有的是影响战场的其他随从,有的是被战场影响
aaarticlea/png;base64,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" alt="" />
等到你将业务真正分析清楚了,写代码就是一个体力活了。
而且,作为程序员,修改自己的代码,大家都不情愿,辛辛苦苦写的代码不愿意修改。
如果文档先行,修改一下文档,大家还是很乐意的,不用测试,不用返工。而且修改文档是时间成本最小的。如果上线后再修改BUG,那个时间成本。。。。。
题外话:
VS14CTP已经开始使用了,ASPNET的vNext版本也开始尝试了,然后KRE的Self-Host功能也做个试验了,部署在远程服务器上,本地完全可以访问。
但是,性能不能和原生的IIS相比,园子里面有一篇文章介绍过的,地址忘记了,大概相差两三倍吧。
aaarticlea/png;base64,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" alt="" />
第一次玩MVC(技术面试的时候,这个好像一定要问的,没有玩过MVC好像就不懂ASP一样,一直纯手工写WebForm的人,情何以堪,IOC好像也是必问的,现在的技术面试太看重理论了)
,蛮有趣的,但是我有个疑问,MVC加上EF对于关系型数据库支持的很少,如何让MVC和NOSQL一起工作呢?
NOSQL的元数据对于MVC来说,总觉得会出现不兼容的情况。。。。
炉石传说 C# 设计文档(序)的更多相关文章
- DDD领域驱动设计 - 设计文档模板
设计文档模板: 系统背景和定位 业务需求描述 系统用例图 关键业务流程图 领域语言整理,主要是整理领域中的各种术语的定义,名词解释 领域划分(分析出子域.核心域.支撑域) 每个子域的领域模型设计(实体 ...
- Atitit.atiagent agent分销系统 代理系统 设计文档
Atitit.atiagent agent分销系统 代理系统 设计文档 1. 启动项目1 2. 首也2 3. 登录功能2 4. 用户中心2 5. 充值查询3 6. 授权下级代理4 7. 我的提成5 ...
- Net 通用权限管理系统源码 带数据库设计文档,部署说明文档
Net 通用权限管理系统源码 带数据库设计文档,部署说明文档 包括数据库设计文档部署安装文档源码数据库文件 下载地址:http://www.mallhd.com/archives/1389
- 基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案 郑昀 基于杨海波的设计文档(转)
郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ...
- Access数据库自动生成设计文档
在做Access数据库设计时,常常直接在access文件中建表,建字段,然后写设计文档时,又得重新再写一遍字段和表间关系.其实access数据库自己就支持自动生成数据库文档. 操作方法如下: 数据库工 ...
- 朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素
朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素 [下载文本PDF进行阅读] 本文我会来说说我认为架构评审中应该看的一些点,以及我写设计文档的一些心得.助你在架构评审中过五关斩六将,助 ...
- 厨娘ui设计文档
厨娘ui设计文档 一.概述 中国的饮食文化从古到今源远流长.在生活日益丰富的今天,人们对饮食的要求不仅仅是温饱,更讲究健康和美味.近年来,饮食甚至成为娱乐的一部分,关于吃的流行用语层出不穷,可见在当今 ...
- Msmq设计文档(赋源代码)
Msmq设计文档(赋源代码) Msmq设计文档 文件状态: [√] 草稿 [ ] 正式发布 [ ] 正在修改 文件标识: ECI-MSMQ v01 当前版本: 0.5 作 者: ...
- php-生成数据库设计文档
在线以及提供下载数据库设计文档 $dbserver = "192.168.128.190:42578"; $dbusername = "root"; $dbpa ...
随机推荐
- Field 'id' doesn't have a default value
首先原因在于没有设置主键自增长. mysql的自增长模式是IDENTITY. jpa标签: @Id @GeneratedValue(strategy=GenerationType.IDENTITY) ...
- 缓存篇(Cache)~第三回 HttpModule实现网页的文件级缓存
返回目录 再写完缓存篇第一回之后,得到了很多朋友的好评和来信,所以,决定加快步伐,尽快把剩下的文章写完,本篇是第三回,主要介绍使用HttpModule实现的文件级缓存,在看本文之前,大家需要限度Htt ...
- [javaweb]Java过滤器与包装设计模式的实用案例.
在filter中可以得到代表用户请求和响应的request.response对象,因此在编程中可以使用Decorator(装饰器)模式对request.response对象进行包装,再把包装对象传给目 ...
- [C#基础]基础知识一: 面向对象的基本知识.
激励自己有时间多看看.!! C#基础共分为七个部分: 一: 面向对象 二: 值类型, 引用类型, 字符串操作 三: 集合文件操作 四: 正则表达式 五: XML操作 六: 委托, 事件 七: 反射 1 ...
- Atitit usrQBM1603短信验证码规范
Atitit usrQBM1603短信验证码规范 短信验证码扩展至短信服务和验证码服务1 主要方法1 参考模板1 短信验证码扩展至短信服务和验证码服务 主要方法 Line 27: public cla ...
- Linux常用命令03
上篇我们写到,如何编辑文件,我们有时候,在编辑的时候,有可能会异常的退出,这样的话, linux会针对这个文件生成一个swp文件,当你下次进入vi模式时,就会提示你一个错误 这样,即使你按enter键 ...
- 快速入门系列--MVC--07与HTML5移动开发的结合
现在移动互联网的盛行,跨平台并兼容不同设备的HTML5越来越盛行,很多公司都在将自己过去的非HTML5网站应用渐进式的转化为HTML5应用,使得一套代码可以兼容不同的物理终端设备和浏览器,极大的提高了 ...
- php优点
PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写.PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本 ...
- .NET面试题解析(05)-常量、字段、属性、特性与委托
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 弱小和无知不是生存的障碍,傲慢才是!——<三体> 常见面试题目: 1. const和reado ...
- 《BI那点儿事》浅析十三种常用的数据挖掘的技术
一.前沿 数据挖掘就是从大量的.不完全的.有噪声的.模糊的.随机的数据中,提取隐含在其中的.人们事先不知道的但又是潜在有用的信息和知识的过程.数据挖掘的任务是从数据集中发现模式,可以发现的模式有很多种 ...