show() 메서드는 flagImg 변수에 깃발 이미지 경로를 지정할 <img> 태그를 .querySelector()를 사용하여 지정하고,
flagImg에 .setAttribute() 메서드를 사용하여 'src' 에는 this.flag 주소를 저장하도록 한다.
국기 추가
countryGroup 배열에 new Country("나라이름", "깃발 이미지 경로")를 .push() 메서드를 사용하여 추가한다. (일일히 나라별 전체 추가함)
랜덤으로 국기 하나 뽑기
randomPick변수에는 countryGroup에서 랜덤으로 하나 선택하여 저장
randomPickName변수에는 countryGroup에서 randomPick에 담긴 요소의 이름을 담는다. 여기서 randomPickName변수는 객관식 정답을 확인하기 위한 용도이다.
랜덤으로 뽑힌 국기를 제외한 국기들 담기
countryRest에 countryGroup을 담는데 스프레드 형식으로 담는다. [...countryGroup] 이렇게.
for문을 사용해서 countryRest 길이만큼 반복을 하는데, randomPick과 i가 같으면 countryRest 배열에서 해당 i를 splice() 메서드를 사용하여 제거한다.
랜덤으로 뽑힌 국기를 제외한 국기들 중에서 랜덤으로 3개 뽑기
while문을 사용하여 countryRest의 길이가 i와 같지 않으면 반복되도록 조건을 준다.
블럭에는 randomOtherPick변수에 countryRest(랜덤으로 뽑힌 국기를 제외하고 담은 국기들)에서 1개씩 뽑아서 저장하고, blank변수에 countryRest에서 raondomOtherPick에 담긴 데이터와 동일한 것을 찾아 .splice() 해준다. 이것을 countryRest의 길이가 3이 되면 멈춘다. 3이 되면 멈추는 이유는 객관식 4지선답에서 정답을 제외한 나머지 3개의 답이 필요하기 때문이다.
랜덤으로 뽑은 국기와 제외 국가들 중 랜덤으로 뽑은 국기 3개를 합치기
flagAnswer를 배열로 생성 후, flagAnswer에 랜덤으로 뽑은 국기와 제외 국가들 중 랜덤으로 뽑은 국기 3개를 담는다.
웹브라우저 화면에 랜덤으로 뽑은 국기의 이미지를 출력
객관식 보기 4가지를 셔플 시킨 뒤 출력하기
function suffle(array) {} array를 파라미터로 받는 함수 생성.
suffle 함수 블럭에는 currentIndex에 array.length를 담기. 그리고 while문을 사용하여 currentIndex가 0이 아니라면 계속 실행이라는 조건을 설정.
while문 블럭에는 randomIndex변수에 currentIndex 중 하나를 선택하여 담는다. 그리고 currentIndex-- 감소 시킨다.