사용자:Riemann/numbase
보이기
이 플러그인에 대한 설명문서는 사용자:Riemann/numbase/설명문서에서 만들 수 있습니다.
var title = mw.config.get('wgPageName'); if (title.slice( -1 ) == "4") { var no = 4 } else { var no = 3 } var trial = 0; var d = new Date(); $("#sBtn").click(function(){ $("#description").css("display", "none"); $("#sBtn").css("display", "none"); $("#res").css("display", "table"); cpuNum = initNumbase(); document.getElementById('count').innerHTML = "시도 횟수: " + trial; var bDate = d.getTime(); numGuess(bDate); }); function initNumbase() { var choice = ""; var initArray = [0,1,2,3,4,5,6,7,8,9]; var i, j; for (i = 0; i < no; i++) { j = Math.floor(Math.random() * initArray.length); choice += initArray[j]; initArray.splice(j,1); } return choice; } function numGuess(bDate) { document.getElementById('disp').style.display = 'table'; document.getElementById('numList').style.display = 'block'; var numb = document.getElementById('numList'); var numBlocks = ""; var disp = ""; document.getElementById('disp').innerHTML = disp; for (i = 0; i < 10; i++) { numBlocks += "<div id=\"numBlock" + i + "\" class=\"numBlock\">" + i + "</div>"; } numBlocks += "<div id=\"numBlockC\" class=\"numBlockC\">C</div>"; numBlocks += "<div id=\"numBlockX\" class=\"numBlockC\">입력</div>"; numb.innerHTML = numBlocks; function restrictLen(l,n) { if (l.length < no) { l += n; } else { alert(no + " 자리로 입력하세요."); } return l; } $("#numBlock0").click(function(){ disp = restrictLen(disp,0); document.getElementById('disp').innerHTML = disp; $("#numBlock0").css("display", "none"); }); $("#numBlock1").click(function(){ disp = restrictLen(disp,1); document.getElementById('disp').innerHTML = disp; $("#numBlock1").css("display", "none"); }); $("#numBlock2").click(function(){ disp = restrictLen(disp,2); document.getElementById('disp').innerHTML = disp; $("#numBlock2").css("display", "none"); }); $("#numBlock3").click(function(){ disp = restrictLen(disp,3); document.getElementById('disp').innerHTML = disp; $("#numBlock3").css("display", "none"); }); $("#numBlock4").click(function(){ disp = restrictLen(disp,4); document.getElementById('disp').innerHTML = disp; $("#numBlock4").css("display", "none"); }); $("#numBlock5").click(function(){ disp = restrictLen(disp,5); document.getElementById('disp').innerHTML = disp; $("#numBlock5").css("display", "none"); }); $("#numBlock6").click(function(){ disp = restrictLen(disp,6); document.getElementById('disp').innerHTML = disp; $("#numBlock6").css("display", "none"); }); $("#numBlock7").click(function(){ disp = restrictLen(disp,7); document.getElementById('disp').innerHTML = disp; $("#numBlock7").css("display", "none"); }); $("#numBlock8").click(function(){ disp = restrictLen(disp,8); document.getElementById('disp').innerHTML = disp; $("#numBlock8").css("display", "none"); }); $("#numBlock9").click(function(){ disp = restrictLen(disp,9); document.getElementById('disp').innerHTML = disp; $("#numBlock9").css("display", "none"); }); $("#numBlockC").click(function(){ disp = ""; document.getElementById('disp').innerHTML = disp; $(".numBlock").css("display", "inline-flex"); }); $("#numBlockX").click(function(){ if (disp.length < no) { alert(no + " 자리로 입력하세요.") } else { trial += 1 document.getElementById('count').innerHTML = "시도 횟수: " + trial; v = valid(disp,cpuNum); $("#res").append("<tr><td>" + trial + "</td><td>" + disp + "</td><td>" + v + "</td></tr>"); disp = ""; document.getElementById('disp').innerHTML = disp; $(".numBlock").css("display", "inline-flex"); if ((v == "0B 3S" && no == 3) || (v == "0B 4S" && no == 4)) { var dd = new Date(); var duration = Math.floor((dd.getTime() - bDate) / 1000); document.getElementById('end').innerHTML = "축하합니다. 정수를 맞히셨습니다. " + trial + "회, " + duration + "초가 소비되었습니다. 이용해주셔서 감사합니다."; $("#disp").css("display", "none"); $("#numList").css("display", "none"); $("#end").css("display", "inline"); return 0; } } }); } function valid(u,c) { var b = 0; var s = 0; var bs; for (i = 0; i < no; i++) { for (j = 0; j < no; j++) { if (u[i] == c[j]) { if (i == j) { s += 1; } else { b += 1; } } } } bs = "" + b + "B " + s + "S" return bs; }