发表于: 2020-01-14 22:15:09

0 1234


今天完成的事

1,从法官台本页面跳转到杀手杀人页面,以及相应的逻辑代码;

html:

建立对象数组存储玩家对应状态:

关键逻辑代码:

//黑夜杀手杀人

var roleStr_s = sessionStorage.getItem("rolestr");
//存储玩家信息的第一个数组
var roleList_s = JSON.parse(roleStr_s);
//用于判断玩家状态是否死亡的玩家信息存储数组
var roleCompara = JSON.parse(roleStr_s);
//死亡玩家被标记放入该数组
var roleRecord = {};
var allRole=Object.keys(roleList_s).length;
for (var i=0i<allRolei++) {
    var orderroleList_s[i]["order"];
    var identity = roleList_s[i]["role"];
    $(".main-roles").append(
    `<div class="role-in" tabindex="-1">
    <div class="role-ide"></div>
    <div class="role-order"></div>
    <img src="image/kill.png" class="role-killed">
    </div>`);
    $(".role-ide").eq(i).text(identity);
    if (roleList_s[i]["life"] == 0) {
        $(".role-ide").eq(i).css("background-color""#83b09a");
    }
    $(".role-order").eq(i).text(order + "号");
    
}
var regexp2 = /\d/;
var num;
$(".role-killed").hide();
$(".role-in").focusin(function(){
    // $(this).css("background-color","#83b09a");
    $(this).children(".role-killed").show();
    num = $(this).children(".role-order").text().match(regexp2);
    console.log(num[0]);
    if (roleCompara[num[0]-1]["life"] == 0) {
        alert("当前玩家已死亡,请选择其他玩家。");
    }else if (roleCompara[num[0]-1]["role"] == "杀手") {
        $(this).children(".role-killed").hide();
        alert("你是杀手不能杀死本职业玩家,请选择其他玩家");
    }
    roleList_s[num[0]-1]["life"] = 0;
    console.log(roleList_s);
    console.log(roleCompara);
});
$(".role-in").focusout(function(){
    // $(this).css("background-color","#f5c97b");
    $(this).children(".role-killed").hide();
    num = $(this).children(".role-order").text().match(regexp2);
    for (var j=0j<allRolej++){
        if (j != num[0]-1){
            roleList_s[j]["life"] = 1;
        }
    }
    // roleList_s[num[0]-1]["life"] = 1;
    console.log(roleList_s);
});
$(".footer-next").click(function() {
    var data=0;
    if (fsm_2.state == 0) {
        fsm_2.night();
        for (var k=0k<allRolek++) {
            if (roleList_s[k]["life"] != roleCompara[k]["life"]) {
                roleCompara[k]["life"] = roleList_s[k]["life"];
                roleRecord[data] = {};
                roleRecord[data]["night"] = k + 1;
                var truth_1 = roleList_s[k]["role"];
                $(".message-night").text("号被杀手杀死,真实身份是");
            }
        }
        window.location.href = "page5.html";
        
    }
    
    if (fsm_2.state == 1) {
        fsm_2.daytime();
        for (var k=0k<allRolek++) {
            if (roleList_s[k]["life"] != roleCompara[k]["life"]) {
                roleCompara[k]["life"] = roleList_s[k]["life"];
                roleRecord[data]["daytime"] = k + 1;
                var truth_2 = roleList_s[k]["role"];
                $(".message-night").text((k+1) + "号被投票投死了,真实身份是" + truth_2);
            }
        }
        data +=1;
        $(".start-process").hide();
        $(".start-sign-box").hide();
        $(".main-game").append(`
        <div class="main-start">
            <div class="start-day"></div>
            <div class="start-sign-box">
                <div class="start-sign"></div>
            </div>
            <div class="start-process">
                <div class="process-box">
                    <div class="process-one process-triangle">
                        <img src="image/moon.png">
                        <div>杀手杀人</div>
                    </div>
                    <div class="mt20 message-night"></div>
                    <div class="process-two process-triangle">
                        <img src="image/sun.png">
                        <div>亡灵发表遗言</div >
                    </div>
                    <div class="process-three process-triangle">玩家依次发言</div>
                    <div class="process-four process-triangle">全民投票</div>
                    <div class="mt20 message-daytime"></div>
                </div>
            </div>
        </div>`);
        $(".start-day").text("第" + (data+1) + "天");
        window.location.href = "page5.html";
    }
})

明天的计划

1,写出投票页面的逻辑代码,并与法官台本页面交互;

遇到的问题

 暂无

收获

 1,按照设计清楚,以及逻辑正确的伪代码编写时,的确可以大大减少代码的错误,即使出错也可以很快的定位到相应的地方,伪代码不仅可以作为注释供其他人阅读理解,也可以作为自己定位代码问题所在的极佳工具;

2,Jquery获取元素文本,在寻找解决的过程中,发现了 .text( )这个方法的其他用法,原本是把 .text(“你想要插入html中的文本”)设置元素文本,

然后发现 .text( ) , 括号里值为空的话,返回的是相应元素的文本内容;相比其他Jquery方法可以说是非常简单的方法;


返回列表 返回列表
评论

    分享到