더북(TheBook)

같은 원리로 y 좌표는 카드 번호를 5로 나눈 나머지입니다. 카드 번호 0~4를 5로 나누면 나머지는 순서대로 0, 1, 2, 3, 4입니다. 마찬가지로 카드 번호 5~9를 5로 나누면 나머지는 0, 1, 2, 3, 4입니다. 10~14와 15~19도 같습니다. 따라서 conv_pos_y()함수의 반환값은 y % 5입니다.

8.5 프로젝트.c

(생략)
int conv_pos_x(int x); ---------------- ➊ x 좌표 변환 함수 선언
int conv_pos_y(int y); ---------------- ➊ y 좌표 변환 함수 선언

int main(void) { (중략) }

void initAnimalArray() { (중략) } 

void initAnimalName() { (중략) }
 
void shuffleAnimal() { (중략) } 

int getEmptyPosition() { (중략) } 

int conv_pos_x(int x) { --------------- ➋ x 좌표 변환 함수 정의
    return x / 5; --------------------- ➌ x 좌표, 카드 번호를 5로 나눈 몫
}

int conv_pos_y(int y) { --------------- ➋ y 좌표 변환 함수 정의
    return y % 5; --------------------- ➍ y 좌표, 카드 번호를 5로 나눈 나머지 
}

이 부분은 조금 헷갈릴 수 있습니다. 코드가 이해되지 않는다면 각 카드 번호를 5로 나누어 몫과 나머지를 쓴 후 해당 좌표와 비교해 일치하는지 확인해 보세요.

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