抄以前的,做了点修改。

到目前为止,我们完成了玩家的数据和进程建模,现在介绍游戏玩法。

为什么我们还不做客户端接入、协议指定呢?为什么还没有网关和数据存储呢。在我接手的游戏,

这些通常已经定下来了,我没法改变。在我开始这个系列时,我也常常陷入这些细节而不知所措,感觉不把所有设施搞完备没法写代码。

但其实,这些和游戏服的逻辑关系不大。游戏服的本质就玩家建模、玩法等,有了这些就已经足够跑逻辑,跑测试了;

至于其他则属于外围的、较独立的东西,属于可以稍后考虑的。至于进程注册查找机制,由于它是分布式系统的关键,因此早点考虑还是

必要的,尤其它还影响你编码的风格。好了,不废话了。开始描述下扑克玩法,我们那里管它叫“抓木虱",

我不记得是具体是怎么样的了,反正下面的规则能玩就行如下

玩家数: 好像没有什么限制,只要牌够?

总牌数: 除去大小王

玩家牌数:每人开始发2张牌,最多可以补1张,也就是总共3张

单张牌的点数:A 到 10 为 1到10, J Q K 为 10

2张牌的点数 (P1 + P2) mod 10   如 6 + 3 = 9, J + 9 = 9

3张牌的点数(P1 + P2 + P3) mod 10

特殊牌: A  在三张中可以变为任意其他牌点,但不能变色

牌型:

  • 天公9点: 2张牌点数为9,在任何人补牌前翻出才算
  • 天公8点: 2张牌点数为8, 在任何人补牌前翻出才算
  • 同花顺: 3张牌连续点数并且是同花色, 我忘记允许连续方式了,假定为 n, n+ 1,n+2 (n = 2。。。J)
  • 三条: 3张点数一样的
  • 顺子:非同花3张连续牌
  • 同花: 3张同花色
  • 其他:三张或2张直接计算点数

规则是这样的:

天公9点 > 天公8点 > 同花顺 > 三条 > 顺子 > 同花 >  其他点数(三张或者两张点数)

同牌型一样大

牌局规则:

  1. 每人发2张牌后,如果9点或者8点,翻牌则算天公9点或天公8点

2. 可补一张牌,凑成三张牌;补牌为按座位顺序补

3. 最后比大小计算输赢

输赢计算

0. 基本注都一样

  1. 每个玩家赢所有比你小的,输所有比你大的,平和你一样的

2. 输赢以牌大的计算;天公赢1倍, 同花顺赢16倍,三条赢8倍,  顺子赢4倍, 同花赢2倍,其他赢1倍

大概就这样吧。下回我们开始设计牌模型。

简单Elixir游戏服设计- 游戏玩法介绍的更多相关文章

  1. Elixir游戏服设计一

    在Erlang游戏服设计总结http://www.cnblogs.com/rubyist/p/5530575.html里, 我提到我想要的游戏服设计方法,希望以应用做为基础构建块.最近我在学习elix ...

  2. Elixir游戏服设计五

    在<Elixir游戏服设计一>里提到,按照系统功能划分成app要保证原子性很难, 现在想想也没那么难.保证原子性,无非就是需要某个单点去完成操作.那么选择玩家进程去做原子性工作就可以了. ...

  3. Erlang游戏服设计总结

    这主要是一年多来,个人从事Erlang游戏服开发中对一些事情的思考. 想到哪说到哪,没有条理可言. 欢迎讨论. 通常Erlang游戏服务的设计涉及到的东东包括如下: 任务系统 活动系统 公会系统 玩法 ...

  4. 简单Elixir游戏服设计-玩法simple_poker

    上回介绍了玩法,现在编写了玩法的简单建模. 做到现在感觉目前还没有使用umbrella的必要(也许以后会发现必要吧),model 应用完全可以合并到game_server. 代码还在https://g ...

  5. 简单Elixir游戏服设计-玩家进程注册

    上回说用Registry 做本地注册(跨服可以用syn,只是稍微麻烦点,需要模拟global注册机制,写个封装模块). 修改game_server 项目的mix.exs, 增加应用启动 def app ...

  6. 简单Elixir游戏服设计-玩家进程跑起来

    有了玩家模型,我们试试让玩家进程跑起来. 需要搞个PlayerSupervisor来负责启动和监控玩家进程. defmodule PlayerSupervisor do use Supervisor ...

  7. 简单Elixir游戏服设计-创建玩家模型

    删除model.ex 创建玩家模型 player.ex, 简单化,只有唯一标识,昵称,金币,够用了. 选择 map 代表数据,是为了扩展数据结构,方便增加功能.struct也是可以的. add_num ...

  8. 简单Elixir游戏服设计- 创建项目

    反正是写到哪算哪. 创建umbrella项目 mix new simple_game --umbrella 创建model项目 cd simple_game\apps mix new model 创建 ...

  9. 关于Elixir游戏服设计系列

    写着写着就废球了,感觉空对空,实在没什么意思. 另外很快就要搞新项目,决定新项目就直接上elixir了.目前该做的准备工作已经探索了一些了. 以下的东西是写给同事参考的,感兴趣的可以看看,提建议更好. ...

随机推荐

  1. IT团队之非正式沟通

      沟通能力是一种能证明和让对方发现你具有社会工作能力的能力.从表面上看来,它只是一种能说会道的能力,可实际上它却包罗了一个人从穿衣打扮到言谈举止等一切行为的能力.   从大体上,我将沟通分为正式沟通 ...

  2. 运行mvn install时跳过Test

    1.1 方法一 <project> [...] <build> <plugins> <plugin> <groupId>org.apache ...

  3. WebService两种调用方法

    1.wsimport生成本地客户端代码 命令提示窗口执行生成命令. 格式:wsimport -s "src目录" -p “生成类所在包名” -keep “wsdl发布地址” 示例: ...

  4. css中使用变量

    2017年3月,微软宣布 Edge 浏览器将支持 CSS 变量.这个重要的 CSS 新功能,所有主要浏览器已经都支持了. 声明css变量的时候,变量名前面要加两根连词线(--).变量名大小写敏感,-- ...

  5. C#构建DataTable(转)

    Asp.net DataTable添加列和行的方法 方法一: DataTable tblDatas = new DataTable("Datas"); DataColumn dc ...

  6. PHP(函数)

    <script> // 获得日 var time = new Date(); var x = time.getDate(); document.write(x+"日," ...

  7. HIVE和HBASE区别11

    对于刚接触大数据的用户来说,要想区分Hive与HBase是有一定难度的.本文将尝试从其各自的定义.特点.限制.应用场景等角度来进行分析,以作抛砖引玉之用.  Hive是什么? Apache Hive是 ...

  8. unity(Exploder插件)研究

    哎 好久没写博客了 不是因为最近忙 而是比较懒 学的东西不深入 前段时间发现一个很好用的插件叫Exploder(是一个可以制作任何物体的爆炸效果) 好!我们开始我们的炸学校旅程!(O(∩_∩)O哈哈~ ...

  9. 团队作业8——第二次项目冲刺(Beta阶段)5.27

    1.当天站立式会议照片 会议内容: 本次会议为第七次会议 本次会议在陆大楼2楼召开,本次会议内容: ①:检查总结上次任务完成情况 ②:安排今天的分工 ③:对昨天的问题进行讨论 2. 每个人的工作 (有 ...

  10. 团队作业9--beta版本测试报告及发布说明

    Beta版本测试报告 1.bug的分类 a.修复的bug 部分用户无法获取位置 e. 这个bug的确应该修复,但是没有时间在这个版本修复,延迟到下一个版本修复. 前端无法查看用户签到信息 2.场景测试 ...