This report and assignment specification detail the development of "Escape," a terminal-based ASCII maze game created for the Unix & C Programming (COMP1000) course. Built using the C89 standard, the game requires players to navigate a character ('P') through a grid toward a goal ('G') while avoiding rotating enemies that can detect the player's movement. The project emphasizes professional software engineering practices, including dynamic memory management (malloc/free) to prevent leaks, modular code design with separate header files, and the implementation of a generic linked list to support a multi-step "undo" feature.
Your task for this assignment is to design, code (in C89 version of C) and test a program. In
summary, your program will:
• Able to create dynamically-allocated 2D char array to make a simple ASCII-based game.
• Receive user input to control the game.
• Use pre-written random number generator to initiate components in the game.
• Write a proper makefile. Without the makefile, we will assume it cannot be compiled
and it will negatively affect your mark.
• Extract information from a text file to initialize the game.
• Do a simple animation with sleeping feature in C.
• Utilise linkedlist data structure to keep track the game progress, allowing the Player to
undo the steps taken.