더북(TheBook)

8.4.6 게임 종료하기

사용자가 모든 동물을 찾으면 게임을 끝내야겠죠. 그런데 모든 동물을 다 찾았는지 어떻게 알 수 있을까요? checkAnimal[x][y] 배열의 값이 0이면 뒤집히지 않은 카드라는 뜻입니다. 이를 이용해 foundAllAnimals라는 이름의 함수로 처리하겠습니다.

foundAllAnimals()함수 정의부터 살펴봅시다. 카드 20장을 모두 확인해야 하므로 이중 for 문을 사용합니다. checkAnimal[x][y] 배열의 값이 0인 경우가 하나라도 있다면 게임을 계속해야 하므로 0을 반환하고 함수 실행을 마칩니다. 그 이후는 확인할 필요가 없습니다. checkAnimal[x][y] 배열의 값이 0인 경우가 하나도 없다면 모든 카드를 뒤집었다는 뜻이므로 반복문을 빠져나와 1을 반환합니다. 반환하는 값이 0과 1이므로 반환형은 int로 합니다.

main()함수 위에서 foundAllAnimals()함수를 선언합니다.

main()함수에서 foundAllAnimals()함수를 호출합니다. 이때 함수의 반환값이 1이면 모든 동물을 찾았다는 뜻입니다. 이를 확인하기 위해 if 문의 조건으로 foundAllAnimals()함수의 반환값을 판단합니다. foundAllAnimals()함수가 1을 반환하면 성공 메시지를 출력하고 몇 번 실패했는지도 알려 줍니다. 그리고 break 문으로 while 문을 빠져나옵니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.