发表于: 2020-04-21 22:58:01

1 1342


今日完成

学习jQ数据库的基础知识

了解了基本语法以及基本功能的使用

jQ库是js的一种框架,封装了常用的一些js代码,使用起来更方便,代码更简洁


基本完成任务二

学习理解洗牌算法


明日计划

构思任务三 如何实现身份传递操作


完成代码

// 页面跳转
function jump() {
  window.location.href = "page1.html";
}

// 洗牌算法
function shuffle(array) {
  var m = array.length,
    i,
    t;
  while (m) {
    i = Math.floor(Math.random() * m--);
    t = array[m];
    array[m] = array[i];
    array[i] = t;
  }
  return array;
}

//
function myInput() {
  var totalNum, killerNum, civilianNum;
  // 实时获取输入的数值
  totalNum = document.getElementById("count").value;
  //   判断平民及杀手人数
  if (totalNum < 4 && totalNum > 18) {
    killerNum = 0;
  } else if (totalNum >= 4 && totalNum < 6) {
    killerNum = 1;
  } else if (totalNum >= 6 && totalNum < 9) {
    killerNum = 2;
  } else if (totalNum >= 9 && totalNum < 12) {
    killerNum = 3;
  } else if (totalNum >= 12 && totalNum < 16) {
    killerNum = 4;
  } else if (totalNum >= 16 && totalNum <= 18) {
    killerNum = 5;
  }
  // 计算得平民人数
  civilianNum = totalNum - killerNum;
  // 人数实时变化
  if (killerNum) {
    document.getElementsByClassName("killer")[0].innerHTML = killerNum;
    document.getElementsByClassName("civilian")[0].innerHTML = civilianNum;
  } else {
    document.getElementsByClassName("killer")[0].innerHTML = "&ensp;";
    document.getElementsByClassName("civilian")[0].innerHTML = "&ensp;";
  }
  // return killerNum;
}
console.log(myInput());

function startGame() {
  var totalNum,
    killerNum,
    civilianNum,
    identifyArr = [];
  totalNum = document.getElementById("count").value;
  // 判断输入值
  if (!(totalNum >= 4 && totalNum <= 18)) {
    document.getElementById("popup_num").style.cssText = "visibility:initial;";
  } else {
    //   判断平民及杀手人数
    if (totalNum < 4 && totalNum > 18) {
      killerNum = 0;
    } else if (totalNum >= 4 && totalNum < 6) {
      killerNum = 1;
    } else if (totalNum >= 6 && totalNum < 9) {
      killerNum = 2;
    } else if (totalNum >= 9 && totalNum < 12) {
      killerNum = 3;
    } else if (totalNum >= 12 && totalNum < 16) {
      killerNum = 4;
    } else if (totalNum >= 16 && totalNum <= 18) {
      killerNum = 5;
    }
    // 计算得平民人数
    civilianNum = totalNum - killerNum;
    for (var i = 0; i < killerNum; i++) {
      identifyArr.push("杀手");
    }
    for (var j = 0; j < civilianNum; j++) {
      identifyArr.push("平民");
    }
    // 洗牌
    shuffle(identifyArr);
    console.log(identifyArr);
  }
}
function hiddenPop() {
  document.getElementById("popup_num").style.cssText = "visibility:hidden;";
}


遇到的问题

判断杀手数量代码需要分别写两次

本想通过

return killerNum

console.log(myInput());

获得杀手的数量

但发现并不能实时根据输入框的值改变

暂时未找到解决办法



返回列表 返回列表
评论

    分享到