Imagine that you are part of a team writing a new game “Mean Arena”. Your job is to write code to
control a character, who we will call “Tallon”. The Arena is populated by monsters, called “Blue
Meanies”, and is filled with sludge pits and bonus stations. Tallon’s objective is to survive for as long as
possible, collecting bonuses, and avoiding both the pits and the Blue Meanies: if Tallon encounters either
a pit or a Meanie they will immediately die and the game ends. To complicate matters, the number of
Meanies increases over time --- every few seconds another Meanie spawns in the Arena.
You will be provided with Python code that implements the Mean Arena (including Meanies, pits and
bonus stations) and which provides an API that allows Tallon to move, and provides information on the
location of pits, bonus stations and Meanies as well as Tallon themself. Note that Tallon’s movement is
non-deterministic, so that they do not always manage to move in the direction that they wish to.
a) Provide control code for Tallon that allows them to navigate the Arena for as long as possible
when the dungeon is fully observable, meaning that Tallon can see everything in the Arena.
b) Provide control code for Tallon that allows them to navigate the Arena for as long as possible
when the dungeon is partially observable, meaning that Tallon cannot see everything in the
Arena. They can only see objects within a certain distance.
The solution to a) and b) may be the same piece of code, or two separate pieces of code, the
choice is yours.
c) Evaluate the performance of your code for a range of values of the size of the Arena, the
numbers of pits and bonus stations, and the speed with which the Meanies spawn.
Note that your solutions(s) to a) and b) should be AI methods (see the marking criteria), and that you
need to justify your choices in the report. The report should also include your evaluation, justify the
choices that you made in your evaluation, and state what conclusions you can draw about your solution
from your evaluation