Nu ben je klaar om de afbeelding op zeemonsters te controleren.
De randen van elke tegel maken geen deel uit van de eigenlijke afbeelding. Begin met deze randen te verwijderen.
In het voorgaande voorbeeld worden de tegels:
.#.#..#. ##...#.# #..#####
###....# .#....#. .#......
##.##.## #.#.#..# #####...
###.#### #...#.## ###.#..#
##.#.... #.##.### #...#.##
...##### ###.#... .#####.#
....#..# ...##..# .#.###..
.####... #..#.... .#......
#..#.##. .#..###. #.##....
#.####.. #.####.# .#.###..
###.#.#. ..#.#### ##.#..##
#.####.. ..##..## ######.#
##..##.# ...#...# .#.#.#..
...#..#. .#.#.##. .###.###
.#.#.... #.##.#.. .###.##.
###.#... #..#.##. ######..
.#.#.### .##.##.# ..#.##..
.####.## #.#...## #.#..#.#
..#.#..# ..#.#.#. ####.###
#..####. ..#.#.#. ###.###.
#####..# ####...# ##....##
#.##..#. .#...#.. ####...#
.#.###.. ##..##.. ####.##.
...###.. .##...#. ..#..###
Verwijder de gaten om de eigenlijke afbeelding te vormen:
.#.#..#.##...#.##..#####
###....#.#....#..#......
##.##.###.#.#..######...
###.#####...#.#####.#..#
##.#....#.##.####...#.##
...########.#....#####.#
....#..#...##..#.#.###..
.####...#..#.....#......
#..#.##..#..###.#.##....
#.####..#.####.#.#.###..
###.#.#...#.######.#..##
#.####....##..########.#
##..##.#...#...#.#.#.#..
...#..#..#.#.##..###.###
.#.#....#.##.#...###.##.
###.#...#..#.##.######..
.#.#.###.##.##.#..#.##..
.####.###.#...###.#..#.#
..#.#..#..#.#.#.####.###
#..####...#.#.#.###.###.
#####..#####...###....##
#.##..#..#...#..####...#
.#.###..##..##..####.##.
...###...##...#...#..###
Nu ben je klaar om naar zeemonsters te zoeken! Omdat je afbeelding monochroom is, ziet een zeemonster er als volgt uit:
#
# ## ## ###
# # # # # #
Bij het zoeken naar dit patroon in de afbeelding, kunnen de spaties van alles zijn. Alleen de hekjes (#
) moeten overeenkomen. Het kan ook zijn dat je de afbeelding moet draaien of spiegelen voordat deze correct georiƫnteerd is om zeemonsters te vinden. Nadat we bovenstaande afbeelding in de juiste richting gedraaid hebben, zijn er twee zeemonsters te zien (aangeduid met O
):
.####...#####..#...###..
#####..#..#.#.####..#.#.
.#.#...#.###...#.##.O#..
#.O.##.OO#.#.OO.##.OOO##
..#O.#O#.O##O..O.#O##.##
...#.#..##.##...#..#..##
#.##.#..#.#..#..##.#.#..
.###.##.....#...###.#...
#.####.#.#....##.#..#.#.
##...#..#....#..#...####
..#.##...###..#.#####..#
....#.##.#.#####....#...
..##.##.###.....#.##..#.
#...#...###..####....##.
.#.##...#.##.#.#.###...#
#.###.#..####...##..#...
#.###...#.##...#.##O###.
.O##.#OO.###OO##..OOO##.
..O#.O..O..O.#O##O##.###
#.#..##.########..#..##.
#.#####..#.#...##..#....
#....##..#.#########..##
#...#.....#..##...###.##
#..###....##.#...##.##.#
Bepaal hoe ruw de wateren zijn in de leefomgeving van de zeemonsters, door het aantal hekjes (#
) te tellen dat geen deel uitmaakt van een zeemonster. In bovenstaand voorbeeld is de waterruwheid van de leefomgeving gelijk aan 273
.
Hoeveel hekjes (#
) maken geen deel uit van een zeemonster? Hiervoor ga je als volgt te werk:
water_roughness
waaraan de padnaam (char*
) van een tekstbestand met \(n\) tegels moet doorgegeven worden, waarbij \(n\) een volkomen kwadraat is. De functie moet de waterruwheid (int
) van de leefomgeving van zeemonsters teruggeven.In deze interactieve sessie gaan we ervan uit dat het tekstbestand tiles.txt
1 zich in de huidige directory bevindt.
> water_roughness("tiles.txt")
273