DEPARTEMENT BEDRIJFSINFORMATIE Schoonmeersstraat 52 9000 GENT ACADEMIEJAAR 2006-2007 RAPPORT PROJECT 1 TIN GAME HERO QUEST STUDENTEN: Stijn Courtheyn Bart Wulteputte Koen Lippens BEGELEIDER: Mevr. Derwael
DEPARTEMENT BEDRIJFSINFORMATIE Schoonmeersstraat 52 9000 GENT ACADEMIEJAAR 2006-2007 RAPPORT PROJECT 1 TIN GAME HERO QUEST STUDENTEN: Stijn Courtheyn Bart Wulteputte Koen Lippens BEGELEIDER: Mevr. Derwael
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens Woord vooraf Tijdens het 1 e jaar Toegepaste Informatica kreeg iedereen een opdracht voor zijn of haar project. Het project wordt uitgewerkt door groepen van 3 leerlingen. Doelstellingen: - Vakoverschrijdend - Teamwork We hadden de keuze tussen 3 projecten: - Wie wordt euromiljonair? - Comcala - Gevechtsspel gebaseerd op Hero Quest Graag bedanken we de heer Theuns, mevrouw Derwael voor de steun en de begeleiding de ze ons gegeven hebben.
Project 2006-2007 Inhoudsopgave Stijn Courtheyn Bart Wulteputte Koen Lippens Woord vooraf... 3 Inhoudsopgave... 4 Inleiding... 6 1 Analyse... 7 1.1 Klassendiagram... 7 1.1.1 UML... 7 1.1.2 Package... 7 1.1.3 Voorbeeld diagram... 7 1.2 Package domein... 7 1.2.1 Klasse Wezen... 7 1.2.2 Klasse Held Monster... 7 1.2.3 Klasse Wapen... 8 1.2.4 Klasse Dobbelsteen... 8 1.2.5 Klasse Doolhof Vak... 8 1.2.6 Klasse Language... 8 1.2.7 Klasse HQModel... 8 1.2.8 Extra klassen... 8 1.3 Package database... 8 1.3.1 Klasse DAO... 8 1.3.2 Klasse IconManager... 8 1.4 Package GUI... 9 1.5 Helden... 9 1.5.1 Ridder... 9 1.5.2 Tovenaar... 9 1.5.3 Monnik... 9 2 Detailanalyse... 9 2.1 Klassendiagram... 9 2.2 Helden... 9 2.2.1 Ridder... 10 2.2.2 Tovenaar... 10 2.2.3 Monnik... 10 2.3 Wapens... 10 2.3.1 Niet-magische wapens... 11 2.3.2 Magische wapens... 11 2.4 Doolhof... 11 2.4.1 Eigenschappen... 12 2.4.2 Start nieuw spel... 12 2.4.3 Bijwerken posities... 12 2.4.4 Laden van een spel... 12 2.5 Navigatie in doolhof... 13 2.6 Het gevecht... 15 2.7 Level omhoog... 16 2.8 Winkel... 17 2.9 Start spel... 17 2.9.1 Nieuw spel... 18 2.9.2 Laad spel... 18
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 3 Design... 18 3.1 Technologie... 18 3.2 Database... 19 3.3 Schermen... 19 3.4 Resource files... 20 4 Implementatie... 20 4.1 HQModel... 20 4.2 Keuze held... 20 4.3 Navigeren... 21 4.4 Het gevecht... 23 5 Testing... 23 Besluit - evaluatie... 24 Lijst met figuren... 25 Lijst met codevoorbeelden... 26 Lijst met bijlagen... 27
Project 2006-2007 Inleiding Stijn Courtheyn Bart Wulteputte Koen Lippens Om een project van deze omvang tot een goed einde te brengen was er nood aan duidelijke afspraken. We leerden tijdens dit project om te werken in teamverband, ook leerden we ons te houden aan afgesproken deadlines. Wij hebben voor het project Hero Quest gekozen omdat dit voor ons de grootste uitdaging leek zowel op het vlak van programmeren als op vlak van grafisch design. We kregen bij aanvang van het project een brochure met daarin de beschrijving van onze opdracht. Wat moest het spel allemaal kunnen, waar moesten we rekening mee houden, Het project werd volledig uitgewerkt in Borland Together for Eclipse. De gebruikte programmeertaal is JAVA. In een eerste stuk zullen we het project analyseren, eerst algemeen en daarna gedetailleerd. Daarop volgend is er een uitleg over de gebruikte technologieën en de implementatie met codevoorbeelden. En eindigen we met een besluit
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 7 1 Analyse We hebben eerst bepaald welke klassen er nodig zouden zijn. 1.1 Klassendiagram Wat is nu eigenlijk een klassendiagram. Dit is een overzicht van alle klassen met de onderlinge verbindingen. Hiervoor moet u eerst weten wat UML 1 is. 1.1.1 UML Een klasse diagram wordt opgebouwd door UML. Dankzij UML kunnen we verbindingen tussen klassen grafisch weergeven en specificeren hoe de verhoudingen tussen klassen zijn. 1.1.2 Package Om alle klassen overzichtelijk te kunnen ordenen maken we gebruik van packages. Een package is eigenlijk gewoon een map op de computer. Alle gelijkaardige klassen worden in een dezelfde package gestopt. Zo hebben we een package domein, GUI 2, database,. 1.1.3 Voorbeeld diagram De volledige diagrammen vindt u in bijlage 1 tot 4 1.2 Package domein 1.2.1 Klasse Wezen Deze klasse is een algemene beschrijving van zowel de helden als van de monsters. 1.2.2 Klasse Held Monster Deze twee klassen zijn subklassen van de klasse Wezen. Ze krijgen dus alle eigenschappen en methodes van de klasse Wezen. De klasse Held wordt dan ook nog eens onderverdeeld in 3 subklassen: Ridder, Monnik, Tovenaar (de drie soorten helden). De klasse Monster stelt een algemeen monster voor en wordt niet onderverdeeld. 1 UML = Unified Modeling Language (www.uml.org), taal om de klassen grafisch voor te stellen 2 GUI = Graphical User Interface, de grafische interface voor de speler
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 8 1.2.3 Klasse Wapen In deze klasse wordt er een algemene beschrijving gegeven van alle wapens. Er wordt onderscheid gemaakt tussen magische en niet magische wapens doormiddel van een ja-nee variabele. 1.2.4 Klasse Dobbelsteen Deze klasse is één van de belangrijke componenten voor het navigeren en het aanvallen. Om deze acties uit te voeren moet de speler actiepunten verzamelen. Dit gebeurt door twee dobbelstenen te gooien en de ogen op te tellen. 1.2.5 Klasse Doolhof Vak Een andere belangrijke component is het doolhof. Hier op speelt zich immers alles af. Een doolhof bestaat uit verschillende vakjes. Een vakje is ofwel een muur ofwel een gang. 1.2.6 Klasse Language Deze klasse zal de verbinding maken met de gegevensbundels voor de talen. Het programma ondersteunt 4 talen: Nederlands, Frans, Engels en Spaans. 1.2.7 Klasse HQModel Via deze klasse zullen alle grafische interfaces verbinding maken met alle niet grafische klassen. 1.2.8 Extra klassen Er zijn ook klassen voorzien voor de bepantsering, magische drankjes. Deze worden dan samengenomen in de klasse Voorwerp. 1.3 Package database 1.3.1 Klasse DAO Deze klasse zal de connectie met de database (Access) verzorgen. De DAO zorgt ervoor dat we via SQL 3 -instructies de inhoud van tabellen in de database kunnen opvragen. DAO is de afkorting van Data Acces Object. 1.3.2 Klasse IconManager Met deze klasse kunnen we alle afbeeldingen centraal beheren en toewijzen. 3 SQL = Structered Query Language, soort taal om gegevens uit een database op te vragen
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 9 1.4 Package GUI In dit package zitten alle grafische klassen. 1.5 Helden 1.5.1 Ridder De ridder is volledig geconcentreerd op man-tot-man gevechten. Hij kan dan ook geen magie gebruiken. 1.5.2 Tovenaar De tovenaar gebruikt uitsluitend magie. Hij zal dus altijd vechten met monsters op een veilige afstand. 1.5.3 Monnik De mogelijkheden van een monnik liggen tussen een rider en tovenaar. Hij kan dus zowel man-tot-man gevechten aangaan als magie gebruiken. 2 Detailanalyse Na de algemene analyse, volgt de gedetailleerde. Eigenlijk kunt u zeggen de grove structuur van het programma. 2.1 Klassendiagram Het gedetailleerde klassendiagram per package kunt u terugvinden in bijlage 1 tot 4 2.2 Helden Elke held heeft verschillende eigenschappen: - Levenspunten - Kracht: bepaalt hoeveel schade hij kan toebrengen in man-tot-man gevecht. - Bepantsering: bepaalt hoeveel levenspunten er worden afgenomen als de speler geraakt wordt. - Magie: bepaalt de kennis van magie. - Magiepunten: hoeveelheid magiepunten voor het uitvoeren van een spreuk - Raakpercentage: hoe kleiner hoe moeilijker de tegenstander te raken is. - Nauwkeurigheidpercentage: hoe groter het is, hoe meer kans de speler heeft om de tegenstander te raken. - Wapen - Level - Ervaringspunten: om de 200 x level van de speler al de speler een level omhoog gaan.
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 10 2.2.1 Ridder Standaard eigenschappen: - Levenspunten: 30 - Kracht: 25 - Bepantsering: 30 - Magie: 0 - Magiepunten: 0 - Raakpercentage: 65 (Min 50) - Nauwkeurigheidpercentage: 75 (Max 85) - Wapen: Kort zwaard Figuur 1 Ridder 2.2.2 Tovenaar Standaard eigenschappen: - Levenspunten: 30 - Kracht: 10 - Bepantsering: 15 - Magie: 35 - Magiepunten: 35 - Raakpercentage: 65 (Min 50) - Nauwkeurigheidpercentage: 55 (Max 85) - Wapen: Staf Figuur 2 Tovenaar 2.2.3 Monnik Standaard eigenschappen: - Levenspunten: 30 - Kracht: 18 - Bepantsering: 25 - Magie: 10 - Magiepunten: 10 - Raakpercentage: 65 (Min 50) - Nauwkeurigheidpercentage: 65 (Max 85) - Wapen: Knuppel Figuur 3 Monnik 2.3 Wapens
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 11 2.3.1 Niet-magische wapens Elk niet-magisch wapen heeft verschillende eigenschappen: - Schade: hoeveel schade kan een wapen aanbrengen (steeds een minimum en maximum). - Snelheid: hoeveel actiepunten vergt het om te vechten met dit wapen. - Kostprijs: hoeveel kost dit wapen (goudstukken). - Benodigde kracht: hoeveel kracht is er nodig om het wapen te gebruiken. 2.3.2 Magische wapens Elk magisch wapen heeft verschillende eigenschappen: - Schade: hoeveel schade kan een wapen aanbrengen (steeds een minimum en maximum). - Magiepunten: hoeveel magiepunten vergt het om de spreuk uit te spreken/ - Kostprijs: hoeveel kost dit wapen (goudstukken). - Benodigde magie: hoeveel kennis is er nodig om de toverspreuk te kunnen leren. - Bereik: hoever mag de speler verwijdert zijn van het monster om te kunnen vechten. 2.4 Doolhof Figuur 4 Doolhof
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 12 2.4.1 Eigenschappen Het doolhof heeft verschillende eigenschappen: - De locatie waar het bestand met de informatie over het doolhof zich bevindt op de harde schijf. - Het niveau van het doolhof (= level). - De naam van het doolhof. - De standaard begin positie van de held. - De minimum afstand tussen de held en de monsters bij plaatsing van de wezens in het doolhof. - Het aantal kolommen dat het doolhof telt. - Het aantal rijen dat het doolhof telt. - De vakjes waaruit het doolhof bestaat. - De wezens die zich in het doolhof bevinden. 2.4.2 Start nieuw spel Hier onder worden een nieuw spel stap per stap besproken: - Het niveau van het doolhof wordt op 1 gezet. - Het doolhof van niveau 1 wordt aan de database opgevraagd - De database leest het niveau in en geeft het pad naar het bestand terug waarin zich de gegevens over het doolhof bevinden ( de opbouw, vakje per vakje). - Het doolhof leest het bestand in en zet de gegevens om naar een werkend doolhof. - Wanneer het doolhof correct heeft kunnen laden, wordt de held toegevoegd aan de lijst met wezens. - Vervolgens worden willekeurige monsters aangemaakt, wel een vast aantal. - En als laatste stap worden de wezens in het doolhof geplaatst. Als alles gelukt is geeft de operatie een bevestiging dat alles foutloos verlopen is. 2.4.3 Bijwerken posities - Alle vakjes van het doolhof worden terug in hun originele staat gezet. - De wezens worden opnieuw in het doolhof geplaatst met hun gewijzigde positie. 2.4.4 Laden van een spel Parameter: de benaming van de opgeslagen configuratie die geladen moet worden (bvb: Spelletje_01). - De gegevens van het gevraagde opgeslagen spel ophalen uit de database. - Het niveau van het doolhof er uitfilteren en instellen als eigenschap van het doolhof. - Het doolhof van niveau x wordt aan de database opgevraagd - De database leest het niveau in en geeft het pad naar het bestand terug waarin zich de gegevens over het doolhof bevinden ( de opbouw, vakje per vakje). - Het doolhof leest het bestand in en zet de gegevens om naar een werkend doolhof. - Wanneer het doolhof correct heeft kunnen laden, wordt de held toegevoegd aan de lijst met wezens.
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 13 - Vervolgens worden willekeurige monsters aangemaakt, wel een vast aantal. - En als laatste stap worden de wezens in het doolhof geplaatst. Als alles gelukt is geeft de operatie een bevestiging dat alles foutloos verlopen is. 2.5 Navigatie in doolhof Figuur 5 Navigatie Er moeten controles worden ingebouwd wanneer een held zich verplaatst over het speelbord. Hij mag alleen stappen op gangen en nooit op/door muren. Er moet ook gecontroleerd worden of de positie waar de held naar toe wil wel vrij is. Indien de positie waar de held naar toe wil niet vrij is wordt er gecontroleerd welk monster er op die positie staat.
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 14 Figuur 6 Sequentie diagram navigatie Wanneer de speler met de dobbelstenen heeft gegooid, kan hij navigeren door het doolhof. Dit doet hij door op de vier knoppen te klikken. Als hij bv. op Naar noord klikt zal de held op het bord zich een positie naar boven verplaatsen. Hiervoor zijn er verschillende handelingen nodig: In dit voorbeeld gaan we er vanuit dat er geen monsters in de beurt van de held staan en dat de held voldoende actiepunten heeft. - Vraag aan HQModel om te bewegen naar Naar noord - HQModel vraag aan het wezen of hij nog genoeg actiepunten heeft. - HQModel vraag aan doolhof of de positie een muur is of niet - HQModel controleert of er geen monsters in de beurt staan o Controleert elke windrichting of de positie bezet is. - HQModel geeft de opdracht aan het wezen om te verplaatsen. - HQModel geeft de opdracht aan het doolhof om de oude positie in te stellen als niet bezet. - HQModel geeft de opdracht aan het doolhof om het doolhof te verversen. - HQModel controleert of de Held nog voldoende actiepunten heeft om nog andere bewegingen uit te voeren - HQModel geeft de opdracht firestatechanged aan alle objecten die luisteren naar het HQModel
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 15 2.6 Het gevecht Figuur 7 Gevechtszone Alle gevechten spelen af in de gevechtszone. We moeten met volgende zaken rekening houden: - Het raakpercentage van de tegenstander - De bepantsering van de tegenstander - De nauwkeurigheid van de aanvaller Algemeen: Eerst wordt er een getal gegenereerd om de minimum en maximum schade van het wapen dat de held vast heeft te bepalen. Vervolgens wordt gekeken hoe sterk de bepantsering van de tegenstander is. Na dit alles wordt er nog een getal genereerd dat bepaalt of de bepantsering van de tegenstander al dan niet moet verminderen. De speler kan drie dingen doen in een gevecht: - Aanvallen - Vluchten - Gezondheidsdrankje/Magiepuntendrankje gebruiken Wanneer het monster is verslagen krijgt de speler goudstukken en ervaringspunten. Hoe hoger de level van het monster, hoe meer goudstukken en ervaringspunten de speler krijgt.
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 16 2.7 Level omhoog Figuur 8 Level omhoog Als de speler genoeg ervaringspunten heeft zal hij een level omhoog gaan. Hij krijgt dan vijf punten die hij kan verdelen onder zijn eigenschappen: levenspunten, kracht, magie, raakpercentage en de nauwkeurigheid. De speler moet minstens 200 maal de huidige level van de held aan ervaringspunten vergaren om een level te stijgen. Stel de level van de held is 10, dan moet de speler 2000 ervaringspunten halen voordat hij een level stijgt.
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 17 2.8 Winkel Figuur 9 Winkel Met de verkregen goudstukken kan de speler in de winkel nieuwe wapens, drankjes en andere kopen om dan later te kunnen gebruiken. Bij aankoop van wapens moet er gecontroleerd worden of de held het gekozen wapen of toverspreuk wel kan gebruiken, hierbij zijn de eigenschappen kracht, magie en magische punten van belang. 2.9 Start spel Als het spel start wordt er een object gecreëerd van het HQModel en krijgt de speler het startscherm te zien. Hier kan hij kiezen of hij een nieuw of een opgeslagen spel wil starten. De speler kan hier zijn taal kiezen via het menu taal links bovenaan. Er is keuze tussen: - Nederlands; - Frans; - Engels; - Spaans;
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 18 Figuur 10 Start scherm 2.9.1 Nieuw spel Bij een nieuw spel moet de speler een held kiezen, Als de held gekozen is worden al zijn eigenschappen geladen uit de database en moet de speler nog een naam geven aan zijn held. Heeft hij dit allemaal gedaan, dan kan hij overgaan tot het spelen van het spel. Het eerste doolhof werd geladen en er wachten al een paar monsters om de confrontatie met de held aan te gaan. 2.9.2 Laad spel Alle benodigde gegevens worden geladen uit de database en het spel wordt gecreëerd. Nu kan de speler onmiddelijk verder spelen met zijn spel. 3 Design 3.1 Technologie Als programmeertaal gebruiken we JAVA. De programmeeromgeving is Borland Together for Eclipse.
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 19 Doordat dit project gebaseerd is op JAVA, moet de computer een Java Virtual Machine hebben. Dit is een programma dat de JAVA code zal converteren naar een taal die de computer begrijpt. 3.2 Database Voor de database werd Microsoft Access gestuurde database gekozen. Figuur 11 Database 3.3 Schermen Een spel zonder visuele voorstelling is geen spel meer vandaag. Daarom is er ook vrij veel aandacht geschonken aan een degelijke gebruikersinterface. Volgende schermen worden gebruikt: - Start scherm; - Held keuze scherm; - Held scherm; - Spelbord; - Gevecht; - Winkel; - Level up; Deze staan natuurlijk onderling in verbinding met elkaar. Dit gebeurt grotendeels door het HQmodel, dit is een klasse die de gewone (niet visuele klassen) verbind met de grafische klassen (Meer uitleg hierover in puntje 4.1)
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 20 3.4 Resource files Er zijn ook extra bestanden voor het instellen van de taal. Zo hebben we een Nederlandse, Franse, Engelse en Spaanse versie van het spel. En kunnen we later zonder het spel te moeten herprogrammeren een woord of zin wijzigen. 4 Implementatie Hier worden enkele programmeercodes besproken uit het praktijkgedeelte. 4.1 HQModel Dit is een subklasse van de klasse Model. De klasse Model is een algeme skelet klasse die in principe voor elk nieuw project opnieuw kan gebruikt worden. Het HQModel is onderdeel van het zogenaamde MVC 4 -patroon. Het HQModel bevat de feitelijke informatie die grafisch afgebeeld zal worden. In ons geval is dit voornamelijk tekst, afbeeldingen, het doolhof, de wezens. Het model is niet volledig gebruikt zoals het MVC-patroon het voorschrijft. Wij gebruiken ons model als centrale dataklasse die naast de af te beelden data ook nog enkele andere methoden bevat. Deze methoden worden onder andere gebruikt om grote controles niet in de GUI uit te hoeven voeren. Bekijk als voorbeeld de navigatie. 4.2 Keuze held Wanneer u een nieuw spel start, dan zult u een keuze moeten maken tussen drie helden. Dit is als volgt uitgewerkt: Codevoorbeeld 1 Keuze held 4 MVC= Bij het software-ontwerp van een grafische gebruikersinterface maakt men onderscheid tussen drie verschillende functionaliteiten: het model, de controller en de view (aldus MVC). Het model bevat de feitelijke informatie die grafisch zal worden afgebeeld. De view correspondeert met de grafische voorstelling van de gegevens uit het model. De controller zorgt ervoor dat het model kan worden aangepast door interactie met de gebruiker. (vb: knoppen in de GUI passen het model aan)
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 21 Lijn 161 tot 168 is voor een tovenaar. Op lijn 162 wordt er een nieuwe tovenaar aangemaakt en daarna wordt zijn level op 1 gezet (lijn 163). Dan wordt er een nieuw scherm aangemaakt op het tovenaar zijn eigenschappen te zien (lijn 164 165) en wordt het keuze held scherm vernietigd. Dit is analoog voor zowel een ridder (lijn 170 176) of een monnik (lijn 177-183). 4.3 Navigeren In de detailanalyse hebben we navigeren uitgewerkt met een sequentie diagram. Nu zullen we dit uitwerken aan de hand van de code. Hier gaan we ook uit dat er geen monsters in de beurt zijn van de held en dat de held voldoende actiepunten heeft.
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 22 Codevoorbeeld 2 Navigatie gonorth() Op lijn 307 wordt er gecontroleerd of de held nog genoeg actiepunten heeft om te navigeren. Zo ja dan wordt de code tussen 308 en 338 uitgevoerd, zo nee dan wordt de code tussen 340 en 347 uitgevoerd. Op lijn 312 wordt er gecontroleerd of de positie waar de held naartoe wil geen muur is en dat de positie niet buiten de grenzen licht van het doolhof. Daarop volgt de controle op monster (lijn 314). Is het resultaat van deze methode vals, dan zal de held zich verplaasten naar het noorden (lijn 316). In de verplaatsing geslaagd dan zal de vorige positie van de held als niet bezet worden beschouwd (lijn 318), het doolhof worden ververst (lijn 319), een controle
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 23 uitgevoerd op de actiepunten en tot slot het firestatchanged dat zorgt dat alle objecten die afhankelijk zijn van het HQModel worden geupdate (lijn 321). 4.4 Het gevecht In de detailanalyse heeft u de analyse kunnen zien van het gevecht. Van die analyse hebben we dit als resultaat. Als de held een monster aanvalt, gebeurt het volgende: Codevoorbeeld 3 Aanval held Op lijn 115 en 116 wordt het minimum en maximum schade bepaald van het wapen. Daarna worden twee random getallen gegenereerd en vergeleken met de nauwkeurigheid van de hero. Zijn deze twee getallen kleiner, dan is de aanval geslaagd. Dan zal de uiteindelijke schade worden bepaald. De schade moet tussen het minimum en maximum liggen (lijn 125) en in vermindering gebracht worden met de bepantsering van de tegenstander (lijn 126). We moeten dan ook nog bepalen of de bepantsering van de tegenstander moet verminderen met één of niet (lijn 128 132) 5 Testing Alle klassen werden eerst gecontroleerd in een consoleversie, om zo enkele bugs eruit te halen. Zo kunnen we zonder al te veel problemen de grafische schil erom heen bouwen.
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 24 Besluit - evaluatie De doelstellingen die we willen bereiken, hebben we bereikt. Wij hadden nooit geloofd dat we dit ooit zouden kunnen realiseren met de basiskennis die we al hadden van Java.
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 25 Lijst met figuren Figuur 4 Doolhof... 11 Figuur 5 Navigatie... 13 Figuur 6 Sequentie diagram navigatie... 14 Figuur 7 Gevechtszone... 15 Figuur 8 Level omhoog... 16 Figuur 9 Winkel... 17 Figuur 10 Start scherm... 18 Figuur 11 Database... 19
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 26 Lijst met codevoorbeelden Codevoorbeeld 1 Navigatie gonorth()... 22 Codevoorbeeld 2 Aanval held... 23
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 27 Lijst met bijlagen Bijlage 1 Klassediagram domein... 28 Bijlage 2 Klassediagram gui... 30 Bijlage 3 Klassediagram database... 33 Bijlage 4 Klassediagram exceptions... 34 Bijlage 5 Werking klassen... 35 Bijlage 6 Schermen... 36
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 28 Bijlage 1 Klassediagram domein Zie volgende pagina.
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 29
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 30 Zie volgende 2 bladzijden Bijlage 2 Klassediagram gui
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 31
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 32
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 33 Bijlage 3 Klassediagram database
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 34 Bijlage 4 Klassediagram exceptions
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 35 Er wordt in drie lagen gewerkt. Laag 1 = laag van database Laag 2 = non-grafische klassen Laag 3 = grafische klassen Bijlage 5 Werking klassen Laag 1 zal alles afhandelen wat de database aangaat, ophalen, update, nieuwe gegevens in de database stoppen, Laag 2 beschrijft alles wat niet grafisch is, wezens, monsters, wapens. Laag 3 is de grafische voorstelling van laag 2. Tussen laag 2 en laag 3 zit er het HQModel. Aan deze klasse vraagt een grafische klasse zaken en het HQModel zal deze afhandelen en de juiste non-grafische klassen aanspreken. Zie puntje 4.2 voor meer info over het HQModel.
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 36 Schermen 1) Startscherm Bijlage 6 Schermen 2) Held keuze
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 37 3) Held 4) Laadscherm
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 38 5) Spelbord 6) Gevecht
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 39 7) Level-up 8) Winkel
Project 2006-2007 Stijn Courtheyn Bart Wulteputte Koen Lippens 40 Onderlinge relatie 1) Start scherm a. Nieuw Held keuze b. Laden Laad scherm c. Verlaat exit game 2) Held keuze a. Klik op held Held scherm b. Terug Start scherm 3) Held Scherm a. Terug Held keuze b. Verder Spelbord 4) Laadscherm a. Laden Spelbord b. Terug Start scherm 5) Spelbord a. Door navigatie gevechtsscherm b. Einde spel Start scherm c. Winkel Winkel 6) Gevechtscherm a. Vlucht spelbord b. Vecht Spelbord (gewonnen), start scherm (verloren) 7) Level-up a. Ok spelbord 8) Winkel a. Ok spelbord