Page 30 -
P. 30
그림 5-6 숫자야구 반복문 이해하기
i = 0 i = 1 i = 2 i = 3
1 5 4 2 1 5 4 2 1 5 4 2 1 5 4 2
2 3 4 6 2 3 4 6 2 3 4 6 2 3 4 6
index = 2 index = 0
먼저 정답 숫자를 하나씩 선택합니다. 변수 i를 선언하고 배열 길이인 answer.length만큼 반
복합니다. 5.2 무작위로 숫자 뽑기에서 반복문의 끝 값을 이하(<=) 대신 미만(<)으로 선택하는 경
우가 있다고 했는데 바로 이 경우입니다. answer.length는 4인데 숫자로는 0~3을 반복해야
합니다. 따라서 4 미만으로 적습니다.
이제 정답 숫자 하나에 대해 value.indexOf(answer[i])로 일치하는 숫자가 있는지 찾아냅니
다. '2346'.indexOf(1)이나 '2346'.indexOf(5)를 하면 -1이 나옵니다. '2346'.indexOf(4)
를 하면 인덱스 2에 4가 있으므로 2가 반환됩니다. 이때 index와 i가 일치하므로 스트라이크
가 됩니다. '2346'.indexOf(2)를 하면 0이 반환됩니다. -1은 아니지만 i와 일치하지 않으므
로(i === 3) 볼이 됩니다. 반복문을 다 돌고 나면 최종적으로 1스트라이크 1볼이 됩니다.
스트라이크와 볼의 개수를 구했으니 이제 몇 스트라이크 몇 볼인지를 화면에 표시합니다.
$logs 태그에 append 메서드로 텍스트와 태그를 동시에 추가할 수 있습니다. appendChild 메
서드는 하나의 텍스트나 태그만 추가할 수 있지만, append는 여러 개가 가능합니다.
메시지를 표시한 뒤에는 tries 배열에 방금 입력한 값을 저장해서 시도 횟수를 1 늘려 줍니다.
이렇게 숫자야구 게임을 완성했습니다! 10번의 기회 안에 정답을 맞히면 됩니다.
그림 5-7 실행결과
정답을 맞힌 경우 정답을 맞히지 못한 경우
256