Assignment 2
The Fury of Dracula
— [introduction] — the rules — the data — faq — the view — the hunt —
courtesy Richard Buckland, John Shepherd, and many tutors
Objectives
• to implement the engine and some AIs for a game
• to give you experience working in a team
• to give you further practice with C and data structures
Admin
• worth 15 marks towards your final mark in the course
• deadlines for submissions are available on the relevant pages
• this assignment is completed in your “Assignment 2” group
• only one submission is needed for each team
Note
This assignment consists of three parts. The first part is the introduction, where you learn about the game. The second part is an implementation of the game view. The third part involves regularly placing your game players (AIs) in a tournament system, which will play submissions against each other.
Details of the submittable items will be available soon. Marks for this assignment will be awarded based on each individual’s contribution to the group; if you don’t contribute, you don’t get any marks.
Background
This assignment is based on a real game called The Fury of Dracula, but the rules have been simplified for this assignment. The assignment might be more accurately called “Dracula Runs and Hides”, as the whole idea is that four hunters are chasing Dracula and he is trying to evade them. Every time they catch him he loses some blood, and eventually, if he loses enough blood, he is vanquished. Dracula does the best he can to stay ahead of the hunters, who do the best they can to find him.
FYI: The game is a surprisingly good adaptation of the surprisingly good book Dracula by Bram Stoker. The game starts where the book leaves off. If you are interested, the book is available free from Project Gutenberg in written form and as a spoken novel.
In this assignment you will work in teams, where you will take on a Jekyll-and-Hyde split personality (apologies for the mixed monster metaphor). Part of you will be the hunters, and part of you will be Dracula himself. The hunter part of you aims to hunt down and defeat Dracula. The Dracula part of you aims to evade the hunters and summon hordes of vampires so that one day you can wreak terrible vengeance on the world.
You will implement your hunter and Dracula personalities via two AIs that will play the game against the AIs of other teams.
Your Task
This assignment has three phases: the introduction, the view, and the hunt (tournament). At this stage, only information for the introduction is available. Information about the view and the hunt will be released later.
Introduction
In this phase, you should form your assignment team, read the rules of the game and practice playing it with your team. The aim of this phase is for you to develop a good understanding of the problem before attempting to solve it.
The View
In this phase, you develop the “eyes and ears” of your AIs. In technical terms, you will design and build an ADT that will give your player AIs access to the state of the game. There is one ADT for the hunters (all hunters behave the same) and one ADT for Dracula. The player AIs must then work out what’s happening in the game via this ADT, which will give them an appropriately restricted view of the game state.
The Hunt
In this phase, you implement an AI for the hunters and an AI for Dracula and enter them in the tournament to play against other teams’ AIs. In each tournament round, your Dracula AI will play against all of the other submitted hunter AIs, and your hunter AI will play against all of the other submitted Dracula AIs. After all of these games, rankings will be worked out for hunters and Draculas. For further details, see the hunt.
Maps of Europe
The game is set in Victorian (mid-late 1800’s) Europe, so a map of Europe from that time is an essential tool for playing the game. The critical aspects of the map are the cities, the seas and the road/rail/ferry links between them.
Note that you can only move from one city to another city via a direct road link between them, or via several rail links (trains are faster). From a port city (a city that is next to a sea), you can also move to the adjacent sea; once in a sea, you can subsequently move to any port city on that sea, or to any other adjacent sea.
Here’s a small version of a Victorian-era Europe map:

You can find larger maps at:
• http://guiltfreegames.files.wordpress.com/2010/10/europe.jpg
(credit for this map to one of the authors on the Guilt Free Games website)
• /web/cs2521/20T2/ass/ass2/Pics/map2.png
(credit for this map to Ian Wong and Mohammad Ghasembeigi (COMP1927 13s2 students))
You can also find visualisers for the game at:
• kluxa.github.io/dracula-game-viewer/
(credit for this visualiser to Kevin Luxa, COMP2521 18×1 student)
• he-lium.github.io/dracula-map
(credit for this visualiser to Dominic He, COMP1927 16s2 student)
COMP2521 20T2: Data Structures and Algorithms is brought to you by
the School of Computer Science and Engineering at the University of New South Wales, Sydney.
For all enquiries, please email the class account at cs2521@cse.unsw.edu.au
CRICOS Provider 00098G