Tijd om ook eens de andere hoeken te bekijken — je wil immers de kans op een plotselinge boomstop minimaliseren.
Bepaal het aantal bomen dat je zou tegenkomen als je onder elk van de volgende hoeken vertrekt vanaf de linkerbovenhoek en de kaart tot aan de onderkant doorkruist.
Op dezelfde kaart die we eerder al gebruikten:
..##.......
#...#...#..
.#....#..#.
..#.#...#.#
.#...##..#.
..#.##.....
.#.#.#....#
.#........#
#.##...#...
#...##....#
.#..#...#.#
zou je onder de zoeken respectievelijk 2
, 7
, 3
, 4
en 2
bomen tegenkomen.
Schrijf een functie count_trees
waaraan drie argumenten moeten doorgegeven worden: i) een getal \(r \in \mathbb{N}_0\) (int
), ii) een getal \(d \in \mathbb{N}_0\) (int
) en iii) de padnaam (str
) van een tekstbestand met een kaart van de open gebieden (.
) en de bomen (#
) op een helling. De functie moet het aantal bomen (int
) teruggeven dat je zou tegenkomen als je vertrekt vanaf de linkerbovenhoek van de kaart en telkens \(r\) posities naar rechts en \(d\) naar beneden gaat.
In deze interactieve sessie gaan we ervan uit dat het tekstbestand slope.txt
1 zich in de huidige directory bevindt.
>>> count_trees(1, 1, 'slope.txt')
2
>>> count_trees(3, 1, 'slope.txt')
7
>>> count_trees(5, 1, 'slope.txt')
3
>>> count_trees(7, 1, 'slope.txt')
4
>>> count_trees(1, 2, 'slope.txt')
2