Zie Scherp - Oefeningen
Handboek Zie Scherp Scherper 2e editieThe Corona filesHandboek backupOefeningen backup
  • Welkom
  • Oefeningen H1 tot en met H5
    • Oefeningen H1
    • Oefeningen H2
    • Oefeningen H3
    • Oefeningen H4
    • Oefeningen H5
    • Gecombineerde oefeningen
      • Opgave 1
      • Opgave 2
      • Opgave 3
      • Opgave 4
      • Opgave 5
  • Oefeningen H6 tot en met H8
    • Oefeningen H6
      • Week 1
      • Week 2
    • Oefeningen H7
      • Week 1
      • Week 2
    • Oefeningen H8
      • Week 1
      • Week 2
    • Voorbeeld vaardigheidsproeven
      • Opgave 1 (2022)
      • Opgave 2 (2019)
      • Opgave 3 (2019)
      • Opgave 4 (2020)
      • Opgave 5 (2020)
      • Opgave 6 (2021)
      • Opgave 7 (2022)
      • Opgave 8 (2022)
      • Opgave 9 (2023)
      • Opgave 10 (2024)
      • Opgave 11 (2024)
      • Opgave 12 (2025)
    • Gecombineerde opgaven
      • Console Matrix
      • Unicode filmpjes maken met loops
      • Unicode filmpjes maken met methoden
      • Music Maestro
      • Fun with methods: een verhaalgenerator
      • Tekst-gebaseerd Maze game
      • Conway game of life
      • How to make your console app look cool
  • Oefeningen H9 tot en met H12
    • Oefeningen H9
    • Oefeningen H10
    • Oefeningen H11
    • Oefeningen H12
    • Gecombineerde oefeningen
      • Opgave 1
      • Opgave 2
      • Opgave 3
      • Opgave 4
      • Opgave 5
  • Oefeningen H13 tot en met H18
    • Oefeningen H13
    • Oefeningen H14
    • Oefeningen H15
    • Oefeningen H16
    • Oefeningen H17
    • Oefeningen H18
    • Voorbeeld vaardigheidsproeven
      • Opgave 1 (2019)
      • Opgave 2 (2019)
      • Opgave 3 (2020)
      • Opgave 4 (2021)
      • Opgave 5 (2021)
      • Opgave 6 (2022)
      • Opgave 7 (2022)
      • Opgave 8 (2023)
      • Opgave 9 (2024)
    • Gecombineerde oefeningen
      • OO Textbased Game
      • Map Maker
      • Mapmaker & WPF
      • Magic The Gathering API
      • C# Game remakes
Powered by GitBook
On this page
  • Figures with interfaces
  • Carbon Footprint (Essential)
  • Pokémon interfaces (Essential)
  • PokéDex IList (PRO)
  • Mapmaker afwerken
  • Game
  • Extra’s:
  • Klasse-schema
  • Enkele screenshots

Was this helpful?

  1. Oefeningen H13 tot en met H18

Oefeningen H17

PreviousOefeningen H16NextOefeningen H18

Last updated 1 year ago

Was this helpful?

Figures with interfaces

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.

Carbon Footprint (Essential)

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

Pokémon interfaces (Essential)

PokéDex IList (PRO)

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

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:

  1. Maak een 20 bij 20 array aan en plaats bepaalde hoeveelheid monsters en rotsen op de kaart, behalve op kolom 0.

  2. Plaats de speler op de plek 0,10 in de array (midden van kolom 0)

  3. Doorloop de volgende stappen tot er winnaar is

Iedere beurt van het spel bestaat uit volgende stappen:

  1. Vraag speler om input (bewegen in 1 van de 4 richtingen OF schieten)

  2. Voer actie van speler uit

  3. Kijk of speler overkant van kaart heeft bereikt, zo ja: gewonnen!

  4. Beweeg ieder monster op de kaart in een willekeurige richting

  5. 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.

Je zal de meeste logica in je Main of een Manager klasse moeten plaatsen. De Speler klasse bijvoorbeeld kan niet beslissen at een monster moet doen, dat zou willen zeggen dat de speler als jet ware " in het monster" beslissingen kan maken, wat tegen het principe van OOP zou zijn.

Extra’s:

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.

Klasse-schema

Location is van het type Point (compositie). Point is een zelfgemaakte mini klasse die er als volgt uit (minimaal uitziet):

class Point
{
  public int X{get;set;}
  public int Y{get;set;}
}

En dus in je abstracte klasse MapElement zal iets krijgen in de trend van: public Point Location {get;set;} = new Point();

Enkele screenshots

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.

zie hier
hier uitgelegd
corona missie van dit hoofdstuk
Klasse-schema
Interfaces
Het spel in actie
Rechthoek-klasse uit de Figuren oefening