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