당신의 임무는지도가 입력으로 주어지면, 규모에 따라 축소하거나 확대하는 것입니다. 주어진 스케일은 축소 할 스케일이므로 0에서 1 사이의 스케일은 실제로 확대됩니다.
예를 들어, 다음과 같은 (잘못 만들어진)지도가 주어진다면 :
..____....
../OOO\...
..\OO/\...
..........
그리고 배율이 2 인 경우 먼저 2x2 섹션으로 분리해야합니다.
.. | __ | __ | .. | ..
.. | /O | OO | \. | ..
----------------------
.. | \O | O/ | \. | ..
.. | .. | .. | .. | ..
그리고 각 섹션에서 가장 일반적인 특성을 찾으십시오.
.__..
.....
모호한 섹션이 있습니다.
__
OO
_이 섹션 에 사용 하기로 선택 했지만 사용 O도 완벽하게 허용되었을 것입니다.
예를 들어, 배율이 4 인 경우 다음과 같이 4x4 섹션으로 분할합니다.
..__ | __.. | ..
../O | OO\. | ..
..\O | O/\. | ..
.... | .... | ..
아시다시피,지도는 4x4 섹션에 완벽하게 맞지는 않지만 측면의 섹션 크기를 줄일 수 있으므로 괜찮습니다.
또한지도를 잘라야 할 때마다 맨 아래 나 오른쪽에서 잘립니다.
결과 맵은 다음과 같습니다.
...
정말 재미있는지도!
0.5와 같이 1 미만의 축척 비율의 경우 대신 확대 할 때 프로세스가 더 간단합니다. 이지도를 보자 :
./O\.
.\O/.
0.5 배율로 확대 :
..//OO\\..
..//OO\\..
..\\OO//..
..\\OO//..
확대 / 축소 비율이보다 작을 때마다 1다음 사항이 항상 적용 1/(zoom factor) % 2 == 0됩니다. 이 값을 초과 1하면 정수가 될 것입니다. 이 때 1,지도는 동일하게 유지해야한다.
예 :
4
/OO\
|OO|
|OO|
\OO/
O
0.25
ABCD
AAAABBBBCCCCDDDD
AAAABBBBCCCCDDDD
AAAABBBBCCCCDDDD
AAAABBBBCCCCDDDD
1
My zoom
should
not change
My zoom
should
not change
맵을 개행으로 구분 된 배열로 사용할 수도 있습니다.
.이상이 없습니다 O. 오른쪽과 아래쪽을 잘라냅니다.