Opdracht
Last updated
Last updated
Tijd om ons Vaccin te verbeteren. Het huidige Vaccin vindt de killcode enkel door steeds willekeurige getallen te testen. Dat is een beetje hetzelfde als geblinddoekt op een olifant jagen. We gaan nieuwe vaccins ontwikkelen die een betere strategie hanteren.
Deze oefening gaat verder op de klassen die je in de trainingsmissie hebt moeten maken. Vond je jezelf te goed voor de trainings missie? Gebruik dan de klassen die hier staan.
Zorg ervoor dat de methode TryKillCode
virtual wordt gemaakt in de Vaccin klasse.
Maak een klasse SlimVaccin dat overerft van Vaccin. Deze klasse implementeert TryKillCode op een andere manier via override
:
Het Vaccin zal eerst alle veelvouden van 10 (0,10, 20, etc.) testen. Vervolgens 11,21,31,...en dan 12,22, etc.
Zorg ervoor dat de methode TryVaccin
virtual wordt gemaakt in de Virus klasse.
Maak een klasse DomVirus dat overerft van Virus. Deze klasse voert nog steeds TryVaccin uit zonder aanpassingen. Echter, 50% van de tijd zal de aanroep van TryVaccin resulteren in het verhogen (ipv verlagen) van de DoomCountdown
teller.
Voer terug Fase 1 uit maar deze keer doe je dit op het nieuwe DomVirus en gebruik je SlimVaccins.
Kan je nu sneller het vaccin vinden?
We gaan de centra over de 7 continenten verspreiden. Maar we gaan hiervoor een nieuw concept gebruiken, een zogenaamde Dictionary
dit is hetzelfde als een List
maar in plaats van een index heeft ieder element een key van een type dat je zelf bepaalt.
Maak de Dictionary als volgt:
string
geeft hier aan dat we als key een string gebruiken, en dat de elementen in de dictionary allemaal Vaccinatiecentra zijn.
Voeg centra aan de dicht als volgt toe. Dit centrum geven we als key frankrijk:
Volgende code toont bijvoorbeeld hoe je een vaccin nu aan het centrum met key frankrijk verkrijgt
Maak een programma dat aan de "operator" vraagt in welke landen een centrum moet geplaatst worden. Zoek op hoe je in een dictionary kan controleren of er reeds een element met die key bestaat (want anders overschrijf je bestaande centrum). Toon aan gebruiker dat bouw van nieuw centrum gelukt is, of waarschuw hem als dit land reeds centrum heeft.
De operator kan uit het menu ook kiezen om een overzicht van alle centra te krijgen. Volgende code toont hoe dit kan:
Kan je hier een programma rond bouwen waarbij de operator ook kan kiezen welk land/centrum Vaccins moet genereren?