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

大家好,我是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.编码实战

视频

ppt

杀人和投票页面区别之处

杀人:点击杀手弹出提示框;
投票:杀手,平民都可以点击;
杀人:确定后传值用于刷新法官页面到步骤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均是从真实项目中提炼出来的技能点,

强调实战演练+自学优先+师兄辅导的学习方式,

严格的日报体系,欢乐的交流讨论学习气氛,更有无数师兄师姐帮你解疑!

点击官网注册  官网 ,使用师兄邀请链接有优惠。
















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值