인간 스톱워치/script.js

리버티게임, 모두가 만들어가는 자유로운 게임
sc = 0;
cb = 0;

bl = false;
$(document.body).on("keydown", function(ev) {
  if(ev.which == 13) {
    if (bl == false) {
  	  bl = true;
      startF();
    } else {
      bl = false;
      stopF();
    }
  }
});

$("#msgame-start").on("click", function() {
  bl = true;
	startF();
});

$("#msgame-stop").on("click", function() {
  bl = false;
	stopF();
});

function startF() {
  obj = Math.floor(Math.random() * 5) + 5;
  $("#msgame-start").css("display", "none");
  $("#msgame-stop").css("display", "block");
  it = new Date();
  si = setInterval(clockUpdate, 20);
  $("#msgame-console").text(obj + " 초를 세세요.");
}

function stopF() {
  $("#msgame-clockText").css("display", "inline");
  $("#msgame-stop").css("display", "none");
  $("#msgame-start").css("display", "block");
  clearInterval(si);
  ie = new Date();
  ifin = ie - it;
  $("#msgame-clockText").text(toMilliSec(ifin));
  finished(obj, ifin);
}

function clockUpdate() {
  ic = new Date();
  id = ic - it;
  ii = toMilliSec(id);
  $("#msgame-clockText").text(ii);
  if (obj * 1000 - id < 500 * cb && cb > 4 ) {
    $("#msgame-clockText").fadeOut();
  }
}

function toMilliSec(d) {
  return (Math.floor(d / 1000) + "\"" + ("" + d % 1000).padStart(3, "0")).padStart(6, "0");
}

function finished(a, b) {
  ath = a * 1000;
  if (ath == b) {
    cbm = Math.floor(Math.pow(800, (1 + cb / 10)));
    $("#msgame-console").text("정확하시군요. " + cbm + " 점 드리겠습니다.");
    sc += cbm;
    cb += 1;
  } else if (Math.abs(ath - b) < 100) {
    cbm = Math.floor(Math.pow((500 / Math.abs(ath - b)), (1 + cb / 10)));
    $("#msgame-console").text("정확하시군요. " + cbm + " 점 드리겠습니다.");
    sc += cbm;
    cb += 1;
  } else {
    $("#msgame-console").text("안타깝습니다. 조금 더 노력해 보세요!");
    cb = 0;
  }
  $("#msgame-score").text(sc);
  $("#msgame-combo").text(cb);
}