あなたの仕事は、地図を入力として、縮尺に応じてズームアウトまたはズームインすることです。指定された縮尺はズームアウトする縮尺であるため、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
ます。右側と下側を切り取ります。