\chapter{Work progression} \section{Zuul bad} \section{Zuul better v1} \subsection{printLocationInfo} This code duplication has been previously avoided with the printRoomInfo() method. It has been renamed to printLocationInfo(), as part of the commit e52a34789, to match the exercise. \subsection{getExit} The exit attributes have been made private and a getter was added in commit 53c427ff3. A switch statement has been used instead of multiple if statements. \subsection{getExitString} This method has been added as part of commit ca65af2e2. \subsection{HashMap, setExit} \subsection{Vertical direction} \subsection{keySet} \subsection{getExitString ?} \subsection{getLongDescription} \subsection{Object diagram} \subsubsection{Changes on execution} \section{Zuul with features} \subsection{look} \subsection{eat} \section{Zuul better v2} \subsection{showAll, showCommands} \subsection{Adding commands} \subsection{getCommandList} \subsection{Comparison with reference} \subsection{StringBuilder} \subsection{Room objects} \section{Zuul with images} \subsection{Game, GameEngine, UserInterface} \subsection{Parser/Scanner} \subsection{UserInterface.addActionListener()} \subsection{UserInterface.actionPerformed()} \section{Zuul MVC} \subsection{Structure} \section{Zuul with items v1} \subsection{Item} \subsection{item description} \subsection{items} \subsection{Collection choice} \section{Zuul with history} \subsection{back} \subsection{back test} \subsection{back back} \subsection{Stack} \section{Zuul with tests} \subsection{tests} \subsubsection{Automatic tests} \subsection{test command} \section{Zuul with items v2} \subsection{Player} \subsection{take, drop} \subsection{Carry several items} \subsection{ItemList} \subsection{Maximum weight} \subsection{Inventory} \subsection{Magic cookie} \subsection{Tests} \section{Zuul with enums} \subsection{switch} \subsection{look with enum} \subsection{help with enum} \section{Zuul extended} \subsection{Time limit} \subsubsection{Real time} \subsection{GUI} \subsection{Trap door} \subsection{Beamer} \subsection{Locked door} \subsection{Tests} \subsection{Transporter room} \subsubsection{alea} \subsection{Inheritance} \subsection{Abstract Command} \subsection{Packages} \subsection{Character} \subsubsection{Moving character} \section{Zuul without BlueJ} \subsection{main} \subsection{jar} \subsection{JApplet} \section{Zuul awesome} \subsection{Room sides} \subsection{Quests} \subsection{Better GUI} \subsection{Music} \subsection{Save/load game} \subsubsection{save} \subsubsection{load} \subsection{More tests} \section{Not Zuul} \subsection{maximum} \subsection{static} \subsubsection{Properties} \subsubsection{numberOfInstances} \subsection{currentTimeMillis}