RAPPORT PROJECT 1 TIN GAME HERO QUEST

Vergelijkbare documenten
DEPARTEMENT BEDRIJFSKUNDE BME

Mijn project noemt Het Wari-spel. De doelgroep van mijn programma is iedereen die houdt van strategische spelen.

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

Informatie & Databases

Project Objectgericht Programmeren : Deel 3

Technisch Ontwerp W e b s i t e W O S I

Oefeningen Jaarproject I

Iedere held neemt: - een heldenpion, - een heldenkaart, - een blaadje voor persoonlijke gegevens.

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

Project plan. Erwin Hannaart Sander Tegelaar

Labo 2 Programmeren II

Fotografie Sophie Berten Zeelaan De Panne 058/ Fotogeniek - Creative photos Handleiding

Warcraft: The Dark Age

Programmeren. Inleiding

Technische nota AbiFire5 Rapporten maken via ODBC

Technische nota AbiFire Rapporten maken via ODBC

Balance Me. Arschoot Elien. Herhaling boekhouden. 3 de jaar ASO. D hauwers Fien. Leerlingenhandleiding. (Afbeelding: persoon met vergrootglas, sd)

Programmeren I. 26 augustus Algemene Richtlijnen. Richtlijnen Programmeren 1

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13

Een eerste applicatie

Projectdocument Minecraft Mod Builder

MA!N Rapportages en Analyses

Popsy Financials. Overstap Access-MSDE

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

Handleiding voor het beheren van opleidingen

Programmeren: Visual Basic

HANDLEIDING INFOGRAPHIC SOFTWARE Versie 2.3 / jan 2014

Technisch Ontwerp Ontwerp template

Functioneel Ontwerp PlastiCats

FabriSoft Le logiciel de gestion pour les Fabriques d'eglises - De software van beleid voor de Kerkenfabrieken

Rapid Fire: De Betoverde Doolhof

Programmeren met databanken volgens het lagenmodel in C#

Uitwerkingen Sum of Us

Kennismaken Greenfoot

Handleiding Op Maat Speler

Automatisering voor Financiële Dienstverleners. Handleiding UBizzAdministrator. For more information visit our website at

Afbeelding 12-1: Een voorbeeld van een schaakbord met een zwart paard op a4 en een wit paard op e6.

Programmeren in Java 3

R-Type 2009 Developing in XNA

Functioneel Ontwerp. Project GameMaker

* Heldenfiches: al deze fiches stellen een in het drakennest gevangen held voor. Iedere speler kiest een held uit die hij in het spel controleert.

Inform BVBA. Scarabee Handleiding Agenda

Databanken programmatorisch benaderen

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel:

Balance Me. Bijlage 1. Arschoot Elien. Herhaling boekhouden. 3 de jaar ASO. D hauwers Fien. Lerarenhandleiding

Handleiding DAM Edit Design

HANDLEIDING VOOR PLOEGLEIDERS

Programmeren met databanken volgens het lagenmodel in C#

Game Maker: Avonturier en skelet

Objectgericht Ontwerpen

Release Notes v

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Quick Guide VivianCMS

Objectgeoriënteerd Programmeren: WPO 4B

Handleiding FileZilla

LearnOSM. Onderzoek met behulp van veldformulieren. Overzicht van veldformulieren

Excel Controller. Handleiding Excel Controller Wizard

1. Open de Bibliotheek verkenner. Dit kunt u in de Lint modus doen via View, de groep Toon, Bibliotheek Verkenner.

UML. From weblog Dennis Snippert

WELKOM BIJ UNICODING PROCESSING. Unicoding 1. Handleiding docent LES 1 DEEL A: Vormen, coördinaten en kleuren

Mauritius Mokka Bombay Ceylon Batavia. Kaap de Goede Hoop (de veilige haven)

Access voor beginners - hoofdstuk 25

Bij het opstarten van Small Basic verschijnt er de onderstaande werkomgeving.

Zelf een spel maken met GameMaker Les 3: Vijanden en levens

INSTALLATIE NIS UPDATE Q Q

Technische documentatie Klankie 2010 voor systeembeheerders/installateurs

Upgrade Accowin van versie 1 naar versie 2

I. Vorming 4-5 (3&10/05/2012)

Software Design Document

199 Kruidvat

Uitgebreid voorstel Masterproef Informatica

Back-up Online van KPN Handleiding Windows XP, Vista, 7, 8 v 1.0 PC Client built

Handleiding ADC archiefservice

Samen op zoek naar proeven

Bestand / Nieuw Project. Afb. 1. Afb. 2

1 speelbord voorstellende de wereldkaart verdeeld in 42 gebieden, welke weer ondergebracht zijn in 6 continenten:

Aan de slag! en krijgt een hersenpion en een scorekaart met afbeelding aangeeft. Iedere speler kiest een kleur

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

Examenmode op de HP Prime

Handleiding Opgavenportaal

ICT en grote datasets havo wiskunde A en vwo wiskunde A/C

Programmeren (1) Examen NAAM:

Jijbent.nl: spelregels Rozenkoning. Dirk Henn Copyright 2019 Jijbent.nl

INTERACTIE. In de Appendix vindt u de wireframes.

Kraters slaan. Rekenoefening groep 5&6. Doel. Materiaal. Voorbereiding. Beschrijving. groep 5&6 - Kraters slaan

Een boeiend en toch snel te leren Fantasy Tabletop-spel, dat ook uitstekend met drie of meer spelers te spelen is.

Mijn rechten in de jeugdhulp

Handleiding enquetemaken.be

Hardware-eisen MS-DOS vanaf versie 4.0, VGA-kleurenscherm, muis (actief in DOS), minimaal 286-computer met 2 Mb ruimte op de vaste schijf

Orbis Software. Debman4U. Release Notes2.10. Dit document bevat de Release Notes van Debman4U V2.10

Door: Ruud van Eeghem Datum: juni 2008 Versie: 1.0. Handleiding gebruik EPBD GIPC tool

Installatie handleiding Telefoon Assistent v0.4

Het spelbord Het spelbord bestaat uit een kaart van een deel van de wereld met daarop de handelshavens van Oost-Indiё en hun lokale goederen:

Handleiding Licentieserver voor beheerders

Updateprocedure in vogelvlucht Stap 1: Updatebestanden downloaden Stap 2: Controle vooraf... 4

Installatie Handleiding

Voorwoord. Voor vragen en ondersteuning bij dit softwarepakket kun je hier terecht: Forum:

Bijlage Inlezen nieuwe tarieven per verzekeraar

Informatie voor de leerkracht Introductie nieuw concept (pagina 1) Programmeren met Bomberbot (pagina 1)

Transcriptie:

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