Nhiệm vụ của bạn là, đưa ra một bản đồ làm đầu vào, phóng to hoặc thu nhỏ, tùy thuộc vào tỷ lệ. Lưu ý rằng tỷ lệ đã cho là tỷ lệ để thu nhỏ , do đó tỷ lệ giữa 0 và 1 sẽ thực sự phóng to.
Ví dụ: đưa ra bản đồ (được thực hiện kém) sau đây:
..____....
../OOO\...
..\OO/\...
..........
Và hệ số tỷ lệ là 2, trước tiên bạn nên tách nó thành các phần 2x2:
.. | __ | __ | .. | ..
.. | /O | OO | \. | ..
----------------------
.. | \O | O/ | \. | ..
.. | .. | .. | .. | ..
Và trong mỗi phần tìm thấy ký tự phổ biến nhất:
.__..
.....
Lưu ý rằng có một phần mơ hồ:
__
OO
Tôi đã chọn sử dụng _
cho phần này, nhưng sử dụng O
cũng hoàn toàn chấp nhận được.
Ví dụ, nếu bạn được cho hệ số tỷ lệ là 4, bạn sẽ chia nó thành các phần 4 x 4, như vậy:
..__ | __.. | ..
../O | OO\. | ..
..\O | O/\. | ..
.... | .... | ..
Như bạn có thể nói, bản đồ không hoàn toàn phù hợp với các phần 4 x 4, nhưng điều đó tốt, vì chúng ta chỉ có thể hạ thấp kích thước của phần bên cạnh.
Ngoài ra, bất cứ khi nào chúng tôi cần cắt bỏ bản đồ của mình, chúng tôi sẽ cắt ở phía dưới hoặc bên phải.
Bản đồ kết quả sẽ trông như vậy:
...
Thật là một bản đồ thú vị!
Đối với các yếu tố tỷ lệ dưới 1, chẳng hạn như 0,5, quá trình này đơn giản hơn khi chúng tôi phóng to. Lấy bản đồ này:
./O\.
.\O/.
Thu phóng với tỷ lệ 0,5:
..//OO\\..
..//OO\\..
..\\OO//..
..\\OO//..
Lưu ý rằng bất cứ khi nào hệ số thu phóng của bạn nhỏ hơn 1
, điều sau đây sẽ luôn đúng : 1/(zoom factor) % 2 == 0
. Khi nó ở trên 1
, đảm bảo duy nhất bạn có là nó sẽ là một số nguyên. Khi đó 1
, bản đồ nên giữ nguyên.
Ví dụ:
4
/OO\
|OO|
|OO|
\OO/
O
0.25
ABCD
AAAABBBBCCCCDDDD
AAAABBBBCCCCDDDD
AAAABBBBCCCCDDDD
AAAABBBBCCCCDDDD
1
My zoom
should
not change
My zoom
should
not change
Bạn cũng có thể lấy bản đồ dưới dạng một mảng được phân tách bằng dòng mới.
.
hơn O
. Chúng tôi cắt ở phía bên phải và phía dưới.