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
   25   26   27   28   29   30   31   32   33   34   35