摘要: 我们开始要进行牌局游戏了。前面的开发我都是代码与测试交织进行,代码先的时候多点。 但在写测试的时候玩玩发现代码不好测试,又去改代码。所以现在我们改下方式,考虑测试优先。 以测试优先的角度去思考,其实前面所有起进程的工作都过早了。应该还是直接测试数据结构的。 牌局游戏首先要发牌吧,因此我们最先应该测试 阅读全文
posted @ 2017-10-12 12:48 damnit 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 像Player进程那样增加TableServer代表桌子进程 增加TableSupervisor监控TableServer。使用同一个Registry,因此名字也改成LocalRegistry了。 因此Registry的启动代码,以及原来PlayerServer的register_name要做稍微修 阅读全文
posted @ 2017-10-12 10:38 damnit 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 建模桌子和座位 代码比较短小,直接贴吧。 model 里新建simple_table.ex 和 seat.ex, 项目里新增对应的test. 座位部分 defmodule Seat do def init(player) do %{ id: player |> Player.get_id, play 阅读全文
posted @ 2017-10-11 15:31 damnit 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 上回介绍了玩法,现在编写了玩法的简单建模。 做到现在感觉目前还没有使用umbrella的必要(也许以后会发现必要吧),model 应用完全可以合并到game_server。 代码还在https://github.com/rubyist1982/simple 上。 model 应用新增 simple_ 阅读全文
posted @ 2017-10-11 11:35 damnit 阅读(642) 评论(0) 推荐(0) 编辑
摘要: 抄以前的,做了点修改。 到目前为止,我们完成了玩家的数据和进程建模,现在介绍游戏玩法。 为什么我们还不做客户端接入、协议指定呢?为什么还没有网关和数据存储呢。在我接手的游戏, 这些通常已经定下来了,我没法改变。在我开始这个系列时,我也常常陷入这些细节而不知所措,感觉不把所有设施搞完备没法写代码。 但 阅读全文
posted @ 2017-10-10 14:32 damnit 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 上回说用Registry 做本地注册(跨服可以用syn,只是稍微麻烦点,需要模拟global注册机制,写个封装模块)。 修改game_server 项目的mix.exs, 增加应用启动 修改game_server.ex 实现,如下应用的监控树监管PlayerRegistry进程和PlayerSupe 阅读全文
posted @ 2017-09-30 14:18 damnit 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 有了玩家模型,我们试试让玩家进程跑起来。 需要搞个PlayerSupervisor来负责启动和监控玩家进程。 defmodule PlayerSupervisor do use Supervisor def start_link(_opts) do Supervisor.start_link(__M 阅读全文
posted @ 2017-09-30 13:02 damnit 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 删除model.ex 创建玩家模型 player.ex, 简单化,只有唯一标识,昵称,金币,够用了。 选择 map 代表数据,是为了扩展数据结构,方便增加功能。struct也是可以的。 add_num 和 cost_num 存粹是为了简化代码 一系列的get/set 是为了操作玩家数据用的(也可以减 阅读全文
posted @ 2017-09-29 15:29 damnit 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 反正是写到哪算哪。 创建umbrella项目 mix new simple_game --umbrella 创建model项目 cd simple_game\apps mix new model 创建 game_server 项目 同样在apps目录下 mix new game_server 最后项 阅读全文
posted @ 2017-09-29 14:26 damnit 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 用WebInstaller 安装半天也没下载成功文件。 改成直接下载erlang 和 elixir 预编译包了。 安装很简单,最后设置好环境变量。 cmd 执行 elixir -v 最后顺便下载了个git hub windows 客户端,以前都是内网用git。 这回希望能写完这个简单系列,发布代码出 阅读全文
posted @ 2017-09-29 14:06 damnit 阅读(440) 评论(1) 推荐(1) 编辑