美文网首页IT修真院-前端
【武汉分院第一百七十期】杀人和投票的业务逻辑上有什么区别?

【武汉分院第一百七十期】杀人和投票的业务逻辑上有什么区别?

作者: 听话快到碗里来 | 来源:发表于2017-05-16 19:56 被阅读0次

1.背景介绍

业务逻辑是什么?

让你实现一个功能,给你两个数,让你获取它的和,你所写的如何才能获得任意给定的两个数的和,这个程序实现过程称为业务逻辑。

就像家里规矩–“吃饭前必须洗手”“有客人来要起立”-就是业务逻辑的生活化实例。

2.知识剖析

杀人和投票的业务逻辑分别是什么?

杀人页投票逻辑

一.玩家无操作时:1.打印出每个玩家的身份方框。2.标记出已经出局的玩家。

二.选择杀死玩家时:1。点击选中玩家的方框时,给出相应被选中提示。不可以选择已出局玩家。杀手不可以杀死同伙。3.更换选择玩家时,该玩家状态标记为被选中,其他玩家都为未选中。

三.确认杀死玩家时,对该玩家的对象属性更改。例如生命属性更改为killed,并记录死亡天数。

投票页的业务逻辑

一.玩家无操作时:1.打印出每个玩家的身份方框。2.标记出已经出局的玩家。

二.选择投死玩家时:1。点击选中玩家的方框时,给出相应被选中提示。不可以选择已出局玩家。3.更换选择玩家时,该玩家状态标记为被选中,其他玩家都为未选中。

三.确认杀死玩家时,对该玩家的对象属性更改。例如生命属性更改为voted。记录该玩家死亡天数。

四.每次投票结束后,天数+1.

五.判断游戏是否结束。

3.常见问题

杀人和投票的具体的业务逻辑上有什么区别?

4.解决方案

实际上就是如何设置彼此的权限,以及定义游戏结束。刚才讲过,程序实现过程称为业务逻辑处理。

程序实现的过程——

1.获取上个页面设置的玩家数量,和玩家身份

如何定义死亡

具体场景具体定义,比如用户眼中:头像变暗了(画个叉叉,写个死亡之类),不可点击和其他操作。程序上:要清除他的身份和号码。

杀手怎么杀人?

杀手杀人要满足当杀手人数过多时,被杀对象不是杀手,以及活着进入到杀人环节

投票要怎么投死人?

投票也要满足少数服从多数的原则,要考虑到当票数相等时会出现什么情况?

1,是要进入下一个环节。

2,或者是两个被投票者双双出局。

3,还是不许出现这种情况, 必须要决定投一个人,否则判定杀手胜利。

——这些都是要在写程序之前说清楚,然后用程序实现的。

如何定义游戏结束。

因为写的是简易版的杀人游戏,所以这里就讨论简易版的相关规则,

平民胜利规则:平民只有一种胜利方式,当杀手一方全部被投死的时候。

杀手胜利规则:平民一方死光了,或者进入到下一轮的参与人数<=2时(因为此时为了活命,双方会互相投票,出现死循环,这种情况直接定义杀手胜利)

更多讨论

1、任务中的状态信息如何保存

最简单的方法是使用数组对象,用数组对象创建life,day,vote,kill等状态信息。有同学使用的是二维数组,这种方法也可以,但比较麻烦。

2、业务逻辑如果很复杂,怎么办,有没有一些技巧

尽量写共用的方法,相似的逻辑,尽量用一个方法装起来。读取数据时,尽量一次读取出来。尽量共用同一个逻辑

3、任务中存在的bug

设定好人数后,点击查看页后跳转到法官页。编号了超出设定的人数。因为只要点击,函数就执行一次。将函数内的判断跳转到法官页的逻辑放在函数内的前面

ptteng.github.io/PPT/PPT/js-04-service%20logic%20differences%20betweenkill&vote.html#/


杀人和投票的业务逻辑上有什么区别?_腾讯视频

相关文章

网友评论

    本文标题:【武汉分院第一百七十期】杀人和投票的业务逻辑上有什么区别?

    本文链接:https://www.haomeiwen.com/subject/lazlxxtx.html