diff --git a/BlankProjectTemplate/Doc/Design/MG/MG.pdf b/BlankProjectTemplate/Doc/Design/MG/MG.pdf index 5c410d43ef72e1eb78ec134bcfcca5a3eef37f52..20a9a1b28755b029d9d0f5f534818feee4f89ce5 100644 Binary files a/BlankProjectTemplate/Doc/Design/MG/MG.pdf and b/BlankProjectTemplate/Doc/Design/MG/MG.pdf differ diff --git a/BlankProjectTemplate/Doc/Design/MG/MG.tex b/BlankProjectTemplate/Doc/Design/MG/MG.tex index 8ef9e43569fb81b16516afdc13818cdb8819c294..f4da5fb78db3748d1c9c5a9c97b7658bba2e1749 100644 --- a/BlankProjectTemplate/Doc/Design/MG/MG.tex +++ b/BlankProjectTemplate/Doc/Design/MG/MG.tex @@ -68,11 +68,14 @@ Date 2 & 1.1 & Notes\\ Almost everyone nowadays relies on a computer as a multipurpose tool for research, video streaming, gaming and many other tasks. With the emergence of fast computing, gaming has become a popular pastime activity and a source of entertainment for many. However, not everyone has a device powerful enough to support extensive game applications. A simple, memory-effecient application of the Snake game allows it to be accessible for gamers without the need for extensive hardware or a high-performance computer. Our team, VUA30, will be creating a desktop application for the well-known “Snake†game with new enhancements and features. This competitive and addictive game can allow the user to play at their own pace and challenge their own high score. + Buying a computing device with high storage and faster performance can be out of budget. Complicated software covers up all the storage and the user is bound to use these applications as opposed to downloading other software. The importance of the redevelopment of “The Snake†is to save computing device’s personal storage and allow the user to play a game 24/7 with strong performance, even offline. Creating a desktop version of the snake game can fit into the category of downloadable calssical games such as the solitaire suite. The recreation of this game will allow the user to enjoy the classical game anytime and anywhere as long as they have installed the application. Improving aspects such as graphics and custom speed will also make the game more interesting. We would like to add more features to the game to make it more customizable and help people enjoy the classical game in an exciting and new way. + The scope of the project will cover the reimplementation of the game as well as enhancements to the game, in particular, changes that pertain to gameplay themes, different modes/ difficulties and so on. Due to the time constraints of the project, not all enhancements will be implemented but at least one enhancement will be implemented to differentiate Snake 2.o from previous remakes of the game. -The module guide document will outline the structure of the reimplementation through modular programming. It highlights the components of the system such that each component can easily be identified by project members, whether they are maintaining or designing the software. Among the list of internal stakeholders that may make use of this document, any new members that are added to the team will also be able to use the Module Guide (MG) as a convenient reference to specific modules that they are concerned with or working on~\citep{ParnasEtAl1984}. + +The Module Guide (MG) document will outline the structure of the reimplementation through modular programming. It highlights the components of the system such that each component can easily be identified by project members, whether they are maintaining or designing the software. Among the list of internal stakeholders that may make use of this document, any new members that are added to the team will also be able to use the MG as a convenient reference to specific modules that they are concerned with or working on~\citep{ParnasEtAl1984}. \begin{comment} Decomposing a system into modules is a commonly accepted approach to developing @@ -263,25 +266,50 @@ selected. \begin{description} \item[Secrets:]The contents of the required behaviours. -\item[Services:]Includes programs that provide externally visible behaviour of +\item[Services:] Includes programs that provide externally visible behaviour of the system as specified in the software requirements specification (SRS) documents. This module serves as a communication layer between the hardware-hiding module and the software decision module. The programs in this module will need to change if there are changes in the SRS. \item[Implemented By:] -- + +\end{description} + +\subsubsection{Input Format Module} + +\begin{description} +\item[Secrets:] Input Data +\item[Services:] Collects data on customized fields in the game +such as speed, theme, difficulty and other important variables. +\item[Implemented By:] Pygame library \end{description} -\subsubsection{Input Format Module (\mref{mInput})} +\subsubsection{Snake Module} \begin{description} -\item[Secrets:]The format and structure of the input data. -\item[Services:]Converts the input data into the data structure used by the - input parameters module. -\item[Implemented By:] [Your Program Name Here] +\item[Secrets:] Snake +\item[Services:] Defines the snake class and its attributes and behaviours. This +includes the movement of the snake depending on its attributes and its interaction with +user events. +\item[Implemented By:] Pygame library \end{description} -\subsubsection{Etc.} +\subsubsection{Food Module} + +\begin{description} +\item[Secrets:] Food +\item[Services:] Defines the food item class for spawning the food item during gameplay. +\item[Implemented By:] Pygame library +\end{description} + +\subsubsection{Themes Module} + +\begin{description} +\item[Secrets:] Themes +\item[Services:] Allows the user to choose different themes of the snake game. +\item[Implemented By:] Pygame library +\end{description} \subsection{Software Decision Module}