13장
셀프체크
① 사용자가 원하는 카드 수를 prompt()로 입력받습니다.
② colors에도 색상을 10개 준비합니다.
③ 10가지 색을 모두 사용하지 않고 사용자 입력에 따라 사용하는 색의 수가 달라집니다. 18을 입력하면 9가지 색만 쓰고, 12를 입력하면 6가지 색을 씁니다. 따라서 slice()를 통해 사용자가 입력한 숫자의 반에 해당하는 색상 수를 잘라내면 됩니다. slice()도 concat()처럼 기존 배열을 직접 수정하지 않으므로 colors 배열이 바뀔 걱정은 하지 않아도 됩니다.
④ 성공할 때까지 걸린 시간은 시작 시각(startTime)에서 종료 시각(endTime)을 빼 구할 수 있습니다. 시작 시각은 처음에 카드를 보여 줬다가 감출 때 측정하고, 종료 시각은 모든 카드를 뒤집은 순간에 측정합니다. endTime에 값을 대입하는 코드가 startTime에 값을 대입하는 코드보다 위에 있지만, 호출 스택과 이벤트 루프를 익혔으므로 코드의 작동 순서 때문에 골머리를 앓는 일은 더는 없겠죠?