CSSE1001 Assignment 3
Due 8pm, Friday 28th May 2021
1 Introduction
In Assignment 2 you implemented a text-based game, EndOfDayz. This game was intentionally
structured in such a way that the modelling logic and the view classes for displaying content
to the user could be modified fairly independently. In this assignment, you will exchange the
text-based interface of EndOfDayz with a more sophisticated tkinter-based Graphical User In-
terface (GUI), and implement additional functionality. You can find information about tkinter
in this introduction to tkinter
1
and in this tkinter reference
2
.
In Assignment 3 the user is presented with a map, on which entities are represented by either
coloured squares or images. As opposed to Assignment 2, where the step event was triggered
by user input, in this assignment the step event is triggered every second for all entities other
than the player. The player’s behaviour is triggered by key presses.
1.1 Variations from Assignment 2
When the player picks up an item, that item is added to an inventory, but not immediately
applied. The inventory is displayed to the right of the game map. The user can activate and
deactivate items by left clicking on them in the inventory. When an item is activated, it should
begin working, and its lifetime should decrease by 1 every second. An example of the final
game is shown in Figure 1. Additonally, the player can no longer run into a zombie to remove
it from the game.
2 Tips and Hints
This assignment is split into two tasks, with an additional task for CSSE7030 students. The
number of marks associated with each task is not an indication of difficulty. Task 1 may take
less effort than task 2, yet is worth significantly more marks. A fully functional attempt at task
1 will likely earn more marks than attempts at both task 1 and task 2 that have many errors
throughout. Likewise, a fully functional attempt at a single part of task 1 will likely earn more
marks than an attempt at all of task 1 that has many errors throughout. While you should
be testing regularly throughout the coding process, at the minimum you should not move on
to task 2 until you have convinced yourself (through testing) that task 1 works relatively well.
If you are a CSSE7030 student, you should not attempt the CSSE7030 task until you have
convinced yourself (through testing) that task 1 and task 2 both work relatively well.
1
https://web.archive.org/web/20171112065310/http://effbot.org/tkinterbook/
2
https://anzeljg.github.io/rin2/book2/2405/docs/tkinter/index.html?fbclid=IwAR0MRN_
QOr-A-dYrfoWW2NAFUlrjyoF02PRBUv63OCl3tVBgLvrTXR2NZJ8
1