2번째 입력할때 입력 글자가 3글자로 제한되는데.. 뭐가 문제일 까요 ㅠㅠㅠ
// 숫자야구
var 바디 = document.body;
var 숫자후보;
var 숫자배열;
function 숫자뽑기() {
숫자후보 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
숫자배열 = [];
for (var i = 0; i < 4; i += 1) {
var 뽑은것 = 숫자후보.splice(Math.floor(Math.random() * (9 - i)), 1)[0];
숫자배열.push(뽑은것);
}
}
// 문제 시작
숫자뽑기();
console.log(숫자배열); // 게임 답 확인용
var 결과 = document.createElement("h3");
바디.append(결과);
var 폼 = document.createElement('form');
document.body.append(폼);
var 입력창 = document.createElement('input');
폼.append(입력창);
입력창.maxLength = 4; // input 입력 4글자로 제한
var 버튼 = document.createElement('button');
버튼.textContent = "입력";
버튼.style.marginLeft = '3px';
폼.append(버튼);
var 결과창 = document.createElement('div');
document.body.append(결과창);
var 틀린횟수 = 0;
폼.addEventListener('submit', function 콜백함수(e) {
e.preventDefault();
var 답 = 입력창.value;
if (답 === 숫자배열.join("")) {
// 답이 맞으면
결과.textContent = "홈런";
입력창.value = " ";
입력창.focus();
// 새로운 문제 내기
숫자뽑기();
틀린횟수 = 0;
} else {
// 답이 틀리면
var 답배열 = 답.split(" ");
var 스트라이크 = 0;
var 볼 = 0;
틀린횟수 += 1;
if (틀린횟수 > 4) { // 4번 넘게 틀리면
결과.textContent = '4번 넘게 틀려서 실패! 답은' + 숫자배열.join(',') + '였습니다.';
입력창.value = " ";
입력창.focus();
// 새로운 문제 내기
숫자뽑기();
틀린횟수 = 0;
} else { // 4번 미만으로 틀리면
console.log('답이 틀리면', 답배열); // 에러 확인용
for (var i = 0; i < 3; i += 1) {
if (Number(답배열[i]) === 숫자배열[i]) { // 같은 자리인지 확인
스트라이크 += 1;
console.log('같은자리?'); // 에러 확인용
} else if (숫자배열.indexOf(Number(답배열[i])) > -1) { //같은 자리는 아니지만, 숫자가 겹치는지 확인 && 여기서 -1 은 indexOf에서 없는값을 의미
볼 += 1;
console.log('겹치는 숫자?'); // 에러 확인용
}
}
결과.textContent = 스트라이크 + "스트라이크" + 볼 + "볼 입니다";
입력창.value = " ";
입력창.focus();
}
}
});