숫자슬라이드퍼즐(3x3)





* 숫자 슬라이드 퍼즐(카카오 프렌즈 무지 조아 !)
- 스페이스 키를 누르면 풀이과정의 역으로 섞이도록 처리
    (키 조작함수에서 키 입력 과정만 제거하고, 랜덤 난수 4개를 받아 방향으로 지정하여(함수 오버로딩) 섞이도록 처리)
- 방향키를 이용하여 카드 구조체를 스왑 처리
(참고 : 답안 이미지 하나만 동적할당하고, 해당 이미지를 자른 후 확대 하여 카드 구조체에 붙여놓았기 때문에 이미지가 깨져보인다. 해결하려면 각 구조체에 이미지를 각각 할당 받으면 좀 더 높은 해상도의 카드 이미지 확인 가능)



- 카드 구조체를 스왑하는 과정에서 포지션 위치와 구조체 번호끼리 헷갈려 고생좀 함...

//키 조작(좌측 키 처리만 참고용으로...)
if (KEYMANAGER->isOnceKeyDown(VK_LEFT) && card[8].position % 3 != 0)
{
//위치 넘버 스왑
temp1_position = card[8].position;
temp2_position = card[8].position - 1;
//구조체 스왑
temp1_struct = card[8];
for (int i = 0; i < 9; i++)
{
if (card[i].position != position[temp2_position]) continue;
else if (card[i].position == position[temp2_position])
{
card[8] = card[i];
card[i] = temp1_struct;
card[8].position = temp2_position;
card[i].position = temp1_position;
break;
}
}
}

댓글