软件工程代写｜Software Engineering 265 Assignment3
You are working for a company called ArcadeRetro which recreates popular arcade games for modern
audiences. The company is currently developing a game called Demolition Man. In the game, the player must
guide Bomb Guy around the map, destroying walls to reach the goal whilst avoiding enemies.
You have been given the task of developing a prototype of the game. A full description of gameplay
mechanics and entities can be found below. An artist has created a simple demonstration of the game and
has posted it on your online forum (Ed).
Working on your assignment
You have been given a scaffold which will help you get started with this assignment. You can download the
scaffold onto your own computer and invoke gradle build to compile and resolve dependencies. You will be
using the Processing library within your project to allow you to create a window and draw graphics. You can
access the documentation from here.
The game contains a number of entities that will need to be implemented within your application.
The map designates where Bomb Guy and enemies are allowed to move. Laid out as a grid, enemies can
move along rows and columns where there is no wall. Maps are 13 rows tall, and 15 columns wide, with a 64
pixel offset between the top of the screen and the start of the first row. Each grid space is 32×32 pixels.
There are 4 different tile types within the map: solid, broken, empty and goal. Solid tiles cannot be broken
and form physical barriers for Bomb Guy and the enemies. Broken tiles also form physical barriers for Bomb
Guy and the enemies, however can be broken with the use of bombs. Empty tiles can be traversed through.
The goal tile is the target tile for Bomb Guy. Upon reaching the Goal tile, the player has completed the level.
Enemies can traverse through the Goal tile.
Map layouts are stored in text files, and the name of the map file can be found in config.json under the “path”
attribute. Sample Map and config.json files can be found under resources on Ed. Map files store the maps as
multidimensional character arrays, where each character represents what is in that cell. Note that a map is
valid if it has a bounding border, a starting location for Bomb Guy, and a Goal Tile (all maps used for marking
will be valid, but you should write your own tests for invalid maps and handle them as you see fit). There is
no minimum requirement for the number of enemies, or the layout of the remainder of the map. Note that
if another character is represented in the Map file (for example, ‘P’ to represent the starting location for
Bomb Guy), the tile should be empty.