Number.prototype.isRepeat=function() {
const str=this.toString();
return (parseInt(str.charAt(0))-parseInt(str.charAt(1)))*(parseInt(str.charAt(0))-parseInt(str.charAt(2)))*(parseInt(str.charAt(2))-parseInt(str.charAt(1)))==0;
};
Number.prototype.hasZero=function() {
const str=this.toString();
return parseInt(str.charAt(0))*parseInt(str.charAt(1))*parseInt(str.charAt(2))==0;
};
Number.prototype.calcSB=function(q) {
var _s=0,_b=0;
for(let i=0;i<3;++i) {
if(this.toString().charAt(i)==q.toString().charAt(i)) {_s++;}
else if(this.toString().charAt(i)==q.toString().charAt((i-1)%3)||this.toString().charAt(i)==q.toString().charAt((i+1)%3)) {_b++;}
}
return {s:_s,b:_b};
};
Number.prototype.valid=function(q,s,b) {
var _s=this.calcSB(q).s,
_b=this.calcSB(q).b;
return _s==s&&_b==b;
};
var cands=[];
start();
function start() {
for(let i=123;i<=987;++i) {
if(!i.isRepeat()&&!i.hasZero()) {cands.push(i);}
}
while(cands.length>1) {
main();
}
alert("found! : "+cands[0]);
}
function main() {
var q=cands[Math.floor(Math.random()*cands.length)];
var s=prompt(q+" strike");
var b=prompt(q+" ball");
for(let i=0;i<cands.length;++i) {
if(!cands[i].valid(q,s,b)) {cands.splice(i,1); i--;}
}
}
사용자의 인풋을 받고 컴퓨터가 정답을 추론하는건데..
가끔 정답을 맞히는데 보통 undefined로 나오더라. 어디가 문제일까
코드한번 좆같네... 50줄도 안되는 코드를 이정도로 개판으로 만들다니... 전위예술쪽으로 전직해라
ㄴ50줄 안되는데?