De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Bespreking testpracticum.  Javaconventies! ◦ KlasseNamen beginnen met Hoofdletter ◦ objectNamen/methodeNamen met kleine letter  Aanspreken GUI ◦ Zie.

Verwante presentaties


Presentatie over: "Bespreking testpracticum.  Javaconventies! ◦ KlasseNamen beginnen met Hoofdletter ◦ objectNamen/methodeNamen met kleine letter  Aanspreken GUI ◦ Zie."— Transcript van de presentatie:

1 Bespreking testpracticum

2  Javaconventies! ◦ KlasseNamen beginnen met Hoofdletter ◦ objectNamen/methodeNamen met kleine letter  Aanspreken GUI ◦ Zie ook World of Zuul ◦ Aanspreken GUI moet beperkt worden tot minimum aantal klassen  Bv: voldoende in klasse Spel ◦ Alle andere klassen kennen GUI niet!

3  Duidelijke naamgeving! ◦ Variabelen/klassenamen zijn zelfstandig naamwoord  Bv. Hut, aantal, … ◦ Methodenamen bevatten werkwoord  isRaak, plaatsHut,…  Concepten uit boek ◦ High cohesion  Vermijd code duplicatie ◦ Low coupling  Beperk # bindingen  OO ◦ > 1 object

4  Vermijd code duplicatie! ◦ NIET 1 lange methode met alle variaties voor het maken van hutten ◦ WEL een aparte methode aanroepen die overlappende code bevat ◦ NIET: maakKleineHutVoorSpeler1Horizontaal, maakGroteHutVoorSpeler2,... ◦ WEL: bv. maakHut(speler, grootteHut, orientatieHut)

5  Belangrijk: ◦ Correct splitsen van functionaliteit  NIET klasse HuttenBouwen, Schieten, …  WEL klasse Spel, Dorp, Hut, Schot, …  DUS splitsen volgens eigenschappen, NIET volgens acties  Disclaimer ◦ er is GEEN ideale (model)oplossing

6 Spel Gui gui; Speler speler1; Speler speler2; Speler ArrayList hutten; ArrayList schoten; Schot Position plaats; boolean geraakt; Weet enkel zijn positie en het feit of het schot raak was of niet Voorbeeld methodes: public Position geefPositie() public boolean isRaak()

7 Spel Gui gui; Speler speler1; Speler speler2; Speler ArrayList hutten; ArrayList schoten; Schot Position plaats; boolean geraakt; Kent enkel zijn eigen hutten en schoten Voorbeeld methodes: public boolean heeftHut(Position pos) public boolean isRaak(Position pos) public boolean heeftAlGeschoten (Position pos)

8 Spel Gui gui; Speler speler1; Speler speler2; Speler ArrayList hutten; ArrayList schoten; Schot Position plaats; boolean geraakt; Zorgt voor verloop van spel mbv klasse Speler en Schot Zorgt voor communicatie met GUI

9 Spel Gui gui; Speler speler1; Speler speler2; Speler ArrayList hutten; ArrayList schoten; Schot Position plaats; boolean geraakt; Hut ArrayList plaatsen;

10  Vraag aan gebruiker de beginpositie  Vraag aan gebruiker de richting  Bereken de posities van de hut  Controleer of de nieuwe hut geen geplaatste hutten overlapt  Voeg de hut toe

11  Vraag aan gebruiker de beginpositie ◦ Position positie=gui.choosePosition(playerID)  Vraag aan gebruiker de richting ◦ Orientation richting = gui.orientationInputBox()  Bereken de posities van de hut  Controleer of de nieuwe hut geen geplaatste hutten overlapt  Voeg de hut toe

12  Vraag aan gebruiker de beginpositie  Vraag aan gebruiker de richting  Bereken de posities van de hut ◦ EERST  bereken aantal kleine en grote hutten  Hou bij welke hut je aan het plaatsen bent  Controleer of de nieuwe hut geen geplaatste hutten overlapt  Voeg de hut toe

13  int aantal = berekenAantalHutten()  Doe aantal keer voor kleine hutten + aantal keer voor grote ◦ Vraag aan gebruiker de beginpositie ◦ Vraag aan gebruiker de richting ◦ Bereken de posities van de (grote/kleine) hut  Controleer of de hut nog binnen het speelveld ligt ◦ Controleer of de nieuwe hut geen geplaatste hutten overlapt ◦ Voeg de hut toe

14  int aantal = berekenAantalHutten()  Doe aantal keer (voor kleine en grote hutten) ◦ Vraag aan gebruiker de beginpositie ◦ Vraag aan gebruiker de richting ◦ Bereken de posities van de (grote/kleine) hut ◦ Controleer of de nieuwe hut geen geplaatste hutten overlapt  SPEL: huidigeSpeler.heeftOverlap(nieuweHut)  SPELER: ∀ hut: hut.heeftOverlap(nieuweHut)  HUT: ∀ positie: hut.bevatPositie(positie) ◦ Voeg de hut toe

15  int aantal = berekenAantalHutten()  Doe aantal keer (voor kleine en grote hutten) ◦ Vraag aan gebruiker de beginpositie ◦ Vraag aan gebruiker de richting ◦ Bereken de posities van de (grote/kleine) hut ◦ Controleer of de nieuwe hut geen geplaatste hutten overlapt ◦ Voeg de hut toe  huidigeSpeler.voegToe(nieuweHut)

16  Laat zowel speler1 als speler2 hutten plaatsen ◦ Begin met speler1  int aantal = berekenAantalHutten()  Doe aantal keer (voor kleine en grote hutten)  Vraag aan gebruiker de beginpositie  Vraag aan gebruiker de richting  Bereken de posities van de (grote/kleine) hut  Controleer of de nieuwe hut geen geplaatste hutten overlapt  Voeg de hut toe ◦ Maak speler2 de huidige speler en herhaal

17 Spel Gui gui; Speler speler1; Speler speler2; Speler Veld [] [] bord; Veld boolean hut; boolean schot; Voorstelling van 1 plaats op het bord Voorbeeld methodes: public void plaatsHut() public boolean heeftHut() public void schiet() public boolean heeftAlGeschoten() public boolean isRaak()

18 Spel Gui gui; Speler speler1; Speler speler2; Speler Veld [] [] bord; Veld boolean hut; boolean schot; Voorstelling van het speelveld als 2D bord Voorbeeld methodes: public void plaatsHut(Position p) public boolean heeftHut(Position p) public void schiet(Position p) public boolean heeftAlGeschoten (Position p) public boolean isRaak(Position p)

19


Download ppt "Bespreking testpracticum.  Javaconventies! ◦ KlasseNamen beginnen met Hoofdletter ◦ objectNamen/methodeNamen met kleine letter  Aanspreken GUI ◦ Zie."

Verwante presentaties


Ads door Google