简单Elixir游戏服设计- 游戏玩法介绍
抄以前的,做了点修改。
到目前为止,我们完成了玩家的数据和进程建模,现在介绍游戏玩法。
为什么我们还不做客户端接入、协议指定呢?为什么还没有网关和数据存储呢。在我接手的游戏,
这些通常已经定下来了,我没法改变。在我开始这个系列时,我也常常陷入这些细节而不知所措,感觉不把所有设施搞完备没法写代码。
但其实,这些和游戏服的逻辑关系不大。游戏服的本质就玩家建模、玩法等,有了这些就已经足够跑逻辑,跑测试了;
至于其他则属于外围的、较独立的东西,属于可以稍后考虑的。至于进程注册查找机制,由于它是分布式系统的关键,因此早点考虑还是
必要的,尤其它还影响你编码的风格。好了,不废话了。开始描述下扑克玩法,我们那里管它叫“抓木虱",
我不记得是具体是怎么样的了,反正下面的规则能玩就行如下
玩家数: 好像没有什么限制,只要牌够?
总牌数: 除去大小王
玩家牌数:每人开始发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游戏服设计- 游戏玩法介绍的更多相关文章
- Elixir游戏服设计一
在Erlang游戏服设计总结http://www.cnblogs.com/rubyist/p/5530575.html里, 我提到我想要的游戏服设计方法,希望以应用做为基础构建块.最近我在学习elix ...
- Elixir游戏服设计五
在<Elixir游戏服设计一>里提到,按照系统功能划分成app要保证原子性很难, 现在想想也没那么难.保证原子性,无非就是需要某个单点去完成操作.那么选择玩家进程去做原子性工作就可以了. ...
- Erlang游戏服设计总结
这主要是一年多来,个人从事Erlang游戏服开发中对一些事情的思考. 想到哪说到哪,没有条理可言. 欢迎讨论. 通常Erlang游戏服务的设计涉及到的东东包括如下: 任务系统 活动系统 公会系统 玩法 ...
- 简单Elixir游戏服设计-玩法simple_poker
上回介绍了玩法,现在编写了玩法的简单建模. 做到现在感觉目前还没有使用umbrella的必要(也许以后会发现必要吧),model 应用完全可以合并到game_server. 代码还在https://g ...
- 简单Elixir游戏服设计-玩家进程注册
上回说用Registry 做本地注册(跨服可以用syn,只是稍微麻烦点,需要模拟global注册机制,写个封装模块). 修改game_server 项目的mix.exs, 增加应用启动 def app ...
- 简单Elixir游戏服设计-玩家进程跑起来
有了玩家模型,我们试试让玩家进程跑起来. 需要搞个PlayerSupervisor来负责启动和监控玩家进程. defmodule PlayerSupervisor do use Supervisor ...
- 简单Elixir游戏服设计-创建玩家模型
删除model.ex 创建玩家模型 player.ex, 简单化,只有唯一标识,昵称,金币,够用了. 选择 map 代表数据,是为了扩展数据结构,方便增加功能.struct也是可以的. add_num ...
- 简单Elixir游戏服设计- 创建项目
反正是写到哪算哪. 创建umbrella项目 mix new simple_game --umbrella 创建model项目 cd simple_game\apps mix new model 创建 ...
- 关于Elixir游戏服设计系列
写着写着就废球了,感觉空对空,实在没什么意思. 另外很快就要搞新项目,决定新项目就直接上elixir了.目前该做的准备工作已经探索了一些了. 以下的东西是写给同事参考的,感兴趣的可以看看,提建议更好. ...
随机推荐
- 互联网世界中的C语言——我的golang学习笔记:1(基础语法快速过)
前言 学习任何知识都会有一个学习背景 最近,我们团队乃至我司整个云服务,上go的呼声越来越高!新服务已经开始用go开发,部分现有Java版的服务重构为go也只是时间问题而已,故相关技术积累势在必行!在 ...
- MySQL(七)MySQL常用函数
前言 上一篇给大家介绍了,MySQL常用的操作符其实已经是非常的详细了,现在给大家分享的是MySQL的常用函数.希望对我和对大家都有帮助. 一.字符串函数 1.1.LOWER.lcase(string ...
- html5shiv.js和respond.min.js
做页面常用的东西,写这里用的时候省点去找了... html5shiv:解决ie9以下浏览器对html5新增标签的不识别,并导致CSS不起作用的问题. respond.min:让不支持css3 Medi ...
- js变量以及其作用域详解
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp73 一.变量的类型 Javascript和Java.C这些语言不同 ...
- el表达式里面fn的用法
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp31 头部加入标签库 <%@ taglib prefix=" ...
- WebApi Ajax 跨域请求解决方法(CORS实现)(作者:jianxuanbing)
概述 ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.但是在使用API的时候总会遇到跨域请求的问题,特别各 ...
- [js高手之路]Vue2.0基于vue-cli+webpack Vuex用法详解
在这之前,我已经分享过组件与组件的通信机制以及父子组件之间的通信机制,而我们的vuex就是为了解决组件通信问题的 vuex是什么东东呢? 组件通信的本质其实就是在组件之间传递数据或组件的状态(这里将数 ...
- 0908期 HTML 样式表属性
1.背景与前景 /*背景色,样式表优先级高*/ background-image:url(路径); /*设置背景图片(默认)*/ background-attachment:fixed; ...
- 编程零基础应当如何开始学习 Python?
提前说一下,这篇福利多多,别的不说,直接让你玩回最有手感的怀旧游戏,参数贴图很方便自己可以根据喜好修改哦. 本篇通过以下四块展开,提供大量资源对应. 选一个好版本 有没有看过<在下坂本,有何贵干 ...
- 蓝桥杯PREV-11:横向打印二叉树
嗯,没错我还报了蓝桥杯. 这是题目 问题描述 二叉树可以用于排序.其原理很简单:对于一个排序二叉树添加新节点时,先与根节点比较,若小则交给左子树继续处理,否则交给右子树. 当遇到空子树时,则把该节点放 ...