炉石传说的开发,已经有30个工作日了. 关于法术的定义方法,有过一次重大的变更:法术效果是整个炉石的核心,正是因为丰富的法术效果,才造就了炉石的可玩性. 原来构思的时候,对于法术效果没有充分的理解,所以只将效果数据做成了常数,例如 造成5点伤害. 随着更加深入的解除,发现还有 毁掉你的武器,对所有随从造成武器攻击力的伤害,这样的话,效果是一个 表达式. 然后考虑到,有些追加效果,例如,对某个随从造成2点伤害,如果这个随从没有死,则抽一张牌, 这里就牵涉到了根据条件追加效果的处理. 同时,德鲁伊的…
炉石传说山寨的工作一直在进行着,在开发过程中深深体会到,对于业务的理解和整个程序的架构的整理远比开发难得多. 在开发过程中,如果你的模型不合理,不准确,很有可能造成代码的混乱,冗余,难以维护和扩展性比较差等问题. 当然,除去领域专家之外,很少人对于一个新的事物可以在一开始就把握住整个核心业务. 接下来讲讲整个程序的构造: Card类库:将整个业务逻辑封装在里面,包括了服务器和客户端的通信逻辑.通信协议的编码和解码.现在是为了炉石定制的,以后想改写成更加通用的. CardHelper:一个辅助程序…
最近在大连的同事强力推荐我玩 炉石传说,一个卡牌游戏.加上五一放一个很长很长的假期,为了磨练自己,决定尝试开发一个C#的炉石传说. 这件事情有人已经干过了,开发了一个网页版的炉石,但是貌似不能玩.... http://cnodejs.org/topic/529c1366a6957a0809485f3d 如果这位同志看到这篇文章,请一定和我联系!! rudermail@qq.com或Q我377372779 第一天 开始学习炉石传说的玩法,最好的方法是不停的玩游戏. 一个应用是否逻辑清晰,取决于你对…
源代码已经整理过了,去除了不需要的项目. 注意:以前文章中出现过的Git已经变更过了,请以前关注过,Fork过的朋友,重新Fork一下. GitHub地址 卡牌XML文件的做成:(Git上面是没有XML文件的,原因是数量比较多,更新比较频繁,所以,运行游戏前,请自行生成) 代码里面有一个CardHelper的工程,运行这个工程: 资料导入导出…
炉石的设计,最核心的内容是法术效果. 法术卡牌,无疑是法术的集中体现,但是,法术效果除了在法术卡牌之外,也不除不在. 随从的战吼,亡语,奥秘的揭示等等都是法术效果的体现. 法术卡牌在炉石里面有很多种(200种),但是具体整理后,大约也只有10个种类,每个种类通过法术对象的指定方式,效果点数的不同排列组合,演化出了不同卡牌效果. 例如攻击类的卡牌,  通过攻击次数的不同(奥术飞弹是3次),攻击对象不同(有的是只能攻击随从,有的只能攻击英雄,有的两者都可以), 攻击方向不同(有的可以攻击对方,有的是…
原来这个项目,一直想做成CS模式的,BS模式对于炉石这样的游戏来说比较困难. 暴雪到现在也只出了 Windows 和 iPad版本的炉石,最大的问题还是在于如何在小屏幕下,实现最佳的客户体验. Windows和iPad的屏幕不会太小,所以操作起来不会出现很大的问题,但是如果是手机的话,对于操作的客户体验是一个巨大的挑战. iOs系统还可以限制iPad上运行,不能在iPhone上运行.Android的话,估计很难区别到底是Pad还是Phone. (iPhone通过特殊手段还是可以运行炉石的) 如果…
法术资料说明 1.资料的准备 从GitHub上面获得的工程里面,是没有XML卡牌资料配置的,这个是需要你自己生成的. 打开炉边处说的客户端 然后按下  卡牌资料生成 将炉石资料文件设定为 Github上面的卡牌整理版本文件. XML文件夹则可以选择一个任意目录. 然后按下  导出到 XML ,则会自动生成XML文件夹和各个卡牌资料文件. 如果卡牌整理版本文件没有更改,则这个操作只需要做一次就可以了. 感谢网友chucklu的意见,由于NET4.0版本的问题,有些机器不能正常序列化 这个问题正在调…
昨天买了一个月的1G 1核的服务器,由于不是新用户,所以没有享受到阿里的6个月免费的优惠. (阿里脑残,为什么不对于续费或者升级免费呢?) 在服务器的通讯上面已经OK了,完全绕过了ASP.NET,就是单纯的服务器和浏览器在通讯,页面也只是静态的页面,纯HTML5 + JS. 通讯是WebSocket,绘图SVG.不知道为什么,对于固定的文字,UC的文字绘制是OK的,对于JSON反序列化的对象,所有的绘制都是有问题的. 初步怀疑是由于使用了汉字,然后没有设置编码,造成了JS的本地反序列化不对. 服…
一.数字 int(..) 二.字符串 replace/find/join/strip/startswith/split/upper/lower/format tempalet ='i am {name},age:{age}' v1 =tempalet.format(name='alex',age=19) v2 =tempalet.format(**{"name":'alex',"age":19}) #不加**会报错,**kwargs print(v1,v2) 三.列…
前言   QCustomPlot开发笔记系列整理集合,这是目前使用最为广泛的Qt图表类(Qt的QWidget代码方向只有QtCharts,Qwt,QCustomPlot),使用多年,系统性的整理,过目并整理了原有文档,本系列旨在系统解说并逐步更新其各种Demo示例.   多年前文章   (本篇不再整理了)  <Qt开发笔记之QCustomPlot:QCustomPlot介绍.编译与使用>   QCustomPlot介绍 简介   QCustomPlot是一个小型的qt画图标类,效果可以,易用,…