In het lettertype JetBrains Mono1 wordt letter E met 4 rechte lijnen geschreven, letter R met 2 rechte en 1 kromme lijn, letter G met 1 rechte en 1 kromme lijn, en letter O met 1 kromme lijn. Alle letters van het woord ERGONOMIE worden in dat lettertype met 21 rechte en 4 kromme lijnen geschreven.

ERGONOMIE
In het lettertype JetBrains Mono wordt het woord ERGONOMIE geschreven met 21 rechte en 4 kromme lijnen.
ERGONOMIE
In het lettertype JetBrains Mono wordt het woord ERGONOMIE geschreven met 21 rechte en 4 kromme lijnen.

Alle letters van het woord SUDOKU worden in het lettertype JetBrains Mono met 5 rechte en 5 kromme lijnen geschreven.

SUDOKU
In het lettertype JetBrains Mono wordt het woord SUDOKU geschreven met 5 rechte en 5 kromme lijnen.
SUDOKU
In het lettertype JetBrains Mono wordt het woord SUDOKU geschreven met 5 rechte en 5 kromme lijnen.

Opgave

De beschrijving van een lettertype wordt opgeslagen in een tekstbestand. Elke regel van het bestand bevat drie informatievelden die van elkaar gescheiden worden door een spatie: i) één enkel karakter, ii) het aantal rechte lijnen in het karakter en iii) het aantal kromme lijnen in het karakter. Elk karakter komt hoogstens één keer in het bestand voor.

Dit bestand beschrijft bijvoorbeeld alle hoofdletters van het lettertype JetBrains Mono (lettertype.txt2):

A 3 0
B 1 2
C 0 1
D 1 1
E 4 0
…
X 2 0
Y 3 0
Z 3 0

Gevraagd wordt:

Een dictionary $$\mathcal{L}$$ (dict) die als tweede argument aan de functies aantal_rechte_lijnen, aantal_kromme_lijnen, enkel_rechte_lijnen, enkel_kromme_lijnen en gebalanceerde_lijnen wordt doorgegeven, moet opgebouwd zijn zoals de dictionaries die door de functie lees_lettertype wordt teruggegeven. Bij het tellen van lijnen moeten deze functies enkel rekening houden met karakters van woord $$w$$ die als sleutel voorkomen in dictionary $$\mathcal{L}$$. De overige karakters van woord $$w$$ moeten genegeerd worden. Deze functies moeten ook onderscheid maken tussen hoofdletters en kleine letters.

Voorbeeld

In onderstaande voorbeeldsessie gaan we ervan uit dat de tekstbestanden lettertype.txt3 en woordenboek.txt4 zich in de huidige directory bevinden.

>>> lettertype = lees_lettertype('lettertype.txt5')
>>> lettertype['E']
(4, 0)
>>> lettertype['R']
(2, 1)
>>> lettertype['G']
(1, 1)
>>> lettertype['O']
(0, 1)

>>> aantal_rechte_lijnen('ERGONOMIE', lettertype)
21
>>> aantal_kromme_lijnen('ERGONOMIE', lettertype)
4

>>> enkel_rechte_lijnen('woordenboek.txt6', lettertype)
{'LAVEMENT', 'INTIMITEITEN', 'ZEVENENHALF', 'VETZAK', 'ZAKENMAN'}
>>> enkel_kromme_lijnen('woordenboek.txt7', lettertype)
{'COCCUS', 'COUSCOUS'}
>>> gebalanceerde_lijnen('woordenboek.txt8', lettertype)
{'SCULPTUUR', 'STADSBOS', 'BOORPROCES', 'SUDOKU'}

Bronnen