Download presentation
Presentation is loading. Please wait.
Published byWilfrid Hamilton Modified over 9 years ago
1
Yi Zhang yz2414(Project manager) Shuaishuai Nie sn2479(Language Guru) Xuanchen Tang xt2128(System Architect) Lewis Flanagan lrf2123(System Integrator) Xiaohu Li xl2302(Test & Validation)
3
Played with dice, notes detailing various characters, monsters, and villains, and maps. One player, usually called the Dungeon Master or Game Master, controls all the monsters, non-player characters, the environment, etc. The other players each control a single “hero” character. Usually the Dungeon Master is responsible for coming up with the storyline, challenges and maps the group uses. Producing these materials can be commitment of several hours a week. DMGL is intended to reduce the time required to create maps for these games.
4
DateEvent Jan 25 th First meeting, discussing ideas Feb 23 rd Language design and basic elements Mar 8 th Grammar decided, skeleton of scanner implemented Mar 29 th Skeleton of parser working Apr 4 th Initial tests written in advance Apr 12 nd Skeleton of translator working Apr 26 th Backend function working, integration into front end May 5 th Write last examples, finished final report edits, final testing
5
New Types Introduced in DMGL Room Door Path Feature
6
Simple and Understandable Statement Structure Sample Code: call init_map (20, 20) create room r1 (3,3) to north; create path p1 (3) to east; create path p2 (1) to east; create path p3 (3) to south; create room r2 (3,3) to south; remove p2; show_map ();
7
Introduce loop to facilitate the construction Sample Code: call init_map (30, 7); call start (1, 3); for (int i = 0; i < 4; i++){ create room anonymous (3,3) to south; if (i == 3) quit; create path anonymous (2) to south; } call show_map ();
8
Include random method and user defined function Sample Code: call init_map (20,20); create room myroom (3, 3) to west; int firstDirection = call randir (); create path mypath1 (2) to firstDirection; create path mypath2 (1) to firstDirection; direction newDirection = call randir (); while (newDirection == call oppositeDir(firstDirection) ) newDirection = call randir (); create door d1 () to newDirection; create room r2 (3,3) to newDirection; call show_map (); function oppositeDir (direction one):direction{ return ((one + 2) % 4); }
9
Functions.java Room.java Door.java Path.java
12
Test methods: black box Test levels: Unit testing Integrated testing System testing 111 test cases, over 1000 lines Automated test script
13
STEP 1 Arithmetic operations Control & loop STEP 2 DMGL build-in functions User Defined functions STEP 3 Others System & environment
14
This Slide Left Intentionally Blank []
15
Include ability to check area to see if it is empty (call scan (x, y)) Add the ability to organize map objects into collections that can be acted on as a whole Convert DMGL into an interpreted language Add local variables Add ability to include other DMGL source files in a program, thus allowing user to import libraries of functions Give DMGL an applet as a GUI and make it available online
16
Lesson learnt Start early Regular meeting is essential
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.