发表于: 2017-04-17 23:04:30

1 720


今天完成的事情:

1.不用有限状态机完成法官页面的步骤选择。

2.学习原型对象知识。

明天计划的事情:

把任务4的杀人页面跳转完成,再把法官页面跳转投票页完成。

遇到的困难:

在写法官页面的过程中,开始准备运用有限状态机来解决这个问题。然后就开始看师兄写的任务四用有限状态机写的代码。被那一大堆的属性还有函数调用给弄晕了。然后自己开始尝试不用有限状态机来写。发现特别简单,只需要设定1个变量和4个if条件语句就能完成。我是这么想的:

1)按照任务要求,第一次点击第一个杀人选项框时(我用step[0]节点来表示),可以进入杀人页面;如果点击其它选项,就会出现提示弹框confirm("请按步骤执行");

2)第二次点击亡灵发表遗言选框(我用step[1]节点表示),可以进入提示弹框confirm("下面有请死者发言"),如果点击其它选项,就会出现提示框confirm("请按步骤执行");

3)第三次点击亡灵发表遗言选框(我用step[2]节点表示),可以进入提示弹框confirm("玩家发言"),如果点击其它选项,就会出现提示框confirm("请按步骤执行");

4)第四次点击全民投票(我用step[3]节点表示),可以进入投票页面;如果点击其它选项,就会出现提示框confirm("请按步骤执行");

根据这个逻辑,可以预先设定点击次数click_time==0;当点击step[0]且click_time==0时,执行第一步;

if(l==0&&step_time==0){
$(".step:eq(0)").css('background-color','#83B09A');
   sessionStorage.arr = JSON.stringify(arr);
   sessionStorage.death = JSON.stringify(death);
   sessionStorage.time = JSON.stringify(time);
   window.location = "kill.html";
   step_time++;
   break;

当点击step[1]且click_time==1时,执行第二步;

if(l==1&&step_time==1){
confirm("下面请死者发表遗言");
   $(".step:eq(1)").css('background-color','#83B09A');
   step_time++;
   break;
}

当点击step[2]且click_time==2时,执行第三步;

if(l==2&&step_time==2){
confirm("玩家发言");
   $(".step:eq(2)").css('background-color','#83B09A');
   step_time++;
   break;
}

当点击step[3]且click_time==3时,执行第四步;

if(l==3&&step_time==3){
$(".step:eq(3)").css('background-color','#83B09A');
   sessionStorage.arr = JSON.stringify(arr);
   sessionStorage.killed = JSON.stringify(killed);
   sessionStorage.voted = JSON.stringify(voted);
   sessionStorage.time = JSON.stringify(time);
   window.location = "kill.html";
   step_time=0;
   break;
}

这样的话法官页面的步骤流程就能够完成了。

2.关于如何从类中选择已点击的选择器;查了很长时间才知道可以直接利用$("step").click(function(){

    $(this).attr("id");

});

收获:有限状态机对我来说感觉还是有些麻烦,很多东西都没看懂。所以就用简单的逻辑写法来解决问题;


返回列表 返回列表
评论

    分享到