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

本文解析了杀人游戏中杀人与投票的业务逻辑区别,包括定义玩家状态、游戏结束规则及页面交互逻辑,并提供了实战案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 大家好,我是IT修真院深圳分院第九期的学员徐炜,一枚正直纯洁善良的前端程序员。今天给大家带来的是杀人和投票的业务逻辑上有什么区别。

一.背景介绍

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

 在做任务2-4杀人游戏时,我们会碰到很多逻辑上的问题,为实现杀人游戏各项功能,就需要厘清杀人和投票之间的逻辑区别。

二.知识剖析  

    1、广义上的义务逻辑——项目本身固有的一种品性,自然存在于项目内部,是项目具有的在某个业务领域内的逻辑,是该项目的核心和灵魂。 一个项目除界面和交互外的一切都可看作是广义业务逻辑。

 2、狭义上的业务逻辑——等同于分层架构中“业务逻辑层”的职责,是项目中处理与业务相关任务的部分,一般狭义上的业务逻辑不包含数据持久化, 而只关注领域内的相关业务。

 3、对于以上两种定义,我们不要割裂开来看,而要辩证统一的去看,这样,才能构建一个完整而辩证统一的“业务逻辑”概念。

 4、业务逻辑就是客户的逻辑,在 N 层架构的系统中,经常会提到这些名词。表现层(Presentation layer) 业务逻辑层(Application layer) 数据访问层(Data layer) 在一个系统开发过程中,后台做一些处理, 如果成功,则跳转到 success_xxx 页面,如果失败,则跳转到 fail_xxx 页面,如果系统抛出了异常,则跳转到 5xx 页面, 这些属于页面逻辑

三.常见问题

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

四.解决方案

  1、杀人和投票业务逻辑上的区别,实际上就是如何设置彼此的权限,以及定义游戏结束。

  (1)首先要获取上个页面设置的玩家数量,和玩家身份;

  (2)其次要定义死亡的状态,视图上:玩家头像变暗了(画个叉叉,写个死亡之类),且不可点击和其他操作。程序上:要清除该死亡角色的身份和号码。

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

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

  (5)定义杀手杀人的规则;杀手杀人要满足,已死亡的对象不能再杀,被杀对象不是杀手,以及判定条件,跳转回法官台本页面还是游戏结束页面。

  (6)定义投票环节的规则;投票环节要满足,已死亡的对象不能再被投票,被投票对象可以为杀手,以及判定条件,跳转回法官台本页面还是游戏结束页面。

  2、杀人和投票页面区别之处

  (1)杀人:点击杀手弹出提示框,杀手不能杀自己。

  (2)投票:杀手,平民都可以点击。

  (3)杀手:确定后天数不变,如果游戏结束天数+1。

  (4)投票:确定后天数+1,如果胜利天数不变。

  3、杀人和投票页面相同之处

  (1)点击玩家提取序号,确定后存入死亡玩家数组,存活杀手或平民-1。

  (2)不选择玩家不能离开。

  (3)死亡玩家变色,且移除点击事件。

五.编码实战

 实战演示demo,详见视频。

六.扩展思考

 当杀手在杀手杀人页面赢得游戏时,缺少当天的投票信息,那么游戏结束页面的信息要怎么展示?

 通过判断结果页面是从杀人页面还是投票页面跳转,执行不同的switch case语句,当页面从投票页面跳转时,执行case:0时的for循环, 生成完整的信息框。当页面从杀手杀人页面跳转时,执行case:1,此时就需要将最后一天杀人的情况单独罗列出来,就可以做到只展示杀人的情况。

七.参考文献

八.更多讨论

问题一:天数根据什么判断的 

进入杀人页面天数不变,投票之后游戏继续天数+1,杀完人游戏结束天数不变,投票后游戏结束天数不变。

问题二:怎么判断游戏结束?
平民胜利规则:平民只有一种胜利方式,当杀手一方全部被投死的时候。
杀手胜利规则:平民一方死光了,或者进入到下一轮的参与人数<=2时。
问题三:怎么判断游戏结束是从哪个页面跳转过来的
我的做法是,储存一个skip,当从投票页面跳转,标记为0,当从杀人页面跳转标记为1,再通过switch case语句判断即可进行下一步操作。

  

 PPT 视频链接

  感谢高昕师兄,此教程是在他们之前技术分享的基础上完善而成。 

  今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值