Oefeningen H17
Last updated
Was this helpful?
Last updated
Was this helpful?
Gebruik je 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.
Maak 4 klassen:
Huis
Fabriek
Auto
Plant
Maak een interface ICarbonFootPrint
die
1 methode BerekenFootprint
heeft die een int teruggeeft en geen parameters nodig heeft
1 methode VerlaagFootprint
die niets teruggeeft en geen parameters nodig heeft
Breidt de volgende klassen met de interface uit:
De carbon footprint van een huis
is gebaseerd op het volume van het huis in kubieke meter maal 10.
De carbon footprint van een fabriek
is gebaseerd op het aantal werknemers maal 100.
De carbon footprint van een auto
is 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
Vervolledig het all-in-project "Map Maker". Inclusief interfaces en is/as .Kan je zelf extra zaken toevoegen zoals andere kamers, andere functionaliteit, etc.
Zie onderaan pagina voor minimale klasse-hiërarchie en interfaces.
Maak een spel dat als volgt werkt:
De speler dient met zijn pion de overkant van het veld te bereiken.
Het veld bestaat uit 20 bij 20 vakjes. Op ieder vakje kan maximum één mapelement staan:
De speler zelf
Een monster
Een rots
Een speler kan niet door rotsen of monsters wandelen.
Een speler kan in zijn beurt telkens één vakje bewegen OF naar rechts schieten:
Indien geschoten wordt dan zal het mapelement op het vakje rechts van de speler vernietigd worden (rots of monster)
Monsters kunnen ook bewegen. In de beurt van de monsters beweegt ieder monster in een willekeurige richting indien er geen rotsen of spelers LINKS van het monster staan.
Indien er WEL een rots of speler LINKS van het monster staat dan schiet het monster en vernietigd het de speler of rots.
Enkel RockDestroyer monsters kunnen schieten. De setup van het spel bestaat uit volgende stappen:
Maak een 20 bij 20 array aan en plaats bepaalde hoeveelheid monsters en rotsen op de kaart, behalve op kolom 0.
Plaats de speler op de plek 0,10 in de array (midden van kolom 0)
Doorloop de volgende stappen tot er winnaar is
Iedere beurt van het spel bestaat uit volgende stappen:
Vraag speler om input (bewegen in 1 van de 4 richtingen OF schieten)
Voer actie van speler uit
Kijk of speler overkant van kaart heeft bereikt, zo ja: gewonnen!
Beweeg ieder monster op de kaart in een willekeurige richting
Beweeg iedere RockDestroyer OF laat RockDestroyer schieten
Stel de speler voor door een X, een rots door O , een monster door M een RockDestroyer door D.
Voorgaande beschrijving is een ‘minimale’ beschrijving. Voorzie extra functionaliteit naar believen zoals:
Speler heeft levens
Monsters hebben levens
Andere soort monsters (bv slimmere)
Meerdere levels met telkens andere/meer monsters bijvoorbeeld
Meerdere spelers
Verder schieten, of schieten in andere richtingen.
Location
is van het type Point
(compositie). Point
is een zelfgemaakte mini klasse die er als volgt uit (minimaal uitziet):
En dus in je abstracte klasse MapElement zal iets krijgen in de trend van: public Point Location {get;set;} = new Point();
Shadow Pokémon zijn een speciaal ras Pokémon () 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?
Maak een PokéDex die de interface IEnumerable
implementeert zoals . Hierdoor kan je je PokéDex klasse gebruiken als een List
.
Maak eerst de . Die opdracht is veel kleiner dan deze stevige brok.