사용자:Riemann/numbase: 두 판 사이의 차이
백괴게임>Riemann (새로운플러그인생성) |
잔글 ("사용자:Riemann/numbase" 문서를 보호했습니다: 많이 쓰이는 틀이나 코드: 숫자야구 시리즈 등에 쓰이기에, 익명 유저의 악의적 변조를 차단할 필요가 있음 ([편집=자동 인증된 사용자만 허용] (무기한) [이동=자동 인증된 사용자만 허용] (무기한))) |
||
(사용자 2명의 중간 판 21개는 보이지 않습니다) | |||
6번째 줄: | 6번째 줄: | ||
{{#vardefine:name|numbase}} | {{#vardefine:name|numbase}} | ||
{{#vardefine:creat|Riemann}} | {{#vardefine:creat|Riemann}} | ||
{{#vardefine:version| | {{#vardefine:version|1.41}} | ||
{{#vardefine:descript|숫자야구 remake}} | {{#vardefine:descript|숫자야구 remake}} | ||
{{#vardefine:local| | {{#vardefine:local|true}} | ||
{{#vardefine:executable|true}} | {{#vardefine:executable|true}} | ||
{{#vardefine:code| | {{#vardefine:code| | ||
<nowiki> | <nowiki> | ||
// | 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; | |||
} | |||
</nowiki> | </nowiki> | ||
}} | }} | ||
!!!!!!!!!!!!!!!! 플러그인 정보 입력 구간 끝 아래는 만지지 마시오!!!!!!!!!!!!!!!!! | !!!!!!!!!!!!!!!! 플러그인 정보 입력 구간 끝 아래는 만지지 마시오!!!!!!!!!!!!!!!!! | ||
</div>{{#switch: {{{1|화면}}} | </div>{{#switch: {{{1|화면}}} | ||
|dump = | |dump = | ||
|화면 = | |화면 = {{플러그인/preset/각주}} | ||
<p<includeonly></includeonly>re class="script" data-name="{{#var:name}}" | <p<includeonly></includeonly>re class="script" data-name="{{#var:name}}" | ||
data-create="{{#var:creat}}" | data-create="{{#var:creat}}" |
2024년 7월 12일 (금) 10:47 기준 최신판
이 플러그인에 대한 설명문서는 사용자: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; }