Oefeningen H17
Figures with interfaces
Gebruik je Rechthoek-klasse uit de Figuren oefening die je eerder hebt aangemaakt. Maak een List aan waarin je een 10 rechthoek-objecten plaatsen, allen met een verschillende grootte. Zorg ervoor dat je nu je rechthoeken met de Sort()-methode kan sorteren op oppervlakte.
Toon de werking aan in een klein voorbeeld programma.
Carbon Footprint (Essential)
Maak 4 klassen:
HuisFabriekAutoPlant
Maak een interface ICarbonFootPrint die
- 1 methode
BerekenFootprintheeft die een int teruggeeft en geen parameters nodig heeft - 1 methode
VerlaagFootprintdie niets teruggeeft en geen parameters nodig heeft
Breidt de volgende klassen met de interface uit:
- De carbon footprint van een
huisis gebaseerd op het volume van het huis in kubieke meter maal 10. - De carbon footprint van een
fabriekis gebaseerd op het aantal werknemers maal 100. - De carbon footprint van een
autois gebaseerd op het merk
Het verlagen van de footprint in iedere klasse verzin je zelf (door bijvoorbeeld bij het huis de factor 10 met 1 te verlagen).
Zorg ervoor dat van iedere klasse de footprint kan bevraagd worden (maak/verzin dus de nodige properties per klasse om dit te bereken). De klasse plant moet je niet aanpassen.
Plaats van iedere klasse 2 objecten in een gemeenschappelijke lijst en zorg ervoor dat:
- de footprint van alle objecten getoond wordt (planten worden overgeslagen)
- de gemiddelde footprint van alle objecten (ook planten worden meegeteld) berekend
- toont welk object de hoogte footprint heeft
- van alle objecten de footprint kan verlaagd worden
Pokémon interfaces (Essential)
Shadow Pokémon zijn een speciaal ras Pokémon (zie hier) en kunnen "purified" worden op verschillende manieren. Maak een interface IShadow die een methode Purify heeft. Verzin enkele Pokémon die Shadow Pokémon zijn, geef ze de interface, en verzin manieren hoe ze purified kunnen worden (bv door hun HP op -1 te zetten). Kan je door je lijst van Pokémon gaan enkel de Shadow Pokémon op het scherm tonen?
PokéDex IList (PRO)
Maak een PokéDex die de interface IEnumerable implementeert zoals hier uitgelegd. Hierdoor kan je je PokéDex klasse gebruiken als een List.
Mapmaker afwerken
Vervolledig het all-in-project "Map Maker". Inclusief interfaces en is/as .Kan je zelf extra zaken toevoegen zoals andere kamers, andere functionaliteit, etc.
Game
{% hint style="info" %} Maak eerst de corona missie van dit hoofdstuk. Die opdracht is veel kleiner dan deze stevige brok.

