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

Slides:



Advertisements
Verwante presentaties
Naam: ricardo Mijn sport: darten Klik op “Naam”. Vul je naam in .
Advertisements

KOLF, EEN SPEL VAN VROEGER VOOR MENSEN VAN NU De baan met opstaande randen of verdiept in de vloer is ca 17 meter lang en 5 meter breed.
Aandachtspunten voor een jeugdtraining
Hoofdstukken 15 en 16.  als spelers meer keuze hebben kunnen nieuwe verhalen ontstaan. Hoe kan ik meer keuzes brengen?  Conflicten leiden tot meerdere.
OOS Object geOrienteerd Software-ontwerp - 3
Instructie Programmeren Task 8 5JJ70. PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen.
Van domeinklasse tot implementatie
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
Klassen en objecten.
Greenfoot Workshop Bobby - Snake.
Hoofdstuk 6: Controle structuren
Hoofdstuk 2 Hallo, C# !.
Stijn Van Wonterghem1 ALICE Een inleiding. Alice - Een Inleiding2 Wat is ALICE? Een moderne programmeeromgeving –Visuele voorstelling, opgebouwd uit drie-
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Java patterns Introductie tot GoF patterns in Java.
Frank Stalpers en Ad Baars
Static Keyword static voor functieleden functie niet voor een object aangeroepen class K {... static int minimum( int i, int j); } aanroep: K::minimum(
ZombieNation Sam Vanderstraeten Sibrand Staessens Bernard Spitz
Java en BlueJ Een goed idee?.
Consoletoepassing Variabelen Klassen
Hoofdstuk 2 Objectgeoriënteerde basisbegrippen. Accessors en polymorfie zGoede gewoonte voor objectgeoriënteerde programma -> voor alle eigenschappen:
6.1 Inleiding HOOFDSTUK 6 METHODEN
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
OOS Object geOrienteerd Software-ontwerp - 2
OO Analyse in de praktijk OO Analyse in de praktijk V Enkele Design Patterns.
OO Analyse in de praktijk OO Analyse in de praktijk IV OO basisregels.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 15: Herhaling Java-programmatie en geautomatiseerd testen.
Zaalhockey: een vak apart! “een ander spelletje met andere regels”
Visual Basic.NET voor studenten De VB- ontwikkelomgeving Hoofdstuk 2.
Zaalhockeyregels Spelen van de bal Speelveld / duur van de wedstrijd
Voor u de volgende schermen verspreidt … U hebt de poster verspreidt. De betrokken personen weten dus waar ze uw tips kunnen terugvinden. Dan verspreidt.
Programmeerstijl Hoofdstuk 21. Visual Basic.NET voor studenten2 Inleiding Belang van een goede programmeerstijl:  Programma’s worden door meerdere mensen.
Module 7 – Hoofdstuk 2 Data Flow Diagram.
Object geOrienteerd Software-ontwerp - 6
Overerving: It’s a kind of magic…. Principes van OO: 1) Overerving 2) Encapsulatie 3) Polymorphisme = (deel van het) OO. paradigma.
Objectgeoriënteerd Ontwerp
Interfaces Hoofdstuk 23 Hoofdstuk 23.
Overloading My name is overloading, cause we are many.
Introductie tot GoF patterns in Java
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Encapsulatie: Every man is an island upon himself.
Polymorphisme en Interfaces: inleiding
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid.
 C++ heeft een inheritance mechanisme  Manier om functionaliteit te ‘erfen’ van een parrent class ◦ Polymorphisme ◦ Zoals we het ook in C# kennen.
Soorten programma’s nConsole- applicatie. Soorten programma’s nConsole- applicatie nWindows- applicatie.
Herhaling: He who does not learn from history, is doomed to repeat it.
Coach Academy Opbouw 2. Doel Leren hoe je op een trainingsplan komt met de punten van jeugdplan hoe maak je een individuele trainingsplan? Ervarigen met.
Eigen klassen maken A new way of thinking.. Wat? Zie voorbeeld. Zie voorbeeld.
Loops en errors Array's Random try catch for loop while loop do while loop.
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
(de eenvoudige versie).   Teken een rechthoek voor het speelveld.  Maak 2 cirkels die je via de toetsen ASWD (voor speler 1) of de pijltjestoetsen.
Milo van der Zee
Game Object Structuren
Objectgeoriënteerd Programmeren (2)
Objectgeoriënteerd Programmeren
Gameprogrammeren: Lists en interfaces
Gameprogrammeren: Methoden
Gameprogrammeren: Overerving in Painter
OOS Object geOrienteerd Software-ontwerp - 5
Tinpro015b-les4 Klassen.
Het 24 spel.
Gameprogrammeren: Klassen en objecten
Interactieve powerpoint
Uitleg stok in de lengte richting.
Transcript van de presentatie:

Bespreking testpracticum

 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!

 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

 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)

 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

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()

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)

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

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

 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

 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

 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

 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

 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

 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)

 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

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()

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)