Tugas Anda adalah, diberi peta sebagai input, memperkecil atau memperkecil, tergantung pada skala. Perhatikan bahwa skala yang diberikan adalah skala yang digunakan untuk memperkecil , sehingga skala antara 0 dan 1 akan benar-benar diperbesar.
Misalnya, diberikan peta berikut (dibuat dengan buruk):
..____....
../OOO\...
..\OO/\...
..........
Dan faktor skala 2, Anda harus memisahkannya menjadi bagian 2x2:
.. | __ | __ | .. | ..
.. | /O | OO | \. | ..
----------------------
.. | \O | O/ | \. | ..
.. | .. | .. | .. | ..
Dan di setiap bagian menemukan karakter yang paling umum:
.__..
.....
Perhatikan bahwa ada bagian yang ambigu:
__
OO
Saya memilih untuk menggunakan _
untuk bagian ini, tetapi menggunakan O
akan bisa diterima juga.
Jika, misalnya, Anda diberi faktor skala 4, Anda akan membaginya menjadi bagian 4x4, seperti:
..__ | __.. | ..
../O | OO\. | ..
..\O | O/\. | ..
.... | .... | ..
Seperti yang Anda tahu, peta tidak masuk dengan sempurna ke bagian 4x4, tapi tidak apa-apa, karena kami hanya bisa menurunkan ukuran bagian di samping.
Juga, setiap kali kita perlu memotong peta kita, kita memotong di bagian bawah atau di sisi kanan.
Peta yang dihasilkan akan terlihat seperti ini:
...
Sungguh peta yang menarik!
Untuk faktor skala di bawah 1, seperti 0,5, prosesnya lebih sederhana karena kami memperbesarnya. Ambil peta ini:
./O\.
.\O/.
Zooming dengan skala 0,5:
..//OO\\..
..//OO\\..
..\\OO//..
..\\OO//..
Perhatikan bahwa setiap kali faktor zoom Anda kurang dari 1
, berikut ini akan selalu benar: 1/(zoom factor) % 2 == 0
. Ketika itu di atas 1
, satu-satunya jaminan yang Anda miliki adalah bahwa itu akan menjadi nomor keseluruhan. Saat itu 1
, peta harus tetap sama.
Contoh:
4
/OO\
|OO|
|OO|
\OO/
O
0.25
ABCD
AAAABBBBCCCCDDDD
AAAABBBBCCCCDDDD
AAAABBBBCCCCDDDD
AAAABBBBCCCCDDDD
1
My zoom
should
not change
My zoom
should
not change
Anda juga dapat menggunakan peta sebagai larik yang dipisahkan oleh baris.
.
dari O
. Kami memotong di sisi kanan dan bawah.