发表于: 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");
});
收获:有限状态机对我来说感觉还是有些麻烦,很多东西都没看懂。所以就用简单的逻辑写法来解决问题;
评论