CM10228 Coursework 2
Dungeon of Doom – Part 3
March 8, 2017
1 Introduction
Due Date: 19.00 on 27th March 2017
Overall, your mark in Programming 2 is composed of,
1. 50% coursework,
2. 50% exam.
The coursework component (part 1. above) is made up of three exercises (CW1,
CW2 and CW3) each of which will build upon the last. These are as follows,
1. CW1: Dungeon of Doom Part 2:
Extending code from CM102227 CW2 –or the supplied code- to allow
multiple concurrent, networked agents in one dungeon (Java).
2. CW2: Dungeon of Doom Part 3: Adding a GUI (Java).
3. CW3: Dungeon of Doom Part 4: Extending game logic (C).
This document provides requirements for the second coursework (CW2). CW2
is worth 2/5th of the coursework component (i.e. 20% of your total mark for
the unit).
1
2 Coursework Specification
2.1 Core Requirements
This assignment asks you to make further extensions to the Dungeon of Doom
game. More specifically, it asks you to implement your own Graphical User
Interface (GUI) using the Java AWT and Swing API’s.
NOTE: Although there are GUI design tools available for Eclipse, Netbeans
etc. these often generate code which is hard to extend, maintain and do not
follow good OO design etc. It is recommended that you do not use such GUI
design tools to complete this assignment as you will most likely loose the ma-
jority of the marks allocated for “OO design, formatting and clarity”.
To meet the core requirements you should implement the following,
1. DoD Human Client GUI – Create a GUI which displays the dungeon as
known to the player and allows them to control their avatar. You should
include as a minimum,
(a) GUI elements to display the dungeon known to the player
(b) GUI elements to input the IP address and port number of a DoD
server
(c) a button to connect to the DoD server and other GUI elements to
report if the connection was successful or not
(d) buttons (or other GUI elements of your choice) to let you control the
avatar in the dungeon
(e) a button to allow you to quit the application/game cleanly
2. DoD Server GUI – Create a “god’s eye view” view that lets you watch
everything that happens in the dungeon. This is unlike the player’s view,
which only shows what is known to the player. You should also include
GUI elements to,
(a) allow the user to “blank” the “god’s eye view”
(b) allow the user to enter or select a new port for the server
(c) display the current IP address and port number of your server
You can choose to add this new functionality to 1. the code you sub-
mitted for CW1 in CM10228 or 2. to use our example code available
on Moodle. NOTE: if you do choose to extend our example code the
options available to you are reduced but you can still achieve a good
pass.
2
2.2 Core Requirements – Automated Testing
Important: The code you submit will be tested using a test suit which, will
check your GUI implementations for both DoD client and server. To allow us
to run this test suit your submitted code MUST use the classes below which
are included in our given code on Moodle.
1. DODServerGUI: – launches the server GUI using the port number sup-
plied as a default value.
Usage: java DODServerGUI 2. HumanClientGUI – launches the human player client GUI using the Usage: java HumanClientGUI 3. BotClientGUI: (Only needed if the DoD Bot GUI Advanced Fea- Usage: java BotClientGUI Failure to follow the submission specifications, would result a -10 2.3 Advance Features In order to potentially get full marks on the coursework you will also need to 2.3.1 DoD Bot GUI Implement a new GUI which allows you to spawn multiple bots as clients. This 1. input the IP address and port number of a DoD server 2. launch one or more new bots as clients connecting to the specified DoD 3. view all bots that have been launched by the user 4. view the look window of a selected bot 5. control how fast or slow it goes i.e. controls how long it sleeps between 3 2.3.2 Integrate Chat into the Human Client GUI Add GUI elements for the chat system in your Human Client GUI. (NOTE: if 1. scrollable chat text where text from this player and other players is clearly 2. ability to SHOUT messages to all other players 3. ability to view names (or ID’s) of other players 4. ability to select a player to send a private message to 5. chat updates in real time 2.3.3 Advanced DoD Server GUI Add GUI elements to implement the advanced features of the DoD Server GUI 1. allow new gold to be added to the map 2. to move a player from their current location to a new location 3. view all of the chat messages being sent via the DoD server (both public 4. buttons to save chat logs and the move history for the current game to a 5. include radio buttons which allow you to turn the actual serving for clients 2.4 One Final Suggestion Note that we are not asking for any documentation of your requirements- 4 3 Submission By the date/time specified above, you should upload a zip file. The name of the CW2- The zip file must contain a project folder, titled Project, containing your source 4 Marking Scheme Criteria Max Score Description DoD Human Client 25 a GUI which displays the dungeon as DoD Server GUI 25 a GUI which displays a “god’s eye Commenting, OO 25 Code uses clean code practices, object- One of the Advance Features a user to spawn multiple bots as clients 25 Implements features specified for a chat Advanced DoD 25 Implements features specified for the 5 vagrant
hostname and port number supplied as default values.
ture is chosen) – launches the bot player client GUI using the hostname
and port number supplied as default values.
penalty applied to the final mark.
include ONE advanced feature from the list below.
includes GUI elements to,
server
moves
you have only implemented SHOUT then you will not be able to complete most
of this advanced feature). This includes,
identifiable
below,
and private)
text file
(the listening) on and o↵ i.e. when toggled on the server will accept new
clients and when toggled o↵ the server will refuse new connections
gathering and design for this coursework, but you may find that doing these
properly still helps you perform the tasks above, regardless of whether anyone
looks at the output. You may also want to show these requirements and/or
design documents to the tutors in lab in the early stages of development just to
get feedback about whether you are on the right track.
zip file should be in the form:
e.g. CW2-abc123.zip
code and any resources files needed. You should not include packages or other
subfolders. No compiled code nor non-needed files, i.e. version control files,
should be included.
Core Specifications
GUI
known to the player, allows them to
control their avatar, to input an IP ad-
dress and port number, connect to DoD
server, report connection success/fail
messages and to quit game
view” view to let you watch everything
that happens in the dungeon, blank
the view, enter a new port number for
the server, display IP address and port
number of the server.
design, formatting
and clarity
oriented programming techniques, and
is consistently commented.
DoD Bot GUI 25 Implements features specified to allow
Integrate Chat into
the Human Client
GUI
system in the Human Client GUI
Server GUI
advanced DoD Server GUI