Нам дали домашнее задание, где мы получаем образец доски, похожей на тральщик, с пробелами вместо цифр (доска находится в форме [String]) и уже размещенными минами. Нам нужно создать функцию, которая заменяет все пробелы числами, которые равны числу примыкающих мин.
Я не смог добиться реального прогресса, кроме удаления всех пробелов с нулями, которыевероятно, даже не полезно в любом случае. У меня также была проблема с нулями типа Char, из-за чего я не мог добавить, например, +1 к нему. Было бы здорово, если бы это можно было решить без продвинутых функций, поэтому я могу понять это, но подойдет любое решение или хотя бы идея решения.
Вот как должно выглядеть начало кода.
import Data.Char
type Result = [String]
pp :: Result -> IO ()
pp x = putStr (concat (map (++"\n") x)) --prints strings in a column.
sampleInput = [" ",
" * ",
" * ",
" * ",
" *",
"*** ",
"* * ",
"*** "]
minesweeper :: Result -> Result
И результат должен быть таким
Prelude>pp(minesweeper sampleInput)
1110000
1*11110
1122*10
001*221
233211*
***2011
*8*3000
***2000
Я невероятно рад любым указаниям, так как не могу добиться реального прогресса.
Обновление: сделалнемного другое, но похожее решение. Вы можете проверить связанный вопрос здесь