я думаю, для початку, мона написати скрипт, котрий робив би те саме, але заміть картиночок він ставив би якусь циферку
типу, 0 - це клітинка з морем, 1 - пісочок і т.д.
а потім вже думати над тим, як малювати гори і ліси, бо гори і ліси складаються ж з декількох картиночок
тут, може, підійде щось типу cellular automata, і всі ті гори з лісами повинні мати якісь свої правила
наприклад, проходимо по клітинкам мапи, і з якоюсь ймовірністю розставляємо на клітинках шматочки лісів, гір і т.д.
далі знову проходимо, і кажемо, якщо поточна клітинка не ліс, і не гора, і не т.д., але навколо цієї клітинки є 4, або більше клітинок з горами, то ставимо тут гору. Таким чином, якщо після першого проходу у нас буде 4 клітинки з горою, котрі між собою будуть мати дірку, то ця дірка буде залита картинкою гори, бо навколо неї вже буде 4 клітинки з горами, ну, ви зрозуміли....