大家好,我是IT修真院郑州分院第8期学员,一枚正直善良的web程序员。
今天给大家分享一下,修真院官网JS-4任务中可能会使用到的知识点:
杀人和投票的业务逻辑上有什么区别?
1.背景介绍
业务逻辑是什么?
不同的项目有不同的功能,不同的功能需要不同的实现,实现这些核心功能的代码就叫业务逻辑。
2.知识剖析
让你实现一个功能,给你两个数,让你获取它的和,你所写的如何才能获得任意给定的两个数的和,这个程序实现过程称为业务逻辑处理。
就像家里规矩–“吃饭前必须洗手”“有客人来要起立”-就是业务逻辑的生活化实例。
简单来就是在怎么做事(how to do), 比方说你去餐馆吃饭, 你点了个炒米粉,服务员给你下单,厨房见到单后下锅给你炒,你吃完后付账。这一些列动作都可以说是业务逻辑。
业务逻辑就是客户的逻辑。在 N 层架构的系统中,经常会提到这些名词。
表现层(Presentation layer) 业务逻辑层(Application layer)数据访问层(Data layer) ,在一个系统开发过程中,后台做一些处理,如果成功,则跳转到 success_xxx 页面,如果失败,则跳转到fail_xxx 页面,如果系统抛出了异常,则跳转到 5xx 页面,…… 这些属于页面逻辑。
还有一些持久层的逻辑,也就是对数据库的操作。
业务逻辑是核心逻辑,只关注用户的业务,比如管理系统和财务系统,需要处理的业务肯定不一样,但是页面的跳转大致相同,对于持久层的操作也差不多。如果你使用了 SSH 框架,那么 hibernate 和 struts 的代码有很大一部分可以复用
业务逻辑(BL Action)不关心页面如何跳转,只是简单的返回成功,或是失败,或是异常,struts 框架根据配置文件跳转到相应的页面。
业务逻辑也不关心数据如何存储,是存储在文件系统,还是存储在数据库系统。是存储在MySQL,还是NoSQL。也不关系到底用没用缓存。
3.常见问题
那么我们今天的主题
——杀人和投票的业务逻辑上有什么区别?
4.解决方案
5.编码实战
杀人和投票页面区别之处
杀人:点击杀手弹出提示框;
投票:杀手,平民都可以点击;
杀人:确定后传值用于刷新法官页面到步骤1完成的状态
投票:确定后传值用于重置有限状态机状态
杀人:确定后天数不变,如果游戏结束天数+1且传个值用于隐藏游戏进程当天白天的信息
投票:确定后天数+1,如果胜利天数不变
杀人和投票页面相同之处
1.根据法官页面传来值改变文本
2.点击玩家提取序号,确定后存入死亡玩家数组,存活杀手或平民-1
3.不选择玩家不能离开
4.死亡玩家变色,且移除点击事件
5.胜利判断
6.扩展思考
法官页面记录游戏进程
if(day >1){ for (var i=0; i<day-1; i++){ var days=i +1; var num1 =death[i*2]+1; var num2 =death[i*2+1]+1;//思路是 i为0时取 0,1 两个值 i为1时取2,3 两个值。 $("#message").append(' <div class="day">第'+days+'天\n' + ' <div class="show"> </div>\n' + ' <div class="days">\n' + ' <p > 晚上: '+num1+' 号被杀手杀死,身份是'+Arr[num1-1]+'</p>\n' + ' <p > 白天: '+num2+' 号被全民投死,身份是'+Arr[num2-1]+'</p>\n' + ' </div>\n' + ' </div>') ;//如果天数大于1输出游戏进程的记录 $(".show").eq(i).on("click",function (){ $(this).siblings("div.days").toggle();//展示隐藏内容 }); } }
更多讨论
1,杀人后投票的时候,怎么标记要杀死的玩家?
$(".click").eq(i).on("click", function () { $(this).siblings(".click").css("opacity","1"); $(this).css("opacity","0.5"); deathnum =$(this).index();//死亡玩家序号 console.log(" kill",deathnum,"?"); });
2,天数根据什么判断的
进入杀人页面天数为1,投票之后游戏继续天数+1。杀完人游戏结束天数不变,投票后游戏结束天数不变。
3.死亡玩家变色及事件移除
if(death !== null){ for (i=0;i<death.length;i++){ $(".block").eq(death[i]) .unbind(); $(" .block").eq(death[i]) .removeClass("click"); $(" .block").eq(death[i]) .css("opacity","0.5");//死亡玩家事件移除及变色 } }
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
技能树-IT修真院
IT修真院是一个免费的线上IT技术学习平台 。
每个职业以15个左右的task为初学者提供更快速高效的学习方式 ;
所有task均是从真实项目中提炼出来的技能点,
强调实战演练+自学优先+师兄辅导的学习方式,
严格的日报体系,欢乐的交流讨论学习气氛,更有无数师兄师姐帮你解疑!
点击官网注册 官网 ,使用师兄邀请链接有优惠。