Opdracht
Last updated
Last updated
Welkom terug. Goed te zien dat je de missie zo serieus neemt. Allereerst willen we testen hoe vaardig je C# skills nog zijn. Van zodra je deze opdracht begint door te nemen gelieve een timer te starten. Je mag maximum 120 minuten over deze opdracht doen. Deze tijd is inclusief het lezen van de opdracht en het starten van VS. Je start je timer vanaf de eerste titel hierna leest.
We maken een applicatie waarmee we vaccins, virussen en vaccinatiecentra gaan simuleren. In deze wereld heeft ieder virus een "killcode", een verborgen code. Indien een vaccin de juiste killcode heeft dan kan deze gebruikt worden om een virus uit te schakelen.
Deze klasse heeft:
Een Naam (string
) als autoproperty met private setter.
Enkel een overloaded constructor, waarbij je de naam van het vaccin kunt instellen
Een methode TryKillCode
die geen parameters aanvaardt en steeds een random getal tussen 1 en 100 teruggeeft
Indien Oplossing een andere waarde dan -1 heeft zal deze methode géén random getal teruggeven maar wel de waarde van Oplossing.
Een autoproperty Oplossing
van het type int
deze staat standaard op -1.
Een methode ToonInfo
die de naam van het vaccin en de huidige Oplossing op het scherm zet.
Deze klasse heeft:
Een Naam als autopoperty met private setter
Een DoomCountdown (int
) full property met private setter:
Indien doomcountdown 0 of lager wordt gezet zal er "Game over [Naam virus]" op het scherm verschijnen. Dit gebeurt in de setter van de property.
Een private int killcode
Enkel een default constructor die:
DoomCountdown
op een getal tussen 10 en 20 instelt.
killcode op een getallen tussen 0 en 99 instelt
Naam wordt willekeurig als volgt: deze bestaat uit 3 willekeurige letters na mekaar, gevolgd door een getal tussen 1 en 99 (bv ABC34).
Een methode TryVaccin
die:
Eén parameter van het type Vaccin
aanvaardt
Een bool teruggeeft. Deze zal true zijn indien het meegegeven Vaccin werkt:
De methode zal de TryKillcode
aanroepen op het meegegeven Vaccin. Indien het resultaat van TryKillcode overeenkomt met de killcode van het Virus zal er een true teruggestuurd worden. Ook zal vervolgens de property Oplossing van het Vaccin op de geteste én werkende killcode ingesteld worden in het meegegeven Vaccin.
Indien de kill code verkeerd is wordt er false teruggestuurd , maar niet voordat eerst de doomcountdown met 1 werd verlaagd.
We gaan nu op zoek naar het juiste vaccin.
Maak een virus aan.
Maak een programma waarin je 5 vaccins aanmaakt en in een lijst plaatst. Vervolgens ga je deze vaccins blijven testen op een aangemaakt virus en toon je aan de gebruiker welke vaccins werkten. Van zodra je een werkend vaccin vindt stopt de test en moet je onthouden welk vaccin in de lijst werkt.
Indien de countdown van het virus op 0 komt te staan ben je gameover en heb je geen vaccin gevonden. De gebruiker zal het programma dus opnieuw moeten opstarten en hopen dat er deze keer wel een vaccin kan worden gevonden.
Indien je tijdig een vaccin gevonden hebt ga je naar fase 2.
Maak een klasse VaccinatieCentrum
aan.
Deze klasse heeft een static
methode BewaarVaccin
. Aan deze methode kan je een int als parameter meegeven. Deze parameter wordt in een static
autoproperty genaamd Oplossing
bewaard en bevat de killcode voor het virus die je uit het Vaccin kunt halen via de Oplossing-property dat je aan de methode meegeeft. Standaard staat deze code op -1.
Zorg ervoor dat de Vaccin klasse een extra constructor heeft die toelaat dat je ook een int kunt meegeven die zal gebruikt worden als de oplossing die het vaccin moet maken (en dus reeds vanuit de Oplossing kan uitgelezen worden). De constructor zal dus de property Oplossing
reeds op de juiste waarde zetten. De aanroep vanTryKillCode
zal dus ook reeds de juiste killcode geven (wat normaal reeds in orde was gebrakt toen je de methode maakte in de eerste plaats).
Maak in de VaccinatieCentrum een methode GeefVaccin
aan die geen parameters aanvaardt en een Vaccin als return type geeft. Deze methode zal null teruggeven in indien Oplossing
nog op -1 staat. Indien de Oplossing een andere waarde heeft dan zal deze methode een nieuw Vaccin teruggeven waarbij de Oplossing al juist werd gezet.
We gaan nu VaccinatieCentra over de hele wereld verspreiden. Stel eerst via BewaarVaccin
eenmalig in welk vaccin alle centra moeten gebruiken (i.e. het vaccin dat gevonden werd in fase 1)
Plaats nu 5 nieuwe centra aan in je lijst en roep op ieder centra 7x GeefVaccin
aan die een vaccin teruggeeft. Plaats ieder vaccin in een grote lijst.
Overloop finaal de hele lijst (die normaal 35 vaccins moet bevatten) en roep van ieder vaccin de tooninfo op. Je zou nu 35x dezelfde oplossing op het scherm moeten zien. Controleer via een breakpoint of deze oplossing overeen komt de killcode in je virus dat aan de start van fase 1 werd gemaakt.