참고 사이트: https://namu.wiki/w/숫자야구
🚨 특이 케이스에 대한 대응은 하지 않아도 괜찮습니다. 예) 중복 숫자 등
function handleStartButtonClick(){
let count = 0;
const answer = Math.floor(Math.random() * 900)+100;
$inputNumber.addEventListener("keypress",enterPress);
function enterPress() {
if( window.event.keyCode==13 ){
if(count===10){
$inputNumber.removeEventListener("keypress",enterPress);
count = -1;
return;
}
count++;
const number = $inputNumber.value;
if(number>999 || number<100){
alert("세자리 숫자를 입력해주세요.");
return;
}
const numArray = String(number).split("");
const answerArray = String(answer).split("");
let strike = 0;
let ball = 0;
numArray.forEach((element,index) => {
if(element === answerArray[index]){
strike++;
}
answerArray.forEach((element2,index2)=>{
if(element === element2){
if(index !== index2){
ball++;
}
return;
}
return;
});
});
if(strike ===3){
// 정답 화면 표시
return;
}
HTML DOM을 제어하는 코드는 생략하였고, 알고리즘만 작성하였다.
전체코드가 궁금하다면?
https://github.com/newsilver1028/Mini_Web_Project