Flower Field - це милосердне переосмислення популярної гри «Сапер». Мета гри - знайти всі квіти в саду, скориставшись числовими підказками, які вказують, скільки квітів безпосередньо прилягає (по горизонталі, вертикалі, діагоналі) до клітинки. «Flower Field» виходила в регіональних версіях Microsoft Windows в Італії, у Німеччині, у Південній Кореї, в Японії та на Тайвані.
Ваше завдання - додати кількість квіток до порожніх клітинок завершеного саду «Квіткове поле».
Сам сад - це прямокутна дошка, складена з клітинок, кожна з яких або порожня (' '), або містить квітку ('*').
Для кожної порожньої клітинки порахуйте кількість квіток, суміжних із нею (по горизонталі, по вертикалі, по діагоналі). Якщо порожня клітинка не має суміжних квіток, залиште її порожньою. Інакше замініть її на кількість суміжних квіток.
Наприклад, ми можемо отримати дошку 5 x 4, що має такий вигляд (порожні місця тут позначено символом '·' для показу на екрані):
·*·*·
··*··
··*··
·····
Який наш код має перетворити на такий:
1*3*1
13*31
·2*2·
·111·
Зареєструйтеся на Exercism, щоб вивчати й опановувати Prolog, а також 109 вправ та справжнє наставництво від людей, і все це безкоштовно.
Ми розглянемо вкладені цикли `for`, вдале застосування min/max для спрощення перевірки меж, функціональні конвеєри та роботу з двовимірними матрицями.