더북(TheBook)

약병을 선택했을 때 선택한 약병 중에서 진짜 발모제가 있다면 발모제가 있다는 단서를 줘야 합니다. 게임에서는 머리카락이 나는 모습을 보여 줍니다. 여기서는 그럴 수 없는데 어떻게 해야 될까요? 앞에서 진짜 발모제 번호를 저장한 treatment 변수를 선언했습니다. randBottle 변수의 값이 treatment 변수와 같으면 진짜 발모제를 선택했다는 의미입니다. 이를 확인하기 위해 for 문 위에 isIncluded라는 변수를 만들고 0으로 초기화합니다.

bottle[randBottle]의 값을 1로 바꾸고 나서 randBottle 변수와 treatment 변수를 조건문으로 확인합니다. treatment 변수와 randBottle 변수의 값이 같으면 isIncluded 변수의 값을 1로 바꿉니다. isIncluded 변수의 값이 1이면 진짜 발모제라는 뜻입니다.

bottle[randBottle] 값이 0이 아니라면 중복이므로 다시 선택합니다. 그리고 반복 횟수를 한 번 빼야 합니다. 반복 횟수를 빼지 않으면 어떤 문제가 생길까요? 예를 들어, 3번 뽑았는데 모두 선택된 약병이라면 j 값이 이미 반복 조건 끝에 도달해서 새로운 약병을 선택하지 않고 반복문을 끝냅니다. 그래서 중복일 때는 j--로 반복 횟수를 하나 줄여 다시 선택하게 해야 합니다.

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